Salome HOME
Avoid of Fit all for 2d mode change
[modules/hydro.git] / src / HYDROCurveCreator / CurveCreator_Curve.hxx
index abefa0d5d729a6af305c5fe4441bd4d6e5f4830c..3c41e711c760d2e8428d70f54395ba9bf45b69e0 100644 (file)
 #include "CurveCreator.hxx"
 #include "CurveCreator_Diff.hxx"
 
-#include <AIS_InteractiveObject.hxx>
-
 #include <list>
 #include <map>
 
 struct CurveCreator_Section;
 class CurveCreator_Displayer;
+class AIS_Shape;
+class Handle_AIS_InteractiveObject;
 
 /**
  *  The CurveCreator_Curve object is represented as one or more sets of
@@ -110,9 +110,6 @@ public: // TODO: remove public
 protected:  // TODO: remove public
   void redisplayCurve();
 
-  void convert( const SectionToPointList &thePoints,
-                std::map<int, std::list<int> > &theConvPoints );
-
 public:
   /************   Implementation of INTERFACE methods   ************/
 
@@ -261,7 +258,30 @@ public:
   /***********************************************/
   /***       Presentation methods              ***/
   /***********************************************/
-  virtual ListAISObjects constructWire() const;
+  /**
+   *  Get the curve AIS object
+   */
+  virtual Handle_AIS_InteractiveObject getAISObject( const bool theNeedToBuild = false ) const;
+
+protected:
+  /**
+   *  Removes the points from the section. It sortes the points and remove them
+   * in the decreasing order
+   * \param theSectionId a section index
+   * \param thePointIds a list of section points
+   */
+  bool removeSectionPoints( const int theSectionId,
+                            const std::list<int>& thePointIds );
+  /**
+   * Converts the list of pairs of section to point into map of a section to list of points
+   * \param thePoints an source list
+   * \param theConvPoints a converted map
+   */
+  void convert( const SectionToPointList &thePoints,
+                std::map<int, std::list<int> > &theConvPoints );
+
+protected:
+  virtual void constructAISObject();
 
 public:
   bool                            myIsLocked;
@@ -277,6 +297,7 @@ private:
   ListDiff                        myListDiffs;
   int                             myUndoDepth;
   int                             myOpLevel;
+  AIS_Shape*                      myAISShape;   //!< AIS shape
 };
 
 #endif