Пример #1
0
        public void PointOnPointTest()
        {
            var document   = TestUtils.DefaultsSetup();
            var sketch     = new SketchCreator(document);
            var sketchNode = sketch.BuildSketchNode();

            document.Transact();

            var firstPoint  = sketch.GetPoint(new Point3D(3, 1, 0));
            var secondPoint = sketch.GetPoint(new Point3D(4, 2, 0));

            document.Commit("Draw");
            var constraintBuilder = new NodeBuilder(document, Constraint2DNames.PointOnPointFunction);

            constraintBuilder[0].Reference = firstPoint.Node;
            constraintBuilder[1].Reference = secondPoint.Node;

            var docSolverAdapter = new DocumentToSolverAdapter(document, sketchNode);

            docSolverAdapter.ImpactedNodes(firstPoint.Node, -1);

            docSolverAdapter.Solve();

            firstPoint  = new NodeBuilder(firstPoint.Node);
            secondPoint = new NodeBuilder(secondPoint.Node);
            Assert.IsTrue(Math.Abs(firstPoint[1].TransformedPoint3D.X - secondPoint[1].TransformedPoint3D.X) < 0.01,
                          "invalid x axis values");
            Assert.IsTrue(Math.Abs(firstPoint[1].TransformedPoint3D.Y - secondPoint[1].TransformedPoint3D.Y) < 0.01,
                          "invalid y axis values");
        }
Пример #2
0
        public int ImpactAndSolve(Node sourceNode)
        {
            var docSolverAdapter = new DocumentToSolverAdapter(Document, _sketchNode);

            docSolverAdapter.ImpactedNodes(sourceNode, _mousePointIndex);
            return(docSolverAdapter.Solve());
        }
Пример #3
0
        public void HorizontalTest()
        {
            var document   = TestUtils.DefaultsSetup();
            var sketch     = new SketchCreator(document);
            var sketchNode = sketch.BuildSketchNode();

            document.Transact();

            var pointLinker = sketch.PointLinker;

            var line = ConstraintUtils.BuildLine(document, pointLinker, new Point3D(3, 1, 0), new Point3D(4, 2, 0));
            var constraintBuilder = new NodeBuilder(document, Constraint2DNames.HorizontalFunction);

            constraintBuilder[0].Reference = line.Node;

            document.Commit("Draw");
            var docSolverAdapter = new DocumentToSolverAdapter(document, sketchNode);

            docSolverAdapter.ImpactedNodes(line.Node, -1);
            var error = docSolverAdapter.Solve();

            Assert.IsTrue(error == 0, "Invalid horizontal solution");
        }
Пример #4
0
        public void PerpendicularTest()
        {
            var document   = TestUtils.DefaultsSetup();
            var sketch     = new SketchCreator(document);
            var sketchNode = sketch.BuildSketchNode();

            document.Transact();

            var firstPoint  = sketch.GetPoint(new Point3D(1, 1, 0));
            var secondPoint = sketch.GetPoint(new Point3D(4, 1, 0));
            var thirdPoint  = sketch.GetPoint(new Point3D(5, 3, 0));

            var line = new NodeBuilder(document, FunctionNames.LineTwoPoints);

            line[0].Reference = firstPoint.Node;
            line[1].Reference = secondPoint.Node;
            line.ExecuteFunction();

            var line2 = new NodeBuilder(document, FunctionNames.LineTwoPoints);

            line2[0].Reference = secondPoint.Node;
            line2[1].Reference = thirdPoint.Node;
            line2.ExecuteFunction();

            var constraintBuilder = new NodeBuilder(document, Constraint2DNames.PerpendicularFunction);

            constraintBuilder[0].Reference = line.Node;
            constraintBuilder[1].Reference = line2.Node;
            document.Commit("Draw");

            var docSolverAdapter = new DocumentToSolverAdapter(document, sketchNode);

            docSolverAdapter.ImpactedNodes(firstPoint.Node, firstPoint.Node.Index);
            var error = docSolverAdapter.Solve();

            Assert.IsTrue(error == 0, "Invalid perpendicular solution");
        }