/**\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
{
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,
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,
/// (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);
/// Removes the stored builders