enum DataTag
{
DataTag_First = HYDROData_Object::DataTag_First + 100, ///< first tag, to reserve
- DataTag_PolylineXY, ///< reference hydraulic axis
- DataTag_ProfileUZ, ///< reference profiles
+ DataTag_PolylineXY, ///< reference hydraulic axis
+ DataTag_ProfileUZ, ///< reference profile
+ DataTag_ChildProfileUZ, ///< reference profile
};
public:
/**
* Sets reference x,y polyline object for 3D polyline.
*/
- HYDRODATA_EXPORT virtual bool SetPolylineXY( const Handle(HYDROData_PolylineXY)& thePolyline );
+ HYDRODATA_EXPORT virtual bool SetPolylineXY( const Handle(HYDROData_PolylineXY)& thePolyline,
+ const bool theIsUpdateProfile = true );
/**
* Returns reference x,y polyline object of 3D polyline.
HYDRODATA_EXPORT virtual void RemoveProfileUZ();
+ /**
+ * Set reference bathymetry object for geometry object.
+ * Reimplemented to remove reference u,z profile.
+ */
+ HYDRODATA_EXPORT virtual bool SetBathymetry( const Handle(HYDROData_Bathymetry)& theBathymetry );
+
+ /**
+ * Clear the reference bathymetry object for geometry object.
+ * Reimplemented to remove child u,z profile.
+ */
+ HYDRODATA_EXPORT virtual void RemoveBathymetry();
+
+
+ /**
+ * Returns the child u,z profile which has been generated from bathymetry.
+ */
+ HYDRODATA_EXPORT Handle(HYDROData_ProfileUZ) GetChildProfileUZ( const bool theIsCreate = true ) const;
+
+
protected:
/**
HYDRODATA_EXPORT virtual void checkAndSetObject3D() {}
+protected:
+
+
+ void updateChildProfilePoints();
+
+ void removeChildProfileUZ();
+
+
protected:
friend class HYDROData_Iterator;