20#ifndef PlaneGCSSolver_Defs_H_
21#define PlaneGCSSolver_Defs_H_
23#include <Constraints.h>
27typedef std::shared_ptr<GCS::Point> GCSPointPtr;
28typedef std::shared_ptr<GCS::Curve> GCSCurvePtr;
29typedef std::shared_ptr<GCS::Constraint> GCSConstraintPtr;
32const double tolerance = 1.e-10;
34#define PI 3.1415926535897932
37typedef int ConstraintID;
40const ConstraintID CID_UNKNOWN = 0;
41const ConstraintID CID_MOVEMENT = -1;
42const ConstraintID CID_FICTIVE = 99;
45enum SketchSolver_EntityType {
62enum SketchSolver_ConstraintType {
63 CONSTRAINT_UNKNOWN = 0,
64 CONSTRAINT_COINCIDENCE,
65 CONSTRAINT_PT_PT_COINCIDENT,
66 CONSTRAINT_PT_ON_CURVE,
67 CONSTRAINT_MIDDLE_POINT,
69 CONSTRAINT_PT_PT_DISTANCE,
70 CONSTRAINT_PT_LINE_DISTANCE,
71 CONSTRAINT_HORIZONTAL_DISTANCE,
72 CONSTRAINT_VERTICAL_DISTANCE,
76 CONSTRAINT_HORIZONTAL,
79 CONSTRAINT_PERPENDICULAR,
80 CONSTRAINT_PERPENDICULAR_CURVES,
83 CONSTRAINT_EQUAL_LINES,
84 CONSTRAINT_EQUAL_LINE_ARC,
85 CONSTRAINT_EQUAL_RADIUS,
86 CONSTRAINT_EQUAL_ELLIPSES,
88 CONSTRAINT_TANGENT_CIRCLE_LINE,
89 CONSTRAINT_TANGENT_CURVE_CURVE,
91 CONSTRAINT_MULTI_TRANSLATION,
92 CONSTRAINT_MULTI_ROTATION