X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_IPolyline.h;h=0d3d7442ce8f2e074fa37880ee370cb9f346cc44;hb=84ec5b92ea05194a9d4d413b9bc896cf68d2e3ca;hp=9155f6930bb12d49058ac50e8d9ed6e1ca4d4eff;hpb=deed826b2d6c39ba2ed410108cdf54d64cded321;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_IPolyline.h b/src/HYDROData/HYDROData_IPolyline.h index 9155f693..0d3d7442 100644 --- a/src/HYDROData/HYDROData_IPolyline.h +++ b/src/HYDROData/HYDROData_IPolyline.h @@ -8,8 +8,12 @@ DEFINE_STANDARD_HANDLE(HYDROData_IPolyline, HYDROData_Entity) class gp_XY; -class TopoDS_Wire; +class TopoDS_Shape; class Handle(TDataStd_RealList); +class Handle(TDataStd_ExtStringList); +class Handle(TDataStd_BooleanList); +class Handle(TDataStd_IntegerList); + /**\class HYDROData_IPolyline * \brief Base class that stores/retreives information about the 2D points. @@ -18,6 +22,8 @@ class HYDROData_IPolyline : public HYDROData_Entity { public: + enum SectionType{ SECTION_POLYLINE = 0, SECTION_SPLINE = 1 }; + typedef gp_XY Point; typedef NCollection_Sequence PointsList; @@ -29,6 +35,8 @@ protected: { DataTag_First = HYDROData_Entity::DataTag_First + 100, ///< first tag, to reserve DataTag_Points, + DataTag_Sections, + DataTag_PolylineShape, }; public: @@ -37,7 +45,7 @@ public: /** * Returns the 3D presentation of all points. */ - HYDRODATA_EXPORT virtual TopoDS_Wire GetWire() const = 0; + HYDRODATA_EXPORT virtual TopoDS_Shape GetShape() = 0; /** @@ -47,9 +55,41 @@ public: /** * Adds new one section. - * \param theIsClosed flag indicates type of polyline + * \param theSectName name of the section + * \param theSectionType type of section + * \param theIsClosed flag indicates closures of section + */ + HYDRODATA_EXPORT virtual void AddSection( const TCollection_AsciiString& theSectName, + const SectionType theSectionType, + const bool theIsClosed ) = 0; + + /** + * Returns name of section with given index. + * \param theSectionIndex index of section + */ + HYDRODATA_EXPORT virtual TCollection_AsciiString GetSectionName( const int theSectionIndex ) const = 0; + + /** + * Set name for section with given index. + * \param theSectionIndex index of section + * \param theSectionName new section name + */ + HYDRODATA_EXPORT virtual void SetSectionName( const int theSectionIndex, + const TCollection_AsciiString& theSectionName ) = 0; + + /** + * Returns type of section with given index. + * \param theSectionIndex index of section */ - HYDRODATA_EXPORT virtual void AddSection( const bool theIsClosed ) = 0; + HYDRODATA_EXPORT virtual SectionType GetSectionType( const int theSectionIndex ) const = 0; + + /** + * Set type for section with given index. + * \param theSectionIndex index of section + * \param theSectionType new section type + */ + HYDRODATA_EXPORT virtual void SetSectionType( const int theSectionIndex, + const SectionType theSectionType ) = 0; /** * Returns true if section with given index is closed. @@ -57,6 +97,14 @@ public: */ HYDRODATA_EXPORT virtual bool IsClosedSection( const int theSectionIndex ) const = 0; + /** + * Set closed flag for section with given index. + * \param theSectionIndex index of section + * \param theIsClosed new closures state + */ + HYDRODATA_EXPORT virtual void SetSectionClosed( const int theSectionIndex, + const bool theIsClosed ) = 0; + /** * Removes section with given index. * \param theSectionIndex index of section @@ -88,12 +136,12 @@ public: /** * Replaces point for section with index "theSectionIndex". * \param theSectionIndex index of section - * \param thePointIndex index of point to replace * \param thePoint new point + * \param thePointIndex index of point to replace */ HYDRODATA_EXPORT virtual void SetPoint( const int theSectionIndex, - const int thePointIndex, - const Point& thePoint ) = 0; + const Point& thePoint, + const int thePointIndex ) = 0; /** * Removes point from section with index "theSectionIndex". @@ -114,12 +162,26 @@ public: protected: + TopoDS_Shape getPolylineShape() const; + + void setPolylineShape( const TopoDS_Shape& theShape ); + + void removePolylineShape(); + + + void getSectionsLists( Handle(TDataStd_ExtStringList)& theNamesList, + Handle(TDataStd_IntegerList)& theTypesList, + Handle(TDataStd_BooleanList)& theClosuresList, + const bool theIsCreate = true ) const; + + void removeSectionsLists(); + void getPointsLists( const int theSectionIndex, Handle(TDataStd_RealList)& theListX, Handle(TDataStd_RealList)& theListY, const bool theIsCreate = true ) const; - void removePointsLists( const int theSectionIndex ) const; + void removePointsLists( const int theSectionIndex = -1 ) const; protected: @@ -127,12 +189,12 @@ protected: * Creates new object in the internal data structure. Use higher level objects * to create objects with real content. */ - HYDROData_IPolyline(); + HYDRODATA_EXPORT HYDROData_IPolyline(); /** * Destructs properties of the object and object itself, removes it from the document. */ - ~HYDROData_IPolyline(); + HYDRODATA_EXPORT ~HYDROData_IPolyline(); }; #endif