/**\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;
+
/// 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.
virtual void generated(
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,
/// load disconnected vetexes
virtual void loadDisconnectedVertexes(std::shared_ptr<GeomAPI_Shape> theShape, const std::string& theName,int& theTag) = 0;
+ /// Converts evolution of sub-shapes stored in naming structure to selection
+ /// (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