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