-// Copyright (C) 2013-2015 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
#include "CurveCreator.hxx"
#include "CurveCreator_ICurve.hxx"
-#include <QWidget>
-#include <QMap>
-
-#include <OCCViewer_ViewWindow.h>
#include <SUIT_ViewWindow.h>
+#include <OCCViewer_ViewWindow.h>
+
#include <AIS_InteractiveObject.hxx>
#include <AIS_InteractiveContext.hxx>
-
+#include <AIS_ListOfInteractive.hxx>
#include <Geom_Curve.hxx>
#include <V3d_View.hxx>
#include <gp_Pnt.hxx>
-#include <TopoDS_Vertex.hxx> // TODO - remove
+
+#include <QWidget>
+#include <QMap>
+
+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
{
NoFlags = 0x00000000,
DisableDetectionMode = 0x00000001,
DisableNewSection = 0x00000002,
- DisableClosedSection = 0x00000004
+ DisableClosedSection = 0x00000004,
+ DisableSetColor = 0x00000008
};
enum ActionMode {
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 );
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* );
public slots:
-
-protected slots:
void onAdditionMode(bool checked);
void onModificationMode(bool checked);
void onDetectionMode(bool checked);
void onJoin();
void onBringTogether();
void onRemove();
+ void onSetColor();
void onClearAll();
void onJoinAll();
void onSetSpline();
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,
+ SET_SECTIONS_POLYLINE_ID,
+ SET_SECTIONS_SPLINE_ID,
+ CLEAR_ALL_ID,
+ SEPARATOR_ID,
+ MODIFICATION_MODE_ID,
DETECTION_MODE_ID,
- BRING_TOGETHER_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();
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