2 #ifndef HYDROData_Region_HeaderFile
3 #define HYDROData_Region_HeaderFile
5 #include "HYDROData_Entity.h"
8 DEFINE_STANDARD_HANDLE(HYDROData_Region, HYDROData_Entity)
10 class Handle(HYDROData_Zone);
12 /**\class HYDROData_Region
13 * \brief Regions are groups (lists) of zones, they can include one or several zones.
15 class HYDROData_Region : public HYDROData_Entity
20 // Enumeration of mergin types for conflict bathymetries
21 enum MergeBathymetriesType
30 * Enumeration of tags corresponding to the persistent object parameters.
34 DataTag_First = HYDROData_Entity::DataTag_First + 100, ///< first tag, to reserve
35 DataTag_Zone, ///< reference zones
36 DataTag_MergeType, ///< mergin type of conflict bathymetries
40 * Enumeration of tags corresponding to the child sub-objects of object.
44 ChildTag_First = HYDROData_Entity::ChildTag_First + 100, ///< first tag, to reserve
45 ChildTag_Zone ///< child zones
49 DEFINE_STANDARD_RTTI(HYDROData_Region);
52 * Returns the kind of this object. Must be redefined in all objects of known type.
54 HYDRODATA_EXPORT virtual const ObjectKind GetKind() const { return KIND_REGION; }
57 * Dump object to Python script representation.
59 HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const;
63 * Create new one reference zone for region on child label.
64 * The new zone is not added into the list of reference zones.
66 HYDRODATA_EXPORT virtual Handle(HYDROData_Zone) AddNewZone();
69 * Removes all child zones from region.
71 HYDRODATA_EXPORT virtual void RemoveChildZones();
75 * Sets the merging type for conflict bathymetries.
76 * By default it is set to Merge_ZMIN.
78 HYDRODATA_EXPORT virtual void SetMergeType( const MergeBathymetriesType& theType );
81 * Returns the merging type for conflict bathymetries.
83 HYDRODATA_EXPORT virtual MergeBathymetriesType GetMergeType() const;
88 * Returns number of reference zones of region.
93 * Add new one reference zone for region.
95 HYDRODATA_EXPORT virtual void AddZone( const Handle(HYDROData_Zone)& theZone );
98 * Replace the reference zone for region.
100 HYDRODATA_EXPORT virtual void SetZone( const int theIndex,
101 const Handle(HYDROData_Zone)& theZone );
104 * Inserts the reference zone for region before given index.
106 HYDRODATA_EXPORT virtual void InsertZone( const int theBeforeIndex,
107 const Handle(HYDROData_Zone)& theZone );
110 * Sets reference zones for calculation region.
112 HYDRODATA_EXPORT virtual void SetZones( const HYDROData_SequenceOfObjects& theZones );
115 * Returns reference zone of region by index.
117 HYDRODATA_EXPORT virtual Handle(HYDROData_Zone) GetZone( const int theIndex ) const;
120 * Returns all reference zone of region.
122 HYDRODATA_EXPORT virtual HYDROData_SequenceOfObjects GetZones() const;
125 * Removes reference zone from region.
127 HYDRODATA_EXPORT virtual void RemoveZone( const Handle(HYDROData_Zone)& theZone );
130 * Removes reference zone from region by it index.
132 HYDRODATA_EXPORT virtual void RemoveZone( const int theIndex );
135 * Removes all reference zones from region.
137 HYDRODATA_EXPORT virtual void RemoveZones();
142 friend class HYDROData_Calculation;
143 friend class HYDROData_Iterator;
146 * Creates new object in the internal data structure. Use higher level objects
147 * to create objects with real content.
152 * Destructs properties of the object and object itself, removes it from the document.