Salome HOME
Refs #289 - Spline profile is represented in OCC view as polyline profile
[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
39   /**
40    * Dump Altitude object to Python script representation.
41    */
42   HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const;
43
44 public:      
45
46   // Public methods to work with altitudes.
47
48   /**
49    * Returns altitude for given point.
50    * \param thePoint the point to examine
51    * \return altitude value
52    */
53   HYDRODATA_EXPORT virtual double           GetAltitudeForPoint( const gp_XY& thePoint ) const;
54
55 protected:
56
57   bool getBoundaryProfilesForPoint( const gp_XY&               thePoint,
58                                     Handle(HYDROData_Profile)& theLeftProfile,
59                                     Handle(HYDROData_Profile)& theRightProfile ) const;
60
61 protected:
62
63   friend class HYDROData_Iterator;
64
65   /**
66    * Creates new object in the internal data structure. Use higher level objects 
67    * to create objects with real content.
68    */
69   HYDRODATA_EXPORT HYDROData_StreamAltitude();
70
71   /**
72    * Destructs properties of the object and object itself, removes it from the document.
73    */
74   HYDRODATA_EXPORT  ~HYDROData_StreamAltitude();
75 };
76
77 #endif