X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROCurveCreator%2FCurveCreator_ICurve.hxx;h=9effa478a0db3ef2ae5107ac27d1a389a7d7e8c6;hb=09d10e66ba0fac5353c8d1f138055fc6fe86fb65;hp=ed6b3c2e42270bdfafb57b330dd4e85b17dace9c;hpb=28b09f8fc96218c317aa67805bb3fc0e296aedbd;p=modules%2Fhydro.git diff --git a/src/HYDROCurveCreator/CurveCreator_ICurve.hxx b/src/HYDROCurveCreator/CurveCreator_ICurve.hxx index ed6b3c2e..9effa478 100644 --- a/src/HYDROCurveCreator/CurveCreator_ICurve.hxx +++ b/src/HYDROCurveCreator/CurveCreator_ICurve.hxx @@ -26,8 +26,10 @@ #include "CurveCreator_Macro.hxx" #include #include +#include +#include -#include +class Handle_AIS_InteractiveObject; namespace CurveCreator { @@ -57,8 +59,6 @@ namespace CurveCreator class CURVECREATOR_EXPORT CurveCreator_ICurve { public: - typedef std::vector ListAISObjects; - typedef std::pair SectionToPoint; typedef std::deque SectionToPointList; @@ -89,9 +89,9 @@ public: //! Clear the polyline (remove all sections) virtual bool clear() = 0; - //! Join range of sections to one section (join all sections if -1 is passed in one of arguments) - virtual bool join( const int theISectionTo = -1, - const int theISectionFrom = -1 ) = 0; + //! Join list of sections to one section (join all if the list is empty) + // The first section in the list is a leader, another sections are joined to it + virtual bool join( const std::list& theSections ) = 0; //! Get number of sections virtual int getNbSections() const = 0; @@ -153,7 +153,8 @@ public: const std::deque& theNewCoords ) = 0; //! Set coordinates of specified points from different sections - virtual bool setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords) = 0; + virtual bool setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords, + const bool theIsToSaveDiff = true ) = 0; //! Remove point with given id virtual bool removePoint( const int theISection, const int theIPnt = -1 ) = 0; @@ -175,13 +176,31 @@ public: */ virtual int getNbPoints( const int theISection ) const = 0; + /** + * Set skip sorting flag. If the flag is true - points sorting will be skipped. + */ + virtual void setSkipSorting( const bool ) = 0; + + /** + * Indicates whether the points can be sorted. + */ + virtual bool canPointsBeSorted() = 0; + + /** + * Saves points coordinates difference. + * \param theOldCoords the old points coordinates + */ + virtual void saveCoordDiff( const SectionToPointCoordsList &theOldCoords ) = 0; /***********************************************/ /*** Presentation methods ***/ /***********************************************/ - virtual ListAISObjects constructWire() = 0; - virtual Handle_AIS_InteractiveObject getAISObject() const = 0; + virtual Handle_AIS_InteractiveObject getAISObject( const bool theNeedToBuild = false ) const = 0; + +protected: + virtual void constructAISObject() = 0; + }; #endif