/**\class ModelAPI_BodyBuilder
* \ingroup DataModel
+ * \brief Extra API for the ResultBody that allows to work with naming.
*/
class ModelAPI_BodyBuilder
{
MODELAPI_EXPORT virtual ~ModelAPI_BodyBuilder() {};
/// Stores the shape (called by the execution method).
- virtual void store(const std::shared_ptr<GeomAPI_Shape>& theShape) = 0;
+ virtual void store(const std::shared_ptr<GeomAPI_Shape>& theShape,
+ const bool theIsStoreSameShapes = true) = 0;
/// Stores the generated shape (called by the execution method).
virtual void storeGenerated(const std::shared_ptr<GeomAPI_Shape>& theFromShape,
const std::shared_ptr<GeomAPI_Shape>& theNewShape,
const int theDecomposeSolidsTag = 0) = 0;
+ /// Stores the shape without naming support
+ virtual void storeWithoutNaming(const std::shared_ptr<GeomAPI_Shape>& theShape) = 0;
+
/// Returns the shape-result produced by this feature
virtual std::shared_ptr<GeomAPI_Shape> shape() = 0;
const int theKindOfShape,
const int theTag,
const std::string& theName,
- GeomAPI_DataMapOfShapeShape& theSubShapes) = 0;
+ GeomAPI_DataMapOfShapeShape& theSubShapes,
+ const bool theIsStoreSeparate = false) = 0;
/// load and orient generated shapes
virtual void loadAndOrientGeneratedShapes (
GeomAlgoAPI_MakeShape* theMS,
/// (theFlag = true) and back (theFlag = false)
virtual void evolutionToSelection(const bool theFlag) = 0;
+ /// Returns true if the latest modification of this body in the naming history
+ // is equal to the given shape
+ virtual bool isLatestEqual(const std::shared_ptr<GeomAPI_Shape>& theShape) = 0;
+
protected:
/// Returns the data manager of this object: attributes
MODELAPI_EXPORT virtual std::shared_ptr<ModelAPI_Data> data() const;
MODELAPI_EXPORT virtual std::shared_ptr<ModelAPI_Document> document() const;
protected:
+ /// Deafult constructor accessible only from Model_Object
MODELAPI_EXPORT ModelAPI_BodyBuilder(ModelAPI_Object* theOwner);
- ModelAPI_Object* myOwner;
+ ModelAPI_Object* myOwner; ///< the owner object this builder belongs to
};
//! Pointer on feature object