Salome HOME
Issue #1367: Fill feature.
[modules/shaper.git] / src / FeaturesPlugin / FeaturesPlugin_Placement.h
index 3cfd358874a21a7d361df35dbe086aae70c3206b..498a771b22b3e339277fc6fd1458308cf7303175 100644 (file)
 #include "FeaturesPlugin.h"
 #include <ModelAPI_Feature.h>
 #include <GeomAlgoAPI_Placement.h>
+#include <GeomAlgoAPI_Transform.h>
 
 class ModelAPI_ResultBody;
 class GeomAPI_Shape;
 
+/**\class FeaturesPlugin_Placement
+ * \ingroup Plugins
+ * \brief Feature for applying of placement operation: relative movement of Solid.
+ *
+ * Locates the selected placement_attractable_object (face, edge, vertex) of the solid into 
+ * the selected placement_base_object. Faces must be planar, edges must be linear.
+ * Orientation of the placed solid depends on the underlied planes of both faces.
+ */
 class FeaturesPlugin_Placement : public ModelAPI_Feature
 {
  public:
@@ -23,17 +32,38 @@ class FeaturesPlugin_Placement : public ModelAPI_Feature
     static const std::string MY_PLACEMENT_ID("Placement");
     return MY_PLACEMENT_ID;
   }
-  /// attribute name of referenced face
-  inline static const std::string& BASE_FACE_ID()
+
+  /// attribute name of references sketch entities list, it should contain a sketch result or
+  /// a pair a sketch result to sketch face
+  inline static const std::string& OBJECTS_LIST_ID()
+  {
+    static const std::string MY_OBJECTS_LIST_ID("placement_objects_list");
+    return MY_OBJECTS_LIST_ID;
+  }
+
+  /// attribute name of referenced object
+  inline static const std::string& START_SHAPE_ID()
   {
-    static const std::string MY_BASE_FACE_ID("placement_base_face");
-    return MY_BASE_FACE_ID;
+    static const std::string MY_START_SHAPE_ID("placement_start_shape");
+    return MY_START_SHAPE_ID;
   }
   /// attribute name of attractable face
-  inline static const std::string& ATTRACT_FACE_ID()
+  inline static const std::string& END_SHAPE_ID()
+  {
+    static const std::string MY_END_SHAPE_ID("placement_end_shape");
+    return MY_END_SHAPE_ID;
+  }
+  /// attribute name of flag of reverse direction
+  inline static const std::string& REVERSE_ID()
+  {
+    static const std::string MY_REVERSE_ID("placement_reverse_direction");
+    return MY_REVERSE_ID;
+  }
+  /// attribute name of flag of centering position
+  inline static const std::string& CENTERING_ID()
   {
-    static const std::string MY_ATTRACT_FACE_ID("placement_attractable_face");
-    return MY_ATTRACT_FACE_ID;
+    static const std::string MY_CENTERING_ID("placement_centering");
+    return MY_CENTERING_ID;
   }
 
   /// Returns the kind of a feature
@@ -53,7 +83,7 @@ class FeaturesPlugin_Placement : public ModelAPI_Feature
   FeaturesPlugin_Placement();
 private:
   /// Load Naming data structure of the feature to the document
-  void LoadNamingDS(GeomAlgoAPI_Placement& theFeature,
+  void LoadNamingDS(GeomAlgoAPI_Transform& theTransformAlgo,
                     std::shared_ptr<ModelAPI_ResultBody> theResultBody,
                     std::shared_ptr<GeomAPI_Shape> theSlaveObject);
 };