X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Polyline3D.h;h=3f0c75172216179dbb8cd19c60832001c2188767;hb=e7e76450be3fadf6ad263f78e10ceb8cd1f70deb;hp=e05cfdb9f2a2b092b00130096bae7900ccef4d77;hpb=2d99821157e770385d7af917b2d22d6aa3cacb7e;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Polyline3D.h b/src/HYDROData/HYDROData_Polyline3D.h index e05cfdb9..3f0c7517 100644 --- a/src/HYDROData/HYDROData_Polyline3D.h +++ b/src/HYDROData/HYDROData_Polyline3D.h @@ -1,13 +1,28 @@ +// Copyright (C) 2014-2015 EDF-R&D +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef HYDROData_Polyline3D_HeaderFile #define HYDROData_Polyline3D_HeaderFile #include "HYDROData_Object.h" -DEFINE_STANDARD_HANDLE(HYDROData_Polyline3D, HYDROData_Object) - -class Handle(HYDROData_PolylineXY); -class Handle(HYDROData_ProfileUZ); +class HYDROData_PolylineXY; +class HYDROData_ProfileUZ; class gp_XYZ; /**\class HYDROData_Polyline3D @@ -28,12 +43,13 @@ protected: 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: - DEFINE_STANDARD_RTTI(HYDROData_Polyline3D); + DEFINE_STANDARD_RTTIEXT(HYDROData_Polyline3D, HYDROData_Object); /** * Returns the kind of this object. Must be redefined in all objects of known type. @@ -43,23 +59,14 @@ public: /** * Dump object to Python script representation. */ - HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const; + HYDRODATA_EXPORT virtual QStringList DumpToPython( const QString& thePyScriptPath, + MapOfTreatedObjects& theTreatedObjects ) const; /** * Returns the list of all reference objects of this object. */ HYDRODATA_EXPORT virtual HYDROData_SequenceOfObjects GetAllReferenceObjects() const; - /** - * Returns the top shape of the object. - */ - HYDRODATA_EXPORT virtual TopoDS_Shape GetTopShape() const; - - /** - * Returns the 3d shape of the object. - */ - HYDRODATA_EXPORT virtual TopoDS_Shape GetShape3D() const; - /** * Update the shape presentations of stream. * Call this method whenever you made changes for stream data. @@ -69,12 +76,12 @@ public: /** * Returns default filling color for new 3D polyline. */ - HYDRODATA_EXPORT static QColor DefaultFillingColor(); + HYDRODATA_EXPORT virtual QColor DefaultFillingColor() const; /** * Returns default border color for new 3D polyline. */ - HYDRODATA_EXPORT static QColor DefaultBorderColor(); + HYDRODATA_EXPORT virtual QColor DefaultBorderColor() const; public: @@ -83,7 +90,8 @@ 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. @@ -112,18 +120,37 @@ public: HYDRODATA_EXPORT virtual void RemoveProfileUZ(); -protected: + /** + * Set reference bathymetry object for geometry object. + * Reimplemented to remove reference u,z profile. + */ + HYDRODATA_EXPORT virtual bool SetAltitudeObject( const Handle(HYDROData_IAltitudeObject)& theAltitude ); /** - * Returns default filling color for new object. + * Clear the reference bathymetry object for geometry object. + * Reimplemented to remove child u,z profile. */ - HYDRODATA_EXPORT virtual QColor getDefaultFillingColor() const; + HYDRODATA_EXPORT virtual void RemoveAltitudeObject(); + + HYDRODATA_EXPORT Polyline3DPoints GetProfilePoints3D(bool IsConvertToGlobal); /** - * Returns default border color for new object. + * Returns the child u,z profile which has been generated from bathymetry. */ - HYDRODATA_EXPORT virtual QColor getDefaultBorderColor() const; + HYDRODATA_EXPORT Handle(HYDROData_ProfileUZ) GetChildProfileUZ( const bool theIsCreate = true ) const; + /** + * Sets the child u,z profile for polyline. + */ + HYDRODATA_EXPORT void SetChildProfileUZ( const Handle(HYDROData_ProfileUZ)& theProfile ); + + /** + * Returns list of polyline points. + * \return list of 3D points + */ + HYDRODATA_EXPORT Polyline3DPoints GetPoints( double theEqDistance = -1 ) const; + +protected: /** * Checks and if necessary create child 3D object. * Reimplemented to prevent creation of 3D child object. @@ -131,6 +158,13 @@ protected: HYDRODATA_EXPORT virtual void checkAndSetObject3D() {} +protected: + + void updateChildProfilePoints(); + + void removeChildProfileUZ(); + + protected: friend class HYDROData_Iterator;