X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROCurveCreator%2FCurveCreator_Widget.h;h=225e864d49a06aac4b0ff31b7f95b1492c5eb3f7;hb=a8213a40ae36460055057f09e3e0828a01e27123;hp=f17cf3d17f567238a4f2f6fd6798965141e3740e;hpb=bc9854f27f880752e0e10ff3e8ac23f391b011eb;p=modules%2Fhydro.git diff --git a/src/HYDROCurveCreator/CurveCreator_Widget.h b/src/HYDROCurveCreator/CurveCreator_Widget.h index f17cf3d1..225e864d 100644 --- a/src/HYDROCurveCreator/CurveCreator_Widget.h +++ b/src/HYDROCurveCreator/CurveCreator_Widget.h @@ -65,6 +65,9 @@ public: QList getSelectedSections(); QList< QPair< int, int > > getSelectedPoints(); + void removeSelected(); + bool removeEnabled(); + signals: void selectionChanged(); void subOperationStarted( QWidget* ); @@ -102,7 +105,7 @@ protected slots: void onMouseRelease( SUIT_ViewWindow*, QMouseEvent* theEvent ); void onMouseMove( SUIT_ViewWindow*, QMouseEvent* theEvent ); - void onLocalPointChanged( int theRow, int theColumn ); + void onCellChanged( int theRow, int theColumn ); protected: enum ActionId{ UNDO_ID, @@ -130,6 +133,9 @@ protected: DetectionMode }; + typedef std::pair< int, int > SectionToPoint; + typedef std::deque< SectionToPoint > SectionToPointList; + private: QAction* createAction( ActionId theId, const QString& theName, const QPixmap& theImage, const QString& theToolTip, const QKeySequence& theShortcut ); @@ -149,24 +155,34 @@ private: void setDragStarted( const bool theState, const QPoint& thePoint = QPoint() ); - void getSelectedPonts( const int theSectionId, QList& thePoints ); - void setSelectedPonts( const int theSectionId, const QList& thePoints = QList() ); + void getSelectedPonts( SectionToPointList& thePoints ); + void setSelectedPonts( const SectionToPointList& = SectionToPointList() ); - void startCurveModification( QList& thePoints, const bool theFillPoints = true ); - void finishCurveModification( const QList& thePoints ); + void startCurveModification( SectionToPointList& thePoints, + const bool theFillPoints = true ); + void finishCurveModification( const SectionToPointList& thePoints = SectionToPointList() ); // curve algorithm int findLocalPointIndex( int theSectionId, float theX, float theY ); - void findSections( int thePointId, QList& theSections ); + void findSectionsToPoints( const double theX, const double theY, + SectionToPointList& thePoints ); + void convert( const SectionToPointList& thePoints, + QMap >& theConvPoints ); // OCC algorithm bool pointOnObject( Handle(AIS_InteractiveObject) theObject, const int theX, const int theY, - gp_Pnt& thePoint, int& thePoint1, int& thePoint2 ); + 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; + private: QMap myActionMap; CurveCreator_ICurve* myCurve; @@ -179,7 +195,7 @@ private: bool myDragStarted; QPoint myDragStartPosition; int myDragInteractionStyle; - QList myDragPoints; + SectionToPointList myDragPoints; bool myDragged; QByteArray myGuiState; };