2 #ifndef HYDROData_IAltitudeObject_HeaderFile
3 #define HYDROData_IAltitudeObject_HeaderFile
5 #include "HYDROData_Entity.h"
10 DEFINE_STANDARD_HANDLE(HYDROData_IAltitudeObject, HYDROData_Entity)
13 /**\class HYDROData_IAltitudeObject
14 * \briefThe base class for all altitude objects in the HYDRO module.
17 class HYDROData_IAltitudeObject : public HYDROData_Entity
22 * Enumeration of tags corresponding to the persistent object parameters.
26 DataTag_First = HYDROData_Entity::DataTag_First + 100, ///< first tag, to reserve
31 DEFINE_STANDARD_RTTI(HYDROData_IAltitudeObject);
34 * Returns the kind of this object. Must be redefined in all objects of known type.
36 HYDRODATA_EXPORT virtual const ObjectKind GetKind() const = 0;
39 // Public methods to work with altitudes.
42 * Returns altitude points list.
45 HYDRODATA_EXPORT static double GetInvalidAltitude();
48 * Returns altitude for given point.
49 * \param thePoint the point to examine
50 * \return altitude value
52 HYDRODATA_EXPORT virtual double GetAltitudeForPoint( const QPointF& thePoint ) const;
55 * Returns altitude for given point.
56 * \param thePoint the point to examine
57 * \return altitude value
59 HYDRODATA_EXPORT virtual double GetAltitudeForPoint( const gp_XY& thePoint ) const = 0;
65 * Creates new object in the internal data structure. Use higher level objects
66 * to create objects with real content.
68 HYDROData_IAltitudeObject();
71 * Destructs properties of the object and object itself, removes it from the document.
73 ~HYDROData_IAltitudeObject();