Salome HOME
Using stl container instead of Qt.
[modules/hydro.git] / src / HYDROCurveCreator / CurveCreator_ICurve.hxx
index 4a9b4c3b659ddd25d6dbdfa6a8f020df995ed9f3..a36ebe92a8d4b34166d166a5bf01667d31d974e3 100644 (file)
@@ -25,6 +25,9 @@
 
 #include "CurveCreator_Macro.hxx"
 #include <deque>
+#include <vector>
+
+#include <AIS_InteractiveObject.hxx>
 
 namespace CurveCreator
 {
@@ -53,6 +56,14 @@ 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;
+
+  typedef std::deque<std::pair<SectionToPoint,std::deque<float>>> SectionToPointCoordsList;
+
 public:
   /***********************************************/
   /***          Undo/Redo methods              ***/
@@ -140,9 +151,14 @@ public:
   virtual bool setPoint( const int theISection,
                          const int theIPnt,
                          const std::deque<float>& theNewCoords ) = 0;
+  
+  //! Set coordinates of specified points from different sections
+  virtual bool setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords) = 0;
 
   //! Remove point with given id
   virtual bool removePoint( const int theISection, const int theIPnt = -1 ) = 0;
+  //! Remove several points from different sections
+  virtual bool removeSeveralPoints( const SectionToPointList &theSectionToPntIDs) = 0;
 
   //! Get coordinates of specified point
   virtual std::deque<float> getPoint( const int theISection, 
@@ -163,7 +179,7 @@ public:
   /***********************************************/
   /***       Presentation methods              ***/
   /***********************************************/
-//  virtual TopoDS_Wire constructWire() const = 0;
+  virtual ListAISObjects constructWire() const = 0;
 };
 
 #endif