Salome HOME
patch for correct compilation on Linux
[modules/hydro.git] / src / HYDROCurveCreator / CurveCreator_ICurve.hxx
index 821343e3493f3be387f27b6e715d50309d9c48de..a535dc65a004086ba759689e4abedcb6a21b4583 100644 (file)
@@ -26,8 +26,9 @@
 #include "CurveCreator_Macro.hxx"
 #include <deque>
 #include <vector>
+#include <string>
 
-#include <AIS_InteractiveObject.hxx>
+class Handle_AIS_InteractiveObject;
 
 namespace CurveCreator
 {
@@ -57,8 +58,6 @@ namespace CurveCreator
 class CURVECREATOR_EXPORT CurveCreator_ICurve
 {
 public:
-  typedef std::vector<Handle_AIS_InteractiveObject> ListAISObjects;
-
   typedef std::pair<int,int> SectionToPoint;
   typedef std::deque<SectionToPoint> SectionToPointList;
 
@@ -153,7 +152,8 @@ public:
                          const std::deque<float>& 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,11 +175,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() const = 0;
+
+  virtual Handle_AIS_InteractiveObject getAISObject( const bool theNeedToBuild = false ) const = 0;
+
+protected:
+  virtual void constructAISObject() = 0;
+
 };
 
 #endif