2 #ifndef HYDROData_ShapesGroup_HeaderFile
3 #define HYDROData_ShapesGroup_HeaderFile
5 #include <HYDROData_Entity.h>
7 #include <TopTools_SequenceOfShape.hxx>
10 class TopTools_ListOfShape;
12 DEFINE_STANDARD_HANDLE(HYDROData_ShapesGroup, HYDROData_Entity)
14 /**\class HYDROData_ShapesGroup
15 * \brief Class that stores/retreives the sequence of shapes.
17 class HYDROData_ShapesGroup : public HYDROData_Entity
21 * Enumeration of tags corresponding to the persistent object parameters.
25 DataTag_First = HYDROData_Entity::DataTag_First + 100, ///< first tag, to reserve
26 DataTag_Shape, ///< reference edges
30 DEFINE_STANDARD_RTTI(HYDROData_ShapesGroup);
33 * Returns the kind of this object. Must be redefined in all objects of known type.
35 HYDRODATA_EXPORT virtual const ObjectKind GetKind() const { return KIND_SHAPES_GROUP; }
38 * Returns flag indicating that object is updateble or not.
40 HYDRODATA_EXPORT virtual bool CanBeUpdated() const;
43 * Returns flag indicating that object can be removed or not.
45 HYDRODATA_EXPORT virtual bool CanRemove();
48 // Public methods to work with reference Shapes
51 * Add new one shape for the group.
53 HYDRODATA_EXPORT virtual void AddShape( const TopoDS_Shape& theShape );
56 * Sets new sequence of shapes for the group.
58 HYDRODATA_EXPORT virtual void SetShapes( const TopTools_SequenceOfShape& theShapes );
61 * Sets new list of shapes for the group.
63 HYDRODATA_EXPORT virtual void SetShapes( const TopTools_ListOfShape& theShapes );
66 * Returns all shapes of the group.
68 HYDRODATA_EXPORT virtual void GetShapes( TopTools_SequenceOfShape& theShapes ) const;
71 * Removes all shapes from the group.
73 HYDRODATA_EXPORT virtual void RemoveShapes();
78 friend class HYDROData_Iterator;
81 * Creates new object in the internal data structure. Use higher level objects
82 * to create objects with real content.
84 HYDRODATA_EXPORT HYDROData_ShapesGroup();
87 * Destructs properties of the object and object itself, removes it from the document.
89 virtual HYDRODATA_EXPORT ~HYDROData_ShapesGroup();