X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FCurveCreator%2FCurveCreator_Widget.h;h=3819c62e4e26070f7c6bc996e3928e22fd16f22d;hb=656de216bcf00fb6ccdc660d63ee5479f92532b1;hp=e15e923095278f82b0756cbf83d4aef6ed9078f9;hpb=6e2763b42437045fd4b18aa3a6197865020de84b;p=modules%2Fgeom.git diff --git a/src/CurveCreator/CurveCreator_Widget.h b/src/CurveCreator/CurveCreator_Widget.h index e15e92309..3819c62e4 100644 --- a/src/CurveCreator/CurveCreator_Widget.h +++ b/src/CurveCreator/CurveCreator_Widget.h @@ -1,9 +1,9 @@ -// Copyright (C) 2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2013-2020 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -24,29 +24,28 @@ #include "CurveCreator.hxx" #include "CurveCreator_ICurve.hxx" -#include -#include - -#include #include +#include + #include #include - +#include #include #include #include -#include // TODO - remove + +#include +#include + +class CurveCreator_TableView; +class CurveCreator_TreeView; +class CurveCreator_NewSectionDlg; class OCCViewer_Viewer; class OCCViewer_ViewPort3d; -class AIS_ListOfInteractive; - class QAction; class QPixmap; -class CurveCreator_TableView; -class CurveCreator_TreeView; -class CurveCreator_NewSectionDlg; class CURVECREATOR_EXPORT CurveCreator_Widget : public QWidget { @@ -57,7 +56,8 @@ public: NoFlags = 0x00000000, DisableDetectionMode = 0x00000001, DisableNewSection = 0x00000002, - DisableClosedSection = 0x00000004 + DisableClosedSection = 0x00000004, + DisableSetColor = 0x00000008 }; enum ActionMode { @@ -72,8 +72,7 @@ public: CurveCreator_ICurve *theCurve, const int theActionFlags = NoFlags, const QStringList& theCoordTitles = QStringList(), - Qt::WindowFlags fl=0, - int theLocalPointRowLimit = 20); + Qt::WindowFlags fl=0); // OCC viewer manipulation void setOCCViewer( OCCViewer_Viewer* theViewer ); @@ -96,15 +95,18 @@ public: void SetViewer2DMode(const bool To2D); + void setSelectedPoints( const CurveCreator_ICurve::SectionToPointList& = + CurveCreator_ICurve::SectionToPointList() ); + + void updateLocalPointView(); + void setLocalPointContext( const bool theOpen, const bool isUpdateTable = false ); + signals: void selectionChanged(); void subOperationStarted( QWidget*, bool ); void subOperationFinished( QWidget* ); - void curveModified(); public slots: - -protected slots: void onAdditionMode(bool checked); void onModificationMode(bool checked); void onDetectionMode(bool checked); @@ -116,7 +118,9 @@ protected slots: void onModifySection(); void onCancelSection(); void onJoin(); + void onBringTogether(); void onRemove(); + void onSetColor(); void onClearAll(); void onJoinAll(); void onSetSpline(); @@ -144,31 +148,35 @@ protected: protected: enum ActionId{ NONE_ID, - UNDO_ID, - REDO_ID, - NEW_SECTION_ID, - ADDITION_MODE_ID, - REMOVE_ID, - REMOVE_ALL_ID, + UNDO_ID, + REDO_ID, + NEW_SECTION_ID, + ADDITION_MODE_ID, + REMOVE_ID, + REMOVE_ALL_ID, JOIN_ID, - JOIN_ALL_ID, - CLOSE_SECTIONS_ID, + JOIN_ALL_ID, + CLOSE_SECTIONS_ID, UNCLOSE_SECTIONS_ID, - SET_SECTIONS_POLYLINE_ID, - SET_SECTIONS_SPLINE_ID, - CLEAR_ALL_ID, - SEPARATOR_ID, - MODIFICATION_MODE_ID, - DETECTION_MODE_ID + SET_SECTIONS_POLYLINE_ID, + SET_SECTIONS_SPLINE_ID, + CLEAR_ALL_ID, + SEPARATOR_ID, + MODIFICATION_MODE_ID, + DETECTION_MODE_ID, + BRING_TOGETHER_ID, + SETCOLOR_ID }; +public: + QAction* getAction(ActionId theId); + QAction* getAction(ActionMode theMode); + private: OCCViewer_Viewer* getOCCViewer(); QAction* createAction( ActionId theId, const QString& theName, const QPixmap& theImage, const QString& theToolTip, const QKeySequence& theShortcut ); - QAction* getAction(ActionId theId); - QAction* getAction(ActionMode theMode); void updateActionsStates(); void updateUndoRedo(); @@ -179,24 +187,20 @@ private: void insertPointToSelectedSegment( const int theXPosition, const int theYPosition ); void moveSelectedPoints( const int theXPosition, const int theYPosition ); - void updateLocalPointView(); - void setLocalPointContext( const bool theOpen, const bool isUpdateTable = false ); void setDragStarted( const bool theState, const QPoint& thePoint = QPoint() ); void getSelectedPoints( CurveCreator_ICurve::SectionToPointList& thePoints ); - void setSelectedPoints( const CurveCreator_ICurve::SectionToPointList& = - CurveCreator_ICurve::SectionToPointList() ); void stopActionMode(); void startCurveModification( CurveCreator_ICurve::SectionToPointList& thePoints, const bool theFillPoints = true ); - void finishCurveModification( const CurveCreator_ICurve::SectionToPointList& thePoints = + void finishCurveModification( const CurveCreator_ICurve::SectionToPointList& thePoints = CurveCreator_ICurve::SectionToPointList() ); // curve algorithm - int findLocalPointIndex( int theSectionId, float theX, float theY ); + int findLocalPointIndex( int theSectionId, double theX, double theY ); void findSectionsToPoints( const double theX, const double theY, CurveCreator_ICurve::SectionToPointList& thePoints ); void convert( const CurveCreator_ICurve::SectionToPointList& thePoints, @@ -205,6 +209,11 @@ private: bool contains( const CurveCreator_ICurve::SectionToPointList& theList, const CurveCreator_ICurve::SectionToPoint& theValue ) const; +protected: + // Boundary points of mouse to select the points + QPoint myStartPoint; + QPoint myEndPoint; + private: QMap myActionMap; CurveCreator_ICurve* myCurve; @@ -223,8 +232,6 @@ private: QMap myInitialDragPointsCoords; bool myDragged; QByteArray myGuiState; - int myPressedX; - int myPressedY; OCCViewer_ViewWindow::Mode2dType myOld2DMode; };