Ejemplo n.º 1
0
        private void UpdateViewBounds()
        {
            try {
                UpdateGraphBounds();

                if (fViewBounds == null)
                {
                    fViewBounds = fGraphBounds;
                    return;
                }

                ArborPoint vLT = fGraphBounds.LeftTop.Sub(fViewBounds.LeftTop).Mul(Mag);
                ArborPoint vRB = fGraphBounds.RightBottom.Sub(fViewBounds.RightBottom).Mul(Mag);

                double aX = vLT.Magnitude() * fViewWidth;
                double aY = vRB.Magnitude() * fViewHeight;

                if (aX > 1.0f || aY > 1.0f)
                {
                    ArborPoint nbLT = fViewBounds.LeftTop.Add(vLT);
                    ArborPoint nbRB = fViewBounds.RightBottom.Add(vRB);

                    fViewBounds = new PSBounds(nbLT, nbRB);
                }
            } catch (Exception ex) {
                Debug.WriteLine("ArborSystem.UpdateViewBounds(): " + ex.Message);
            }
        }
Ejemplo n.º 2
0
        public void Test_Magnitude()
        {
            var pt = new ArborPoint(3, 4);

            Assert.AreEqual(3.0f, pt.X);
            Assert.AreEqual(4.0f, pt.Y);

            Assert.AreEqual(5d, pt.Magnitude());
        }
Ejemplo n.º 3
0
        private void ApplySprings()
        {
            for (int i = 0, edgesCount = fEdges.Count; i < edgesCount; i++)
            {
                ArborEdge edge = fEdges[i];

                ArborPoint s = edge.Target.Pt.Sub(edge.Source.Pt);
                ArborPoint r = s.Normalize();
                double     q = edge.Stiffness * (edge.Length - s.Magnitude());

                edge.Source.ApplyForce(r.Mul(q * -0.5f));
                edge.Target.ApplyForce(r.Mul(q * 0.5f));
            }
        }