Salome HOME
OCC functionality moving out from the widget
[modules/hydro.git] / src / HYDROCurveCreator / CurveCreator_Widget.h
index ea41a275c1e7638faa8e87af9864b48a14eb28dd..43fdb492fbc398e53fbd5ac11f2e3f506006e0ea 100644 (file)
@@ -20,9 +20,9 @@
 #ifndef CURVECREATOR_WIDGET_H
 #define CURVECREATOR_WIDGET_H
 
-//#include "CurveCreator_ICurve.hxx"
-#include "CurveCreator.hxx"
 #include "CurveCreator_Macro.hxx"
+#include "CurveCreator.hxx"
+#include "CurveCreator_ICurve.hxx"
 
 #include <QWidget>
 #include <QMap>
@@ -43,7 +43,6 @@ class AIS_ListOfInteractive;
 class QAction;
 class QPixmap;
 class QTableWidget;
-class CurveCreator_ICurve;
 class CurveCreator_TreeView;
 class CurveCreator_NewPointDlg;
 class CurveCreator_NewSectionDlg;
@@ -58,13 +57,14 @@ public:
 
   // OCC viewer manipulation
   void setOCCViewer( OCCViewer_Viewer* theViewer );
-  OCCViewer_Viewer* getOCCViewer();
 
   Handle(AIS_InteractiveContext) getAISContext();
   OCCViewer_ViewPort3d* getViewPort();
   int changeInteractionStyle( int theStyle );
   void setObjectsSelected(const AIS_ListOfInteractive& theList);
 
+  void reset();
+
   //! Return unique section name
   std::string getUniqSectionName(CurveCreator_ICurve* theCurve) const;
 
@@ -114,6 +114,10 @@ protected slots:
   void     onMouseMove( SUIT_ViewWindow*, QMouseEvent* theEvent );
   void     onLastViewClosed( SUIT_ViewManager* theManager );
 
+  void     onMousePress( QMouseEvent* theEvent );
+  void     onMouseRelease( QMouseEvent* theEvent );
+  void     onMouseMove( QMouseEvent* theEvent );
+
   void     onCellChanged( int theRow, int theColumn );
 
 protected:
@@ -142,10 +146,9 @@ protected:
     DetectionMode
   };
 
-  typedef std::pair< int, int > SectionToPoint;
-  typedef std::deque< SectionToPoint > SectionToPointList;
-
 private:
+  OCCViewer_Viewer* getOCCViewer();
+
   QAction* createAction( ActionId theId, const QString& theName, const QPixmap& theImage,
                          const QString& theToolTip, const QKeySequence& theShortcut );
   QAction* getAction(ActionId theId);
@@ -164,33 +167,28 @@ private:
 
   void setDragStarted( const bool theState, const QPoint& thePoint = QPoint() );
 
-  void getSelectedPonts( SectionToPointList& thePoints );
-  void setSelectedPonts( const SectionToPointList& = SectionToPointList() );
+  void getSelectedPonts( CurveCreator_ICurve::SectionToPointList& thePoints );
+  void setSelectedPonts( const CurveCreator_ICurve::SectionToPointList& =
+                               CurveCreator_ICurve::SectionToPointList() );
 
-  void startCurveModification( SectionToPointList& thePoints,
+  void startCurveModification( CurveCreator_ICurve::SectionToPointList& thePoints,
                                const bool theFillPoints = true );
-  void finishCurveModification( const SectionToPointList& thePoints = SectionToPointList() );
+  void finishCurveModification( const CurveCreator_ICurve::SectionToPointList& thePoints = 
+                                      CurveCreator_ICurve::SectionToPointList() );
 
   // curve algorithm
   int  findLocalPointIndex( int theSectionId, float theX, float theY );
   void findSectionsToPoints( const double theX, const double theY,
-                             SectionToPointList& thePoints );
-  void convert( const SectionToPointList& thePoints,
+                             CurveCreator_ICurve::SectionToPointList& thePoints );
+  void convert( const CurveCreator_ICurve::SectionToPointList& thePoints,
                 QMap<int, QList<int> >& theConvPoints );
 
-  // OCC algorithm
-  bool pointOnObject( Handle(AIS_InteractiveObject) theObject,
-                      const int theX, const int theY,
-                      gp_Pnt& thePoint, gp_Pnt& thePoint1, gp_Pnt& thePoint2 );
-  bool hasProjectPointOnCurve( const int theX, const int theY,
-                               const Handle(Geom_Curve)& theCurve,
-                               Standard_Real& theParameter );
-
   // local point view table methods
   int getSectionId( const int theRowId ) const;
   int getPointId( const int theRowId ) const;
 
-  bool contains( const SectionToPointList& theList, const SectionToPoint& theValue ) const;
+  bool contains( const CurveCreator_ICurve::SectionToPointList& theList,
+                 const CurveCreator_ICurve::SectionToPoint& theValue ) const;
 
 private:
   QMap<ActionId, QAction*>    myActionMap;
@@ -204,7 +202,7 @@ private:
   bool                        myDragStarted;
   QPoint                      myDragStartPosition;
   int                         myDragInteractionStyle;
-  SectionToPointList          myDragPoints;
+  CurveCreator_ICurve::SectionToPointList myDragPoints;
   bool                        myDragged;
   QByteArray                  myGuiState;
 };