private static void TryAxisOnLine(List <Term> constraintTerms, IDictionary <IEditParameter, ParameterVariable[]> paramsToVars, PrimitiveEditConstraint constraint) { var axisOnLineConstraint = constraint as AxisOnLineConstraint; if (axisOnLineConstraint != null) { var axisPnt = GetVariables(paramsToVars, axisOnLineConstraint.AxisPoint); var axisDir = GetVariables(paramsToVars, axisOnLineConstraint.AxisDirection); var linePnt = axisOnLineConstraint.LinePoint.ToTermVector(); var lineDir = axisOnLineConstraint.LineDirection.ToTermVector(); constraintTerms.AddRange(VectorsParallelism3DTerms(axisDir, lineDir)); constraintTerms.AddRange(PointOnLineTerms(axisPnt, linePnt, lineDir)); } }
private static void TryPointOnPlane(List <Term> constraintTerms, IDictionary <IEditParameter, ParameterVariable[]> paramsToVars, PrimitiveEditConstraint constraint) { var pointOnPlaneConstraint = constraint as PointOnPlaneConstraint; if (pointOnPlaneConstraint != null) { var pnt = GetVariables(paramsToVars, pointOnPlaneConstraint.Point); var planePnt = pointOnPlaneConstraint.PlanePoint.ToTermVector(); var planeNormal = pointOnPlaneConstraint.PlaneNormal.ToTermVector(); constraintTerms.Add(PointOnPlaneTerm(pnt, planePnt, planeNormal)); } }