Salome HOME
3fa64daa86238c460ee6613324decccdff610b1a
[modules/shaper.git] / src / SketchSolver / 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 const ConstraintID CID_FICTIVE = 1024;
30
31 /// Types of entities
32 enum SketchSolver_EntityType {
33   ENTITY_UNKNOWN = 0,
34   ENTITY_SCALAR,
35   ENTITY_ANGLE,
36   ENTITY_POINT,
37   ENTITY_LINE,
38   ENTITY_CIRCLE,
39   ENTITY_ARC
40 };
41
42 /// Types of constraints
43 enum SketchSolver_ConstraintType {
44   CONSTRAINT_UNKNOWN = 0,
45   CONSTRAINT_COINCIDENCE,      // base coincidence if we don't know exact type yet
46   CONSTRAINT_PT_PT_COINCIDENT,
47   CONSTRAINT_PT_ON_LINE,
48   CONSTRAINT_PT_ON_CIRCLE,
49   CONSTRAINT_MIDDLE_POINT,
50   CONSTRAINT_DISTANCE,         // base distance if we don't know the measured objects yet
51   CONSTRAINT_PT_PT_DISTANCE,
52   CONSTRAINT_PT_LINE_DISTANCE,
53   CONSTRAINT_RADIUS,
54   CONSTRAINT_ANGLE,
55   CONSTRAINT_FIXED,
56   CONSTRAINT_HORIZONTAL,
57   CONSTRAINT_VERTICAL,
58   CONSTRAINT_PARALLEL,
59   CONSTRAINT_PERPENDICULAR,
60   CONSTRAINT_SYMMETRIC,
61   CONSTRAINT_EQUAL,           // base equality if we don't know the measured objects yet
62   CONSTRAINT_EQUAL_LINES,
63   CONSTRAINT_EQUAL_LINE_ARC,
64   CONSTRAINT_EQUAL_RADIUS,
65   CONSTRAINT_TANGENT,         // base tangency if we don't know the measured objects yet
66   CONSTRAINT_TANGENT_CIRCLE_LINE,
67   CONSTRAINT_TANGENT_CIRCLE_CIRCLE,
68   CONSTRAINT_COLLINEAR,
69   CONSTRAINT_MULTI_TRANSLATION,
70   CONSTRAINT_MULTI_ROTATION
71 };
72
73 #endif