Salome HOME
Boundary polyline for calculation Cases added (Feature #10).
[modules/hydro.git] / src / HYDROData / HYDROData_Calculation.h
1
2 #ifndef HYDROData_HYDROData_Calculation
3 #define HYDROData_HYDROData_Calculation
4
5 #include <HYDROData_Object.h>
6
7 class gp_XY;
8 class gp_XYZ;
9 class QPointF;
10 class QFile;
11
12 class Handle(HYDROData_Polyline);
13
14 DEFINE_STANDARD_HANDLE(HYDROData_Calculation, HYDROData_Object)
15
16
17 /**\class HYDROData_Calculation
18  * \brief Class that stores/retreives information about the Calculation case.
19  *
20  * Calculation case is defined by selection of Geometry objects with or without \93Zone of water\94
21  */
22 class HYDROData_Calculation : public HYDROData_Object
23 {
24
25 protected:
26
27   /**
28    * Enumeration of tags corresponding to the persistent object parameters.
29    */
30   enum DataTag
31   {
32     DataTag_First = HYDROData_Object::DataTag_First + 100, ///< first tag, to reserve
33     DataTag_BoundaryPolyline,    ///< reference boundary polyline
34   };
35
36 public:
37
38   DEFINE_STANDARD_RTTI(HYDROData_Calculation);
39
40   /**
41    * Returns the kind of this object. Must be redefined in all objects of known type.
42    */
43   HYDRODATA_EXPORT virtual const ObjectKind GetKind() const { return KIND_CALCULATION; }
44
45
46   /**
47    * Dump Calculation object to Python script representation.
48    */
49   HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const;
50
51 public:      
52   // Public methods to work with Calculation
53
54   HYDRODATA_EXPORT virtual void SetBoundaryPolyline( const Handle(HYDROData_Polyline)& thePolyline );
55
56   HYDRODATA_EXPORT virtual Handle(HYDROData_Polyline) GetBoundaryPolyline() const;
57
58 protected:
59
60   friend class HYDROData_Iterator;
61
62   /**
63    * Creates new object in the internal data structure. Use higher level objects 
64    * to create objects with real content.
65    */
66   HYDROData_Calculation();
67
68   /**
69    * Destructs properties of the object and object itself, removes it from the document.
70    */
71   ~HYDROData_Calculation();
72 };
73
74 #endif