3 #ifndef HYDROData_Calculation_HeaderFile
4 #define HYDROData_Calculation_HeaderFile
6 #include <HYDROData_Entity.h>
8 class Handle(HYDROData_Object);
9 class Handle(HYDROData_Region);
11 DEFINE_STANDARD_HANDLE(HYDROData_Calculation, HYDROData_Entity)
14 /**\class HYDROData_Calculation
15 * \brief Calculation case is defined by selection of Geometry objects with or without
\93Zone of water
\94.
18 class HYDROData_Calculation : public HYDROData_Entity
24 * Enumeration of tags corresponding to the persistent object parameters.
28 DataTag_First = HYDROData_Entity::DataTag_First + 100, ///< first tag, to reserve
29 DataTag_GeometryObject, ///< reference geometry objects
30 DataTag_Region ///< reference regions
34 * Enumeration of tags corresponding to the child sub-objects of object.
38 ChildTag_First = HYDROData_Entity::ChildTag_First + 100, ///< first tag, to reserve
39 ChildTag_Region ///< child regions
44 DEFINE_STANDARD_RTTI(HYDROData_Calculation);
47 * Returns the kind of this object. Must be redefined in all objects of known type.
49 HYDRODATA_EXPORT virtual const ObjectKind GetKind() const { return KIND_CALCULATION; }
53 * Dump Calculation object to Python script representation.
55 HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const;
58 // Public methods to work with Calculation
61 * Split reference geometry objects to non-intersected regions.
63 HYDRODATA_EXPORT virtual void SplitGeometryObjects();
67 * Add new one reference geometry object for calculation case.
69 HYDRODATA_EXPORT virtual bool AddGeometryObject( const Handle(HYDROData_Object)& theObject );
72 * Returns all reference geometry objects of calculation case.
74 HYDRODATA_EXPORT virtual HYDROData_SequenceOfObjects GetGeometryObjects() const;
77 * Removes reference geometry object from calculation case.
79 HYDRODATA_EXPORT virtual void RemoveGeometryObject( const Handle(HYDROData_Object)& theObject );
82 * Removes all reference geometry objects from calculation case.
84 HYDRODATA_EXPORT virtual void RemoveGeometryObjects();
88 * Add new one region for calculation case.
89 * The new region is added into the list of reference regions.
91 HYDRODATA_EXPORT virtual Handle(HYDROData_Region) AddNewRegion();
95 * Add new one reference region for calculation case.
97 HYDRODATA_EXPORT virtual bool AddRegion( Handle(HYDROData_Region)& theRegion );
100 * Returns all reference regions of calculation case.
102 HYDRODATA_EXPORT virtual HYDROData_SequenceOfObjects GetRegions() const;
105 * Removes reference region from calculation case.
107 HYDRODATA_EXPORT virtual void RemoveRegion( const Handle(HYDROData_Region)& theRegion );
110 * Removes all reference regions from calculation case.
112 HYDRODATA_EXPORT virtual void RemoveRegions();
116 friend class HYDROData_Iterator;
119 * Creates new object in the internal data structure. Use higher level objects
120 * to create objects with real content.
122 HYDROData_Calculation();
125 * Destructs properties of the object and object itself, removes it from the document.
127 ~HYDROData_Calculation();