Salome HOME
Ref #250 - Fatal error after Join all selections operation
[modules/hydro.git] / src / HYDROCurveCreator / CurveCreator_Curve.hxx
index 3c41e711c760d2e8428d70f54395ba9bf45b69e0..209e6a7ca7354ff2b1d09089ca9d263bbcde3bc4 100644 (file)
@@ -140,11 +140,11 @@ public:
   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 );
+  virtual bool joinInternal( const std::list<int>& theSections );
+
+  //! 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<int>& theSections );
 
   //! Get number of sections
   virtual int getNbSections() const;
@@ -228,7 +228,8 @@ public:
                          const CurveCreator::Coordinates& theNewCoords );
 
   //! Set coordinates of specified points from different sections
-  virtual bool setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords);
+  virtual bool setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords,
+                                 const bool theIsToSaveDiff = true );
 
   //! For internal use only! Undo/Redo are not used here.
   virtual bool removePointsInternal( const SectionToPointList &thePoints );
@@ -254,6 +255,21 @@ public:
    */
   virtual int getNbPoints( const int theISection ) const;
 
+   /**
+   * Set skip sorting flag. If the flag is true - points sorting will be skipped.
+   */
+  virtual void setSkipSorting( const bool theIsToSkip );
+
+  /**
+   * Indicates whether the points can be sorted.
+   */
+  virtual bool canPointsBeSorted();
+
+  /**
+   * Saves points coordinates difference.
+   * \param theOldCoords the old points coordinates
+   */
+  virtual void saveCoordDiff( const SectionToPointCoordsList &theOldCoords );
 
   /***********************************************/
   /***       Presentation methods              ***/
@@ -283,6 +299,9 @@ protected:
 protected:
   virtual void constructAISObject();
 
+protected:
+  bool                            mySkipSorting;
+
 public:
   bool                            myIsLocked;
   CurveCreator::Sections          mySections;   //!< curve data