2 #ifndef HYDROData_HYDROData_Calculation
3 #define HYDROData_HYDROData_Calculation
5 #include <HYDROData_Object.h>
12 class Handle(HYDROData_Polyline);
13 class Handle(HYDROData_Zone);
15 DEFINE_STANDARD_HANDLE(HYDROData_Calculation, HYDROData_Object)
18 /**\class HYDROData_Calculation
19 * \brief Class that stores/retreives information about the Calculation case.
21 * Calculation case is defined by selection of Geometry objects with or without
\93Zone of water
\94.
23 class HYDROData_Calculation : public HYDROData_Object
29 * Enumeration of tags corresponding to the persistent object parameters.
33 DataTag_First = HYDROData_Object::DataTag_First + 100, ///< first tag, to reserve
34 DataTag_BoundaryPolyline, ///< reference boundary polyline
35 DataTag_Zone, ///< reference zones
36 DataTag_SplittedZone ///< reference splitted zones
41 DEFINE_STANDARD_RTTI(HYDROData_Calculation);
44 * Returns the kind of this object. Must be redefined in all objects of known type.
46 HYDRODATA_EXPORT virtual const ObjectKind GetKind() const { return KIND_CALCULATION; }
50 * Dump Calculation object to Python script representation.
52 HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const;
55 // Public methods to work with Calculation
58 * Sets boundary polyline for calculation case.
60 HYDRODATA_EXPORT virtual void SetBoundaryPolyline( const Handle(HYDROData_Polyline)& thePolyline );
63 * Returns boundary polyline of calculation case.
65 HYDRODATA_EXPORT virtual Handle(HYDROData_Polyline) GetBoundaryPolyline() const;
68 * Removes boundary polyline of calculation case.
70 HYDRODATA_EXPORT virtual void RemoveBoundaryPolyline();
74 * Returns number of refrence zones for calculation case.
76 HYDRODATA_EXPORT virtual int NbZones() const;
79 * Add new one refrence zone for calculation case.
81 HYDRODATA_EXPORT virtual void AddZone( const Handle(HYDROData_Zone)& theZone );
84 * Replace the refrence zone for calculation case.
86 HYDRODATA_EXPORT virtual void SetZone( const int theIndex,
87 const Handle(HYDROData_Zone)& theBathymetry );
90 * Sets the refrence zones for calculation case.
92 HYDRODATA_EXPORT virtual void SetZones( const HYDROData_SequenceOfObjects& theZones );
95 * Returns refrence zone of calculation case by index.
97 HYDRODATA_EXPORT virtual Handle(HYDROData_Zone) GetZone( const int theIndex ) const;
100 * Returns all refrence zone of calculation case.
102 HYDRODATA_EXPORT virtual HYDROData_SequenceOfObjects GetZones() const;
105 * Removes all refrence zone of calculation case.
107 HYDRODATA_EXPORT virtual void RemoveZones();
111 * Returns number of splitted zones for calculation case.
113 HYDRODATA_EXPORT virtual int NbSplittedZones() const;
116 * Add new one splitted zone for calculation case.
118 HYDRODATA_EXPORT virtual void AddSplittedZone( const Handle(HYDROData_Zone)& theZone );
121 * Replace the splitted zone for calculation case.
123 HYDRODATA_EXPORT virtual void SetSplittedZone( const int theIndex,
124 const Handle(HYDROData_Zone)& theBathymetry );
127 * Sets the refrence zones for calculation case.
129 HYDRODATA_EXPORT virtual void SetSplittedZones( const HYDROData_SequenceOfObjects& theZones );
132 * Returns splitted zone of calculation case by index.
134 HYDRODATA_EXPORT virtual Handle(HYDROData_Zone) GetSplittedZone( const int theIndex ) const;
137 * Returns all splitted zone of calculation case.
139 HYDRODATA_EXPORT virtual HYDROData_SequenceOfObjects GetSplittedZones() const;
142 * Removes all splitted refrence zone of calculation case.
144 HYDRODATA_EXPORT virtual void RemoveSplittedZones();
148 friend class HYDROData_Iterator;
151 * Creates new object in the internal data structure. Use higher level objects
152 * to create objects with real content.
154 HYDROData_Calculation();
157 * Destructs properties of the object and object itself, removes it from the document.
159 ~HYDROData_Calculation();