Salome HOME
Bug #183: regression: polyline - unnecessary table in Additition mode.
[modules/hydro.git] / src / HYDROCurveCreator / CurveCreator_Curve.hxx
index 0981118855dd49a6dc4d328b599dba49ac38e137..24a216cf6d0a4f2f06aada35384b9ca330dc3b9f 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;
+class AIS_Shape;
+class Handle_AIS_InteractiveObject;
 
 /**
  *  The CurveCreator_Curve object is represented as one or more sets of
@@ -94,8 +91,6 @@ public:
    */
   virtual int toICoord(const int theIPnt) const;
 
-  ListAISObjects constructSection( int theISection ) const;
-
   //! For internal use only! Undo/Redo are not used here.
   virtual bool moveSectionInternal(const int theISection,
                            const int theNewIndex);
@@ -111,8 +106,6 @@ 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();
@@ -268,13 +261,15 @@ public:
   /***********************************************/
   /***       Presentation methods              ***/
   /***********************************************/
-  virtual ListAISObjects constructWire() const;
+  /**
+   *  Get the curve AIS object
+   */
+  virtual Handle_AIS_InteractiveObject getAISObject( const bool theNeedToBuild = false ) const;
 
-public: // TODO: remove
-  void getPoint( const int theSectionId, const int thePointId, gp_Pnt& thePoint ) const;
+protected:
+  virtual void constructAISObject();
 
 public:
-  Handle(CurveCreator_AISCurve)   myAISCurve;
   bool                            myIsLocked;
   CurveCreator::Sections          mySections;   //!< curve data
   CurveCreator::Dimension         myDimension;  //!< curve dimension
@@ -288,6 +283,7 @@ private:
   ListDiff                        myListDiffs;
   int                             myUndoDepth;
   int                             myOpLevel;
+  AIS_Shape*                      myAISShape;   //!< AIS shape
 };
 
 #endif