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