Salome HOME
Geometrical naming for edges and intersections debug.
[modules/shaper.git] / src / Model / Model_ResultBody.h
index ad5f1c53136a25ca5a985f834ea5e400823a229f..62817a9bf08f9eaefd9eaa3f6d0da4602dfe5ddb 100644 (file)
@@ -49,12 +49,24 @@ public:
   /// Removes the stored builders
   MODEL_EXPORT virtual ~Model_ResultBody();
 
-  /// load and orient modified shapes for sub-objects
-  MODEL_EXPORT virtual void loadAndOrientModifiedShapes (GeomAlgoAPI_MakeShape* theMS,
-    std::shared_ptr<GeomAPI_Shape>  theShapeIn, const int  theKindOfShape, const int  theTag,
-    const std::string& theName, GeomAPI_DataMapOfShapeShape& theSubShapes,
-    const bool theIsStoreSeparate = false, const bool theIsStoreAsGenerated = false,
-    const bool theSplitInSubs = false);
+  /// Records the subshape newShape which was generated during a topological construction.
+  /// As an example, consider the case of a face generated in construction of a box.
+  MODEL_EXPORT virtual void generated(const GeomShapePtr& theNewShape,
+                                      const std::string& theName) override;
+
+  /// load generated shapes
+  MODEL_EXPORT
+  virtual void loadGeneratedShapes(const std::shared_ptr<GeomAlgoAPI_MakeShape>& theAlgo,
+                                   const GeomShapePtr& theOldShape,
+                                   const GeomAPI_Shape::ShapeType theShapeTypeToExplore,
+                                   const std::string& theName = "") override;
+
+  /// load modified shapes for sub-objects
+  MODEL_EXPORT
+  virtual void loadModifiedShapes(const std::shared_ptr<GeomAlgoAPI_MakeShape>& theAlgo,
+                                  const GeomShapePtr& theOldShape,
+                                  const GeomAPI_Shape::ShapeType theShapeTypeToExplore,
+                                  const std::string& theName = "") override;
 
 
   /// Returns the number of sub-elements
@@ -87,12 +99,16 @@ public:
   // is equal to the given shape
   MODEL_EXPORT virtual bool isLatestEqual(const std::shared_ptr<GeomAPI_Shape>& theShape);
 
+  /// Returns true is the topology is connected.
+  MODEL_EXPORT virtual bool isConnectedTopology();
+
 protected:
   /// Makes a body on the given feature
   Model_ResultBody();
 
   /// Updates the sub-bodies if shape of this object is composite-solid
-  void updateSubs(const std::shared_ptr<GeomAPI_Shape>& theThisShape);
+  void updateSubs(const std::shared_ptr<GeomAPI_Shape>& theThisShape,
+                  const bool theShapeChanged = true);
 
   // Checks the state of children and partents to send events of creation/erase when needed
   void updateConcealment();