X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_IPolyline.h;h=aa68ccb035b33b40b164babb747a5569b8b52035;hb=81c9f5cdf82909d0aebd2c491c50fa7516cc80b7;hp=9155f6930bb12d49058ac50e8d9ed6e1ca4d4eff;hpb=8749815cc2069167555bf5e823190727b7004a35;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_IPolyline.h b/src/HYDROData/HYDROData_IPolyline.h index 9155f693..aa68ccb0 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,15 +35,37 @@ protected: { DataTag_First = HYDROData_Entity::DataTag_First + 100, ///< first tag, to reserve DataTag_Points, + DataTag_Sections, + DataTag_PolylineShape, + DataTag_WireColor, }; public: DEFINE_STANDARD_RTTI(HYDROData_IPolyline); +public: + + /** + * Sets wire color for object. + */ + HYDRODATA_EXPORT virtual void SetWireColor( const QColor& theColor ); + + /** + * Returns wire color of object. + */ + HYDRODATA_EXPORT virtual QColor GetWireColor() const; + + /** + * Returns default wire color for new object. + */ + HYDRODATA_EXPORT static QColor DefaultWireColor(); + +public: + /** * Returns the 3D presentation of all points. */ - HYDRODATA_EXPORT virtual TopoDS_Wire GetWire() const = 0; + HYDRODATA_EXPORT virtual TopoDS_Shape GetShape() const = 0; /** @@ -47,9 +75,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 +117,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 +156,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 +182,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 +209,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