Salome HOME
Merging with V7_main branch.
[modules/hydro.git] / src / HYDROData / HYDROData_AltitudeObject.h
1
2 #ifndef HYDROData_AltitudeObject_HeaderFile
3 #define HYDROData_AltitudeObject_HeaderFile
4
5
6 #include "HYDROData_IAltitudeObject.h"
7
8
9 DEFINE_STANDARD_HANDLE(HYDROData_AltitudeObject, HYDROData_IAltitudeObject)
10
11
12 /**\class HYDROData_AltitudeObject
13  * \brief Class that stores/retreives information about the Altitude.
14  *
15  */
16 class HYDROData_AltitudeObject : public HYDROData_IAltitudeObject
17 {
18 protected:
19
20   /**
21    * Enumeration of tags corresponding to the persistent object parameters.
22    */
23   enum DataTag
24   {
25     DataTag_First = HYDROData_IAltitudeObject::DataTag_First + 100, ///< first tag, to reserve
26   };
27
28 public:
29
30   DEFINE_STANDARD_RTTI(HYDROData_AltitudeObject);
31
32   /**
33    * Returns the kind of this object. 
34    */
35   HYDRODATA_EXPORT virtual const ObjectKind GetKind() const { return KIND_ALTITUDE; }
36
37
38   /**
39    * Dump Altitude object to Python script representation.
40    */
41   HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const;
42
43 public:      
44
45   // Public methods to work with altitudes.
46
47   /**
48    * Returns altitude for given point.
49    * \param thePoint the point to examine
50    * \return altitude value
51    */
52   HYDRODATA_EXPORT virtual double           GetAltitudeForPoint( const gp_XY& thePoint ) const;
53
54 protected:
55
56   friend class HYDROData_Iterator;
57
58   /**
59    * Creates new object in the internal data structure. Use higher level objects 
60    * to create objects with real content.
61    */
62   HYDRODATA_EXPORT HYDROData_AltitudeObject();
63
64   /**
65    * Destructs properties of the object and object itself, removes it from the document.
66    */
67   HYDRODATA_EXPORT  ~HYDROData_AltitudeObject();
68 };
69
70 #endif