private void ShowHinter(Document _document, List <SolverPreviewObject> _solverGeometry, Mouse3DPosition mouseData, gpPln sketchPlane) { var axis = sketchPlane.Axis; axis.Location = new Point3D(0, 0, 0).GpPnt; var axis2 = new gpAx2(); axis2.Axis = axis; var point3D = mouseData.Point; var pointOnplane = point3D.ToPoint2D(axis2); var constraintHints = new bool[] { false, false, false, false }; for (int i = 0; i < _solverGeometry.Count; i++) { if (_solverGeometry[i] is SolverEdgeTwoPointsResult) { switch (_solverGeometry[i].Type) { case ("Parallel X"): constraintHints[0] = true; break; case ("Parallel Y"): constraintHints[1] = true; break; case ("Parallel Line"): constraintHints[2] = true; break; case ("Perpendicular Line"): constraintHints[3] = true; break; } } } var currentX = pointOnplane.X; var currentY = pointOnplane.Y; NodeBuilderUtils.DrawConstraints(_document, axis2, currentX, currentY, constraintHints); }