Salome HOME
[bos #42502] fixed unstable constraint test
[modules/shaper.git] / PlaneGCSSolver / PlaneGCSSolver_Defs.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:    PlaneGCSSolver_Defs.h
4 // Created: 14 Dec 2015
5 // Author:  Artem ZHIDKOV
6
7 #ifndef PlaneGCSSolver_Defs_H_
8 #define PlaneGCSSolver_Defs_H_
9
10 #include <Constraints.h>
11 #include <Geo.h>
12 #include <memory>
13
14 typedef std::shared_ptr<GCS::Point>       GCSPointPtr;
15 typedef std::shared_ptr<GCS::Curve>       GCSCurvePtr;
16 typedef std::shared_ptr<GCS::Constraint>  GCSConstraintPtr;
17
18 // Tolerance for value of parameters
19 const double tolerance = 1.e-10;
20
21 #define PI 3.1415926535897932
22
23 // Types for data entities enumeration
24 typedef int ConstraintID;
25
26 // Predefined values for identifiers
27 const ConstraintID CID_UNKNOWN  =  0;
28 const ConstraintID CID_MOVEMENT = -1;
29
30 /// Types of entities
31 enum SketchSolver_EntityType {
32   ENTITY_UNKNOWN = 0,
33   ENTITY_SCALAR,
34   ENTITY_ANGLE,
35   ENTITY_POINT,
36   ENTITY_LINE,
37   ENTITY_CIRCLE,
38   ENTITY_ARC
39 };
40
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,
52   CONSTRAINT_RADIUS,
53   CONSTRAINT_ANGLE,
54   CONSTRAINT_FIXED,
55   CONSTRAINT_HORIZONTAL,
56   CONSTRAINT_VERTICAL,
57   CONSTRAINT_PARALLEL,
58   CONSTRAINT_PERPENDICULAR,
59   CONSTRAINT_SYMMETRIC,
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,
67   CONSTRAINT_COLLINEAR,
68   CONSTRAINT_MULTI_TRANSLATION,
69   CONSTRAINT_MULTI_ROTATION
70 };
71
72 #endif