20 #ifndef SolveSpaceSolver_ConstraintType_H_
21 #define SolveSpaceSolver_ConstraintType_H_
23 #include <SketchSolver_IConstraintWrapper.h>
24 #include <SolveSpaceSolver_Solver.h>
26 namespace ConstraintType
29 static int toSolveSpace(SketchSolver_ConstraintType theType)
32 case CONSTRAINT_PT_PT_COINCIDENT:
return SLVS_C_POINTS_COINCIDENT;
33 case CONSTRAINT_PT_ON_LINE:
return SLVS_C_PT_ON_LINE;
34 case CONSTRAINT_PT_ON_CIRCLE:
return SLVS_C_PT_ON_CIRCLE;
35 case CONSTRAINT_MIDDLE_POINT:
return SLVS_C_AT_MIDPOINT;
36 case CONSTRAINT_PT_PT_DISTANCE:
return SLVS_C_PT_PT_DISTANCE;
37 case CONSTRAINT_PT_LINE_DISTANCE:
return SLVS_C_PT_LINE_DISTANCE;
38 case CONSTRAINT_ANGLE:
return SLVS_C_ANGLE;
39 case CONSTRAINT_RADIUS:
return SLVS_C_DIAMETER;
40 case CONSTRAINT_FIXED:
return SLVS_C_WHERE_DRAGGED;
41 case CONSTRAINT_HORIZONTAL:
return SLVS_C_HORIZONTAL;
42 case CONSTRAINT_VERTICAL:
return SLVS_C_VERTICAL;
43 case CONSTRAINT_PARALLEL:
return SLVS_C_PARALLEL;
44 case CONSTRAINT_PERPENDICULAR:
return SLVS_C_PERPENDICULAR;
45 case CONSTRAINT_SYMMETRIC:
return SLVS_C_SYMMETRIC_LINE;
46 case CONSTRAINT_EQUAL_LINES:
return SLVS_C_EQUAL_LENGTH_LINES;
47 case CONSTRAINT_EQUAL_LINE_ARC:
return SLVS_C_EQUAL_LINE_ARC_LEN;
48 case CONSTRAINT_EQUAL_RADIUS:
return SLVS_C_EQUAL_RADIUS;
49 case CONSTRAINT_TANGENT_ARC_LINE:
return SLVS_C_ARC_LINE_TANGENT;
50 case CONSTRAINT_TANGENT_ARC_ARC:
return SLVS_C_CURVE_CURVE_TANGENT;
51 case CONSTRAINT_MULTI_ROTATION:
return SLVS_C_MULTI_ROTATION;
52 case CONSTRAINT_MULTI_TRANSLATION:
return SLVS_C_MULTI_TRANSLATION;
55 return SLVS_C_UNKNOWN;
59 static SketchSolver_ConstraintType fromSolveSpace(
int theType)
62 case SLVS_C_POINTS_COINCIDENT:
return CONSTRAINT_PT_PT_COINCIDENT;
63 case SLVS_C_PT_ON_LINE:
return CONSTRAINT_PT_ON_LINE;
64 case SLVS_C_PT_ON_CIRCLE:
return CONSTRAINT_PT_ON_CIRCLE;
65 case SLVS_C_AT_MIDPOINT:
return CONSTRAINT_MIDDLE_POINT;
66 case SLVS_C_PT_PT_DISTANCE:
return CONSTRAINT_PT_PT_DISTANCE;
67 case SLVS_C_PT_LINE_DISTANCE:
return CONSTRAINT_PT_LINE_DISTANCE;
68 case SLVS_C_EQUAL_LENGTH_LINES:
return CONSTRAINT_EQUAL_LINES;
69 case SLVS_C_EQUAL_LINE_ARC_LEN:
return CONSTRAINT_EQUAL_LINE_ARC;
70 case SLVS_C_SYMMETRIC_LINE:
return CONSTRAINT_SYMMETRIC;
71 case SLVS_C_HORIZONTAL:
return CONSTRAINT_HORIZONTAL;
72 case SLVS_C_VERTICAL:
return CONSTRAINT_VERTICAL;
73 case SLVS_C_DIAMETER:
return CONSTRAINT_RADIUS;
74 case SLVS_C_ANGLE:
return CONSTRAINT_ANGLE;
75 case SLVS_C_PARALLEL:
return CONSTRAINT_PARALLEL;
76 case SLVS_C_PERPENDICULAR:
return CONSTRAINT_PERPENDICULAR;
77 case SLVS_C_ARC_LINE_TANGENT:
return CONSTRAINT_TANGENT_ARC_LINE;
78 case SLVS_C_EQUAL_RADIUS:
return CONSTRAINT_EQUAL_RADIUS;
79 case SLVS_C_WHERE_DRAGGED:
return CONSTRAINT_FIXED;
80 case SLVS_C_CURVE_CURVE_TANGENT:
return CONSTRAINT_TANGENT_ARC_ARC;
81 case SLVS_C_MULTI_ROTATION:
return CONSTRAINT_MULTI_ROTATION;
82 case SLVS_C_MULTI_TRANSLATION:
return CONSTRAINT_MULTI_TRANSLATION;
85 return CONSTRAINT_UNKNOWN;