Salome HOME
Issue #1393. An attempt to make infinite lines and use the edges' direction vectors.
[modules/shaper.git] / src / SketcherPrs / SketcherPrs_Factory.h
index 6e61853e93a30171cd83449902d387853e2d6697..2f43622b04aaa398db891710f16a995ab0e18d76 100644 (file)
@@ -9,10 +9,15 @@
 
 #include "SketcherPrs.h"
 
+#include <ModelAPI_Feature.h>
+
 #include <GeomAPI_Ax3.h>
 #include <GeomAPI_AISObject.h>
 
-class SketchPlugin_Constraint;
+#define GET_CONSTRAINT_PRS(NAME) \
+  static AISObjectPtr NAME(ModelAPI_Feature* theConstraint, \
+                           const std::shared_ptr<GeomAPI_Ax3>& thePlane, \
+                           AISObjectPtr thePrevious);
 
 /**
 * Class which creates constraints presentations
@@ -23,26 +28,82 @@ public:
   /// Creates coincedent constraint presentation
   /// \param theConstraint the constraint
   /// \param thePlane the current sketch plane
-  static AISObjectPtr coincidentConstraint(SketchPlugin_Constraint* theConstraint, 
-                                           const std::shared_ptr<GeomAPI_Ax3>& thePlane);
+  GET_CONSTRAINT_PRS(coincidentConstraint)
 
-  /// Creates coincedent parallel presentation
+  /// Creates collinear constraint presentation
   /// \param theConstraint the constraint
   /// \param thePlane the current sketch plane
-  static AISObjectPtr parallelConstraint(SketchPlugin_Constraint* theConstraint, 
-                                         const std::shared_ptr<GeomAPI_Ax3>& thePlane);
+  GET_CONSTRAINT_PRS(collinearConstraint)
 
-  /// Creates coincedent perpendicular presentation
+  /// Creates parallel constraint presentation
   /// \param theConstraint the constraint
   /// \param thePlane the current sketch plane
-  static AISObjectPtr perpendicularConstraint(SketchPlugin_Constraint* theConstraint, 
-                                         const std::shared_ptr<GeomAPI_Ax3>& thePlane);
+  GET_CONSTRAINT_PRS(parallelConstraint)
 
   /// Creates coincedent perpendicular presentation
   /// \param theConstraint the constraint
   /// \param thePlane the current sketch plane
-  static AISObjectPtr rigidConstraint(SketchPlugin_Constraint* theConstraint, 
-                                      const std::shared_ptr<GeomAPI_Ax3>& thePlane);
+  GET_CONSTRAINT_PRS(perpendicularConstraint)
+
+  /// Creates rigid constraint presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(rigidConstraint)
+
+  /// Creates horizontal constraint presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(horisontalConstraint)
+
+  /// Creates vertical constraint presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(verticalConstraint)
+
+  /// Creates equal constraint presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(equalConstraint)
+
+  /// Creates tangent constraiont presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(tangentConstraint)
+
+  /// Creates radius dimension presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(radiusConstraint)
+
+  /// Creates length dimension presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(lengthDimensionConstraint)
+
+  /// Creates middle constraint presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(middleConstraint)
+
+  /// Creates mirror constraint presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(mirrorConstraint)
+
+  /// Creates translate constraint presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(translateConstraint)
+
+  /// Creates rotate constraint presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(rotateConstraint)
+
+  /// Creates angle constraint presentation
+  /// \param theConstraint the constraint
+  /// \param thePlane the current sketch plane
+  GET_CONSTRAINT_PRS(angleConstraint)
 };
 
 #endif