X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROCurveCreator%2FCurveCreator_Curve.hxx;h=0baf0775c6081b12948f5cedc59bf28f9a7275d7;hb=ab0fa2ad7637d748339ba77b7ba151ef4f51fe9e;hp=f199805173a818d8ffb9fec50f0ac77654537467;hpb=254aba54a085eac64aa4ec13f1d46beac722a252;p=modules%2Fhydro.git diff --git a/src/HYDROCurveCreator/CurveCreator_Curve.hxx b/src/HYDROCurveCreator/CurveCreator_Curve.hxx index f1998051..0baf0775 100644 --- a/src/HYDROCurveCreator/CurveCreator_Curve.hxx +++ b/src/HYDROCurveCreator/CurveCreator_Curve.hxx @@ -28,12 +28,14 @@ #include "CurveCreator_Macro.hxx" #include "CurveCreator.hxx" #include "CurveCreator_Diff.hxx" +#include "CurveCreator_AISCurve.hxx" #include #include #include #include +#include struct CurveCreator_Section; class CurveCreator_Displayer; @@ -69,6 +71,9 @@ public: //! Set curve creator Displayer object virtual void setDisplayer( CurveCreator_Displayer* theDisplayer ); + //! Return curve creator Displayer object + CurveCreator_Displayer* getDisplayer(); + //! Remove curve creator Displayer object virtual void removeDisplayer(); @@ -91,6 +96,13 @@ public: ListAISObjects constructSection( int theISection ) const; + //! For internal use only! Undo/Redo are not used here. + virtual bool moveSectionInternal(const int theISection, + const int theNewIndex); + //! Move section to new position in list + virtual bool moveSection(const int theISection, + const int theNewIndex); + protected: /** This method updates all undo/redo information required to be updated * after curve modification operation. It returns false if undo/redo @@ -100,10 +112,14 @@ protected: Handle_AIS_Point getAISPoint( int theISection, int theIPoint ) const; Handle_AIS_Line getAISLine( int theISection, int theIPoint1, int theIPoint2 ) const; +public: // temporary void getCoordinates( int theISection, int theIPoint, double& theX, double& theY, double& theZ ) const; - +protected: // temporary void redisplayCurve(); + void convert( const SectionToPointList &thePoints, + std::map > &theConvPoints ); + public: /************ Implementation of INTERFACE methods ************/ @@ -128,9 +144,14 @@ public: /*** Section methods ***/ /***********************************************/ + //! For internal use only! Undo/Redo are not used here. + virtual bool clearInternal(); //! Clear the polyline (remove all sections) virtual bool clear(); + //! For internal use only! Undo/Redo are not used here. + virtual bool joinInternal( const int theISectionTo = -1, + const int theISectionFrom = -1 ); //! 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 ); @@ -138,7 +159,7 @@ public: //! Get number of sections virtual int getNbSections() const; - //! For internal use only! Undo/Redo is not used here. + //! For internal use only! Undo/Redo are not used here. virtual int addSectionInternal( const std::string &theName, const CurveCreator::SectionType theType, const bool theIsClosed, @@ -153,7 +174,7 @@ public: const bool theIsClosed, const CurveCreator::Coordinates &thePoints); - //! For internal use only! Undo/Redo is not used here. + //! For internal use only! Undo/Redo are not used here. virtual bool removeSectionInternal( const int theISection ); //! Removes the given sections. virtual bool removeSection( const int theISection ); @@ -161,6 +182,9 @@ public: //! Get "closed" flag of the specified section virtual bool isClosed( const int theISection ) const; + //! For internal use only! Undo/Redo are not used here. + virtual bool setClosedInternal( const int theISection, + const bool theIsClosed ); /** * Set "closed" flag of the specified section (all sections if * \a theISection is -1). @@ -171,6 +195,9 @@ public: //! Returns specifyed section name virtual std::string getSectionName( const int theISection ) const; + //! For internal use only! Undo/Redo are not used here. + virtual bool setSectionNameInternal( const int theISection, + const std::string& theName ); /** Set name of the specified section */ virtual bool setSectionName( const int theISection, const std::string& theName ); @@ -178,6 +205,9 @@ public: //! Get type of the specified section virtual CurveCreator::SectionType getSectionType( const int theISection ) const; + //! For internal use only! Undo/Redo are not used here. + virtual bool setSectionTypeInternal( const int theISection, + const CurveCreator::SectionType theType ); /** * Set type of the specified section (or all sections * if \a theISection is -1). @@ -190,10 +220,8 @@ public: /*** Point methods ***/ /***********************************************/ - //! For internal use only! Undo/Redo is not used here. - virtual bool addPointsInternal( const CurveCreator::Coordinates &theCoords, - const std::vector &theISections, - const std::vector &theIPnts ); + //! For internal use only! Undo/Redo are not used here. + virtual bool addPointsInternal( const CurveCreator::SectionsMap &theSectionsMap ); /** * Add one point to the specified section starting from the given theIPnt index * (or at the end of points if \a theIPnt is -1). @@ -202,17 +230,24 @@ public: const int theISection, const int theIPnt = -1 ); + //! For internal use only! Undo/Redo are not used here. + virtual bool setPointInternal( const CurveCreator::SectionsMap &theSectionsMap ); //! Set coordinates of specified point virtual bool setPoint( const int theISection, const int theIPnt, const CurveCreator::Coordinates& theNewCoords ); - //! For internal use only! Undo/Redo is not used here. - virtual bool removePointsInternal( const std::vector &theISections, - const std::vector &theIPnts ); + //! Set coordinates of specified points from different sections + virtual bool setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords); + + //! For internal use only! Undo/Redo are not used here. + virtual bool removePointsInternal( const SectionToPointList &thePoints ); /** Remove point with given id */ virtual bool removePoint( const int theISection, const int theIPnt = -1 ); + //! Remove several points from different sections with given ids + virtual bool removeSeveralPoints( const SectionToPointList &theSectionToPntIDs); + //! Get coordinates of specified point virtual CurveCreator::Coordinates getPoint( const int theISection, const int theIPnt ) const; @@ -236,7 +271,7 @@ public: virtual ListAISObjects constructWire() const; public: - + Handle(CurveCreator_AISCurve) myAISCurve; bool myIsLocked; CurveCreator::Sections mySections; //!< curve data CurveCreator::Dimension myDimension; //!< curve dimension