1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: PlaneGCSSolver_Defs.h
4 // Created: 14 Dec 2015
5 // Author: Artem ZHIDKOV
7 #ifndef PlaneGCSSolver_Defs_H_
8 #define PlaneGCSSolver_Defs_H_
10 #include <Constraints.h>
14 typedef std::shared_ptr<GCS::Point> GCSPointPtr;
15 typedef std::shared_ptr<GCS::Curve> GCSCurvePtr;
16 typedef std::shared_ptr<GCS::Constraint> GCSConstraintPtr;
18 // Tolerance for value of parameters
19 const double tolerance = 1.e-10;
21 #define PI 3.1415926535897932
23 // Types for data entities enumeration
24 typedef int ConstraintID;
26 // Predefined values for identifiers
27 const ConstraintID CID_UNKNOWN = 0;
28 const ConstraintID CID_MOVEMENT = -1;
31 enum SketchSolver_EntityType {
41 /// Types of constraints
42 enum SketchSolver_ConstraintType {
43 CONSTRAINT_UNKNOWN = 0,
44 CONSTRAINT_COINCIDENCE, // base coincidence if we don't know exact type yet
45 CONSTRAINT_PT_PT_COINCIDENT,
46 CONSTRAINT_PT_ON_LINE,
47 CONSTRAINT_PT_ON_CIRCLE,
48 CONSTRAINT_MIDDLE_POINT,
49 CONSTRAINT_DISTANCE, // base distance if we don't know the measured objects yet
50 CONSTRAINT_PT_PT_DISTANCE,
51 CONSTRAINT_PT_LINE_DISTANCE,
55 CONSTRAINT_HORIZONTAL,
58 CONSTRAINT_PERPENDICULAR,
60 CONSTRAINT_EQUAL, // base equality if we don't know the measured objects yet
61 CONSTRAINT_EQUAL_LINES,
62 CONSTRAINT_EQUAL_LINE_ARC,
63 CONSTRAINT_EQUAL_RADIUS,
64 CONSTRAINT_TANGENT, // base tangency if we don't know the measured objects yet
65 CONSTRAINT_TANGENT_CIRCLE_LINE,
66 CONSTRAINT_TANGENT_CIRCLE_CIRCLE,
68 CONSTRAINT_MULTI_TRANSLATION,
69 CONSTRAINT_MULTI_ROTATION