X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FModel%2FModel_ResultBody.h;h=62817a9bf08f9eaefd9eaa3f6d0da4602dfe5ddb;hb=f36409774efce7c530518a1553946c9c76526fb9;hp=ad5f1c53136a25ca5a985f834ea5e400823a229f;hpb=5a82acff74697623112b76b67c0200945a3e9976;p=modules%2Fshaper.git diff --git a/src/Model/Model_ResultBody.h b/src/Model/Model_ResultBody.h index ad5f1c531..62817a9bf 100644 --- a/src/Model/Model_ResultBody.h +++ b/src/Model/Model_ResultBody.h @@ -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 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& 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& 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& 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& theThisShape); + void updateSubs(const std::shared_ptr& theThisShape, + const bool theShapeChanged = true); // Checks the state of children and partents to send events of creation/erase when needed void updateConcealment();