]> SALOME platform Git repositories - modules/shaper.git/blob - src/SketchSolver/SketchSolver_IConstraintWrapper.h
Salome HOME
Fix bug for translation (id 2237 and id 2250).
[modules/shaper.git] / src / SketchSolver / SketchSolver_IConstraintWrapper.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:    SketchSolver_IConstraintWrapper.h
4 // Created: 30 Nov 2015
5 // Author:  Artem ZHIDKOV
6
7 #ifndef SketchSolver_IConstraintWrapper_H_
8 #define SketchSolver_IConstraintWrapper_H_
9
10 #include <SketchSolver_IEntityWrapper.h>
11
12 #include <SketchPlugin_Constraint.h>
13
14 #include <list>
15 #include <memory>
16
17 /// Types of constraints
18 enum SketchSolver_ConstraintType {
19   CONSTRAINT_UNKNOWN = 0,
20   CONSTRAINT_COINCIDENCE,      // base coincidence if we don't know exact type yet
21   CONSTRAINT_PT_PT_COINCIDENT,
22   CONSTRAINT_PT_ON_LINE,
23   CONSTRAINT_PT_ON_CIRCLE,
24   CONSTRAINT_MIDDLE_POINT,
25   CONSTRAINT_DISTANCE,         // base distance if we don't know the measured objects yet
26   CONSTRAINT_PT_PT_DISTANCE,
27   CONSTRAINT_PT_LINE_DISTANCE,
28   CONSTRAINT_RADIUS,
29   CONSTRAINT_ANGLE,
30   CONSTRAINT_FIXED,
31   CONSTRAINT_HORIZONTAL,
32   CONSTRAINT_VERTICAL,
33   CONSTRAINT_PARALLEL,
34   CONSTRAINT_PERPENDICULAR,
35   CONSTRAINT_SYMMETRIC,
36   CONSTRAINT_EQUAL,           // base equality if we don't know the measured objects yet
37   CONSTRAINT_EQUAL_LINES,
38   CONSTRAINT_EQUAL_LINE_ARC,
39   CONSTRAINT_EQUAL_RADIUS,
40   CONSTRAINT_TANGENT,         // base tangency if we don't know the measured objects yet
41   CONSTRAINT_TANGENT_CIRCLE_LINE,
42   CONSTRAINT_TANGENT_CIRCLE_CIRCLE,
43   CONSTRAINT_COLLINEAR,
44   CONSTRAINT_MULTI_TRANSLATION,
45   CONSTRAINT_MULTI_ROTATION
46 };
47
48 /**
49  *  Wrapper providing operations with constraints regardless the solver.
50  */
51 class SketchSolver_IConstraintWrapper
52 {
53 public:
54   virtual ~SketchSolver_IConstraintWrapper() {}
55
56   /// \brief Return ID of current constraint
57   const ConstraintID& id() const
58   { return myID; }
59   /// \brief Change constraint ID
60   virtual void setId( const ConstraintID& theID) = 0;
61
62   /// \brief Return type of current entity
63   virtual SketchSolver_ConstraintType type() const = 0;
64
65   /// \brief Assign numeric parameter of constraint
66   virtual void setValue(const double& theValue) = 0;
67   /// \brief Return numeric parameter of constraint
68   virtual double value() const = 0;
69
70 protected:
71   ConstraintID myID;
72 };
73
74 typedef std::shared_ptr<SketchSolver_IConstraintWrapper> ConstraintWrapperPtr;
75
76 #endif