Salome HOME
Issue #1343 Fixes for creating extrusion on vertex
[modules/shaper.git] / src / Model / Model_BodyBuilder.h
index c5135c7736b2b3e3ef49e47d95f45ea7e4da64aa..0941d38b2aaf990b7709af4fb8442a5264808b3c 100755 (executable)
@@ -18,7 +18,7 @@ class TNaming_Builder;
 
 /**\class Model_BodyBuilder
  * \ingroup DataModel
- * \brief The body (shape) result of a feature.
+ * \brief Extra API for the ResultBody that allows to work with naming.
  */
 class Model_BodyBuilder : public ModelAPI_BodyBuilder
 {
@@ -27,7 +27,8 @@ class Model_BodyBuilder : public ModelAPI_BodyBuilder
   std::vector<TNaming_Builder*> myBuilders;
 public:
   /// Stores the shape (called by the execution method).
-  MODEL_EXPORT virtual void store(const std::shared_ptr<GeomAPI_Shape>& theShape);
+  MODEL_EXPORT virtual void store(const std::shared_ptr<GeomAPI_Shape>& theShape,
+                                  const bool theIsStoreSameShapes = true);
 
   /// Stores the generated shape (called by the execution method).
   MODEL_EXPORT virtual void storeGenerated(const std::shared_ptr<GeomAPI_Shape>& theFromShape,
@@ -83,7 +84,8 @@ public:
                                                const int  theKindOfShape,
                                                const int  theTag,
                                                                                           const std::string& theName,
-                                               GeomAPI_DataMapOfShapeShape& theSubShapes);
+                                               GeomAPI_DataMapOfShapeShape& theSubShapes,
+                                               const bool theIsStoreSeparate = false);
    /// load and orient generated shapes
   MODEL_EXPORT virtual void loadAndOrientGeneratedShapes (
                                                   GeomAlgoAPI_MakeShape* theMS,
@@ -109,6 +111,10 @@ public:
   /// (theFlag = true) and back (theFlag = false)
   MODEL_EXPORT virtual void evolutionToSelection(const bool theFlag);
 
+  /// Returns true if the latest modification of this body in the naming history
+  // is equal to the given shape
+  MODEL_EXPORT virtual bool isLatestEqual(const std::shared_ptr<GeomAPI_Shape>& theShape);
+
 protected:
   /// Default constructor accessible only by Model_Objects
   Model_BodyBuilder(ModelAPI_Object* theOwner);