Salome HOME
refs #482: new function for export calculation case
[modules/hydro.git] / src / HYDROData / HYDROData_ObstacleAltitude.h
1
2 #ifndef HYDROData_ObstacleAltitude_HeaderFile
3 #define HYDROData_ObstacleAltitude_HeaderFile
4
5
6 #include "HYDROData_IAltitudeObject.h"
7
8
9 DEFINE_STANDARD_HANDLE(HYDROData_ObstacleAltitude, HYDROData_IAltitudeObject)
10
11
12 /**\class HYDROData_ObstacleAltitude
13  * \brief Class that stores/retreives information about the obstacle altitude.
14  *
15  */
16 class HYDROData_ObstacleAltitude : 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_ObstacleAltitude);
31
32   /**
33    * Returns the kind of this object. 
34    */
35   HYDRODATA_EXPORT virtual const ObjectKind GetKind() const { return KIND_OBSTACLE_ALTITUDE; }
36
37 public:      
38
39   // Public methods to work with altitudes.
40
41   /**
42    * Returns altitude for given point.
43    * \param thePoint the point to examine
44    * \return altitude value
45    */
46   HYDRODATA_EXPORT virtual double           GetAltitudeForPoint( const gp_XY& thePoint ) const;
47
48 protected:
49
50   friend class HYDROData_Iterator;
51
52   /**
53    * Creates new object in the internal data structure. Use higher level objects 
54    * to create objects with real content.
55    */
56   HYDRODATA_EXPORT HYDROData_ObstacleAltitude();
57
58   /**
59    * Destructs properties of the object and object itself, removes it from the document.
60    */
61   HYDRODATA_EXPORT  ~HYDROData_ObstacleAltitude();
62 };
63
64 #endif