Salome HOME
OCC functionality moving out from the widget
[modules/hydro.git] / src / HYDROCurveCreator / CurveCreator_Curve.hxx
index cc6d97b21aa039ef7624d0e4adb86aa19daba7fe..0981118855dd49a6dc4d328b599dba49ac38e137 100644 (file)
 #include "CurveCreator_Macro.hxx"
 #include "CurveCreator.hxx"
 #include "CurveCreator_Diff.hxx"
+#include "CurveCreator_AISCurve.hxx"
 
 #include <AIS_Point.hxx>
 #include <AIS_Line.hxx>
 #include <AIS_InteractiveObject.hxx>
 
 #include <list>
+#include <map>
 
 struct CurveCreator_Section;
 class CurveCreator_Displayer;
@@ -108,12 +110,16 @@ protected:
    */
   virtual bool addEmptyDiff();
 
+public: // TODO: remove public
   Handle_AIS_Point getAISPoint( int theISection, int theIPoint ) const;
   Handle_AIS_Line  getAISLine( int theISection, int theIPoint1, int theIPoint2 ) const;
   void getCoordinates( int theISection, int theIPoint, double& theX, double& theY, double& theZ ) const;
-
+protected:  // TODO: remove public
   void redisplayCurve();
 
+  void convert( const SectionToPointList &thePoints,
+                std::map<int, std::list<int> > &theConvPoints );
+
 public:
   /************   Implementation of INTERFACE methods   ************/
 
@@ -215,9 +221,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).
@@ -227,9 +231,7 @@ 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,
@@ -239,8 +241,7 @@ public:
   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 );
 
@@ -269,8 +270,11 @@ public:
   /***********************************************/
   virtual ListAISObjects constructWire() const;
 
-public:
+public: // TODO: remove
+  void getPoint( const int theSectionId, const int thePointId, gp_Pnt& thePoint ) const;
 
+public:
+  Handle(CurveCreator_AISCurve)   myAISCurve;
   bool                            myIsLocked;
   CurveCreator::Sections          mySections;   //!< curve data
   CurveCreator::Dimension         myDimension;  //!< curve dimension