Salome HOME
Fix JoinAll operation
[modules/hydro.git] / src / HYDROCurveCreator / CurveCreator_Curve.hxx
index f9e415884ca273883a370f966a5f7822b03eeea3..5747dd8bbc2dce64eb6006d3a7b565b098701345 100644 (file)
@@ -34,6 +34,7 @@
 #include <AIS_InteractiveObject.hxx>
 
 #include <list>
+#include <map>
 
 struct CurveCreator_Section;
 class CurveCreator_Displayer;
@@ -69,6 +70,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();
 
@@ -111,6 +115,9 @@ protected:
 
   void redisplayCurve();
 
+  void convert( const SectionToPointList &thePoints,
+                std::map<int, std::list<int> > &theConvPoints );
+
 public:
   /************   Implementation of INTERFACE methods   ************/
 
@@ -212,9 +219,7 @@ public:
   /***********************************************/
 
   //! For internal use only! Undo/Redo are not used here.
-  virtual bool addPointsInternal( const CurveCreator::Coordinates &theCoords,
-                                  const std::vector<int> &theISections,
-                                  const std::vector<int> &theIPnts );
+  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).
@@ -224,20 +229,23 @@ public:
                           const int theIPnt = -1 );
 
   //! For internal use only! Undo/Redo are not used here.
-  virtual bool setPointInternal( const int theISection,
-                                 const int theIPnt,
-                                 const CurveCreator::Coordinates& theNewCoords );
+  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 );
 
+  //! 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 std::vector<int> &theISections, 
-                                     const std::vector<int> &theIPnts );
+  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;