1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: SketcherPrs_Factory.h
4 // Created: 13 February 2015
5 // Author: Vitaly SMETANNIKOV
7 #ifndef SketcherPrs_Factory_H_
8 #define SketcherPrs_Factory_H_
10 #include "SketcherPrs.h"
12 #include <ModelAPI_Feature.h>
14 #include <GeomAPI_Ax3.h>
15 #include <GeomAPI_AISObject.h>
17 #define GET_CONSTRAINT_PRS(NAME) \
18 static AISObjectPtr NAME(ModelAPI_Feature* theConstraint, \
19 const std::shared_ptr<GeomAPI_Ax3>& thePlane, \
20 AISObjectPtr thePrevious);
23 * Class which creates constraints presentations
25 class SKETCHERPRS_EXPORT SketcherPrs_Factory
28 /// Creates coincedent constraint presentation
29 /// \param theConstraint the constraint
30 /// \param thePlane the current sketch plane
31 /// \param thePrevious the previous presentation
32 GET_CONSTRAINT_PRS(coincidentConstraint)
34 /// Creates collinear constraint presentation
35 /// \param theConstraint the constraint
36 /// \param thePlane the current sketch plane
37 /// \param thePrevious the previous presentation
38 GET_CONSTRAINT_PRS(collinearConstraint)
40 /// Creates parallel constraint presentation
41 /// \param theConstraint the constraint
42 /// \param thePlane the current sketch plane
43 /// \param thePrevious the previous presentation
44 GET_CONSTRAINT_PRS(parallelConstraint)
46 /// Creates coincedent perpendicular presentation
47 /// \param theConstraint the constraint
48 /// \param thePlane the current sketch plane
49 /// \param thePrevious the previous presentation
50 GET_CONSTRAINT_PRS(perpendicularConstraint)
52 /// Creates rigid constraint presentation
53 /// \param theConstraint the constraint
54 /// \param thePlane the current sketch plane
55 /// \param thePrevious the previous presentation
56 GET_CONSTRAINT_PRS(rigidConstraint)
58 /// Creates horizontal constraint presentation
59 /// \param theConstraint the constraint
60 /// \param thePlane the current sketch plane
61 /// \param thePrevious the previous presentation
62 GET_CONSTRAINT_PRS(horisontalConstraint)
64 /// Creates vertical constraint presentation
65 /// \param theConstraint the constraint
66 /// \param thePlane the current sketch plane
67 /// \param thePrevious the previous presentation
68 GET_CONSTRAINT_PRS(verticalConstraint)
70 /// Creates equal constraint presentation
71 /// \param theConstraint the constraint
72 /// \param thePlane the current sketch plane
73 /// \param thePrevious the previous presentation
74 GET_CONSTRAINT_PRS(equalConstraint)
76 /// Creates tangent constraiont presentation
77 /// \param theConstraint the constraint
78 /// \param thePlane the current sketch plane
79 /// \param thePrevious the previous presentation
80 GET_CONSTRAINT_PRS(tangentConstraint)
82 /// Creates radius dimension presentation
83 /// \param theConstraint the constraint
84 /// \param thePlane the current sketch plane
85 /// \param thePrevious the previous presentation
86 GET_CONSTRAINT_PRS(radiusConstraint)
88 /// Creates length dimension presentation
89 /// \param theConstraint the constraint
90 /// \param thePlane the current sketch plane
91 /// \param thePrevious the previous presentation
92 GET_CONSTRAINT_PRS(lengthDimensionConstraint)
94 /// Creates middle constraint presentation
95 /// \param theConstraint the constraint
96 /// \param thePlane the current sketch plane
97 /// \param thePrevious the previous presentation
98 GET_CONSTRAINT_PRS(middleConstraint)
100 /// Creates mirror constraint presentation
101 /// \param theConstraint the constraint
102 /// \param thePlane the current sketch plane
103 /// \param thePrevious the previous presentation
104 GET_CONSTRAINT_PRS(mirrorConstraint)
106 /// Creates translate constraint presentation
107 /// \param theConstraint the constraint
108 /// \param thePlane the current sketch plane
109 /// \param thePrevious the previous presentation
110 GET_CONSTRAINT_PRS(translateConstraint)
112 /// Creates rotate constraint presentation
113 /// \param theConstraint the constraint
114 /// \param thePlane the current sketch plane
115 /// \param thePrevious the previous presentation
116 GET_CONSTRAINT_PRS(rotateConstraint)
118 /// Creates angle constraint presentation
119 /// \param theConstraint the constraint
120 /// \param thePlane the current sketch plane
121 /// \param thePrevious the previous presentation
122 GET_CONSTRAINT_PRS(angleConstraint)