2 #ifndef HYDROData_ShapesGroup_HeaderFile
3 #define HYDROData_ShapesGroup_HeaderFile
5 #include <HYDROData_Entity.h>
7 #include <TopTools_SequenceOfShape.hxx>
11 DEFINE_STANDARD_HANDLE(HYDROData_ShapesGroup, HYDROData_Entity)
13 /**\class HYDROData_ShapesGroup
14 * \brief Class that stores/retreives the sequence of shapes.
16 class HYDROData_ShapesGroup : public HYDROData_Entity
20 * Enumeration of tags corresponding to the persistent object parameters.
24 DataTag_First = HYDROData_Entity::DataTag_First + 100, ///< first tag, to reserve
25 DataTag_Shape, ///< reference edges
29 DEFINE_STANDARD_RTTI(HYDROData_ShapesGroup);
32 * Returns the kind of this object. Must be redefined in all objects of known type.
34 HYDRODATA_EXPORT virtual const ObjectKind GetKind() const { return KIND_SHAPES_GROUP; }
37 * Returns flag indicating that object is updateble or not.
39 HYDRODATA_EXPORT virtual bool CanBeUpdated() const;
42 * Returns flag indicating that object can be removed or not.
44 HYDRODATA_EXPORT virtual bool CanRemove();
47 // Public methods to work with reference Shapes
50 * Add new one shape for the group.
52 HYDRODATA_EXPORT virtual void AddShape( const TopoDS_Shape& theShape );
55 * Sets new sequence of shapes for the group.
57 HYDRODATA_EXPORT virtual void SetShapes( const TopTools_SequenceOfShape& theShapes );
60 * Returns all shapes of the group.
62 HYDRODATA_EXPORT virtual void GetShapes( TopTools_SequenceOfShape& theShapes ) const;
65 * Removes all shapes from the group.
67 HYDRODATA_EXPORT virtual void RemoveShapes();
72 friend class HYDROData_Iterator;
75 * Creates new object in the internal data structure. Use higher level objects
76 * to create objects with real content.
78 HYDRODATA_EXPORT HYDROData_ShapesGroup();
81 * Destructs properties of the object and object itself, removes it from the document.
83 virtual HYDRODATA_EXPORT ~HYDROData_ShapesGroup();