]> SALOME platform Git repositories - modules/hydro.git/blob - src/HYDROData/HYDROData_IAltitudeObject.h
Salome HOME
Merging with V7_main branch.
[modules/hydro.git] / src / HYDROData / HYDROData_IAltitudeObject.h
1
2 #ifndef HYDROData_IAltitudeObject_HeaderFile
3 #define HYDROData_IAltitudeObject_HeaderFile
4
5 #include "HYDROData_Entity.h"
6
7 class gp_XY;
8
9 DEFINE_STANDARD_HANDLE(HYDROData_IAltitudeObject, HYDROData_Entity)
10
11
12 /**\class HYDROData_IAltitudeObject
13  * \briefThe base class for all altitude objects in the HYDRO module.
14  *
15  */
16 class HYDROData_IAltitudeObject : public HYDROData_Entity
17 {
18 protected:
19
20   /**
21    * Enumeration of tags corresponding to the persistent object parameters.
22    */
23   enum DataTag
24   {
25     DataTag_First = HYDROData_Entity::DataTag_First + 100, ///< first tag, to reserve
26   };
27
28 public:
29
30   DEFINE_STANDARD_RTTI(HYDROData_IAltitudeObject);
31
32   /**
33    * Returns the kind of this object. Must be redefined in all objects of known type.
34    */
35   HYDRODATA_EXPORT virtual const ObjectKind GetKind() const = 0;
36
37 public:      
38   // Public methods to work with altitudes.
39
40   /**
41    * Returns altitude points list.
42    * \return points list
43    */
44   HYDRODATA_EXPORT static double            GetInvalidAltitude();
45
46   /**
47    * Returns altitude for given point.
48    * \param thePoint the point to examine
49    * \return altitude value
50    */
51   HYDRODATA_EXPORT virtual double           GetAltitudeForPoint( const gp_XY& thePoint ) const = 0;
52
53
54 protected:
55
56   /**
57    * Creates new object in the internal data structure. Use higher level objects 
58    * to create objects with real content.
59    */
60   HYDRODATA_EXPORT HYDROData_IAltitudeObject();
61
62   /**
63    * Destructs properties of the object and object itself, removes it from the document.
64    */
65   HYDRODATA_EXPORT ~HYDROData_IAltitudeObject();
66 };
67
68 #endif