The class provides mouse dragging operations with AIS_Plane: 1) Sliding plane by dragging it with point 2) Rotating plane around one or both of the rotation axes by dragging its point with "ctrl" key pressed.
#include <OCCViewer_ClipPlaneInteractor.h>
Public Types | |
enum | DragOperation { DragOperation_Undef, DragOperation_Slide, DragOperation_Rotate } |
typedef std::vector< Handle(AIS_Plane)> | SeqOfPlanes |
Signals | |
void | planeClicked (const Handle_AIS_Plane &thePlane) |
void | planeDragged (const Handle_AIS_Plane &thePlane) |
Public Member Functions | |
OCCViewer_ClipPlaneInteractor (OCCViewer_ViewManager *, QObject *theParent) | |
Constructor. More... | |
const SeqOfPlanes & | planes () const |
Get sequence of planes to interact with. More... | |
void | setPlanes (const SeqOfPlanes &) |
Sets sequence of planes allowed for interaction. More... | |
void | setRotationCenter (const gp_Pnt &) |
Sets center of rotation for the scene. More... | |
void | setMinMax (const Bnd_Box &) |
Sets minimum and maximum bounding of the scene. The sliding movements are limited to minimum and maximum bounds. More... | |
virtual void | setEnabled (const bool) |
Enables or disables event processing within the viewer. More... | |
Public Member Functions inherited from OCCViewer_ViewportInputFilter | |
OCCViewer_ViewportInputFilter (OCCViewer_ViewManager *, QObject *) | |
Constructor. More... | |
~OCCViewer_ViewportInputFilter () | |
Destructor. More... | |
Protected Member Functions | |
bool | isClickable (const Handle(AIS_Plane)&thePlane) |
Checks whether the interactive plane can be clicked. More... | |
bool | isDraggable (const Handle(AIS_Plane)&thePlane) |
Checks whether the interactive plane can be dragged. More... | |
bool | isPerforming () const |
Checks whether the interactive operation is in progress. More... | |
bool | startDragging (const QPoint &thePickPos, const QPoint &theDragPos, const DragOperation theOperation, const Handle(AIS_Plane)&thePlane, const Handle(V3d_View)&theView) |
Checks whether it is possible to start interaction with plane. More... | |
void | performDragging (const QPoint &theDragPos, const DragOperation theOperation, const Handle(AIS_Plane)&thePlane, const Handle(V3d_View)&theView) |
Performs dragging operation on the passed interactive plane. More... | |
void | adjustBounds (gp_Ax3 &, const Bnd_Box &) |
Adjusts min-max bounds of the plane. More... | |
virtual bool | mouseMove (QMouseEvent *, OCCViewer_ViewPort3d *) |
Handle mouse move events. Performs dragging if interaction is in progress. More... | |
virtual bool | mousePress (QMouseEvent *, OCCViewer_ViewPort3d *) |
Handle mouse press events. Starts interaction with detected plane. More... | |
virtual bool | mouseRelease (QMouseEvent *, OCCViewer_ViewPort3d *) |
Handle mouse release events. Stops interaction. More... | |
virtual bool | mouseDoubleClick (QMouseEvent *, OCCViewer_ViewPort3d *) |
Handle mouse double clicking events events. Stops the event propagation if interaction with plane is in progress. More... | |
virtual bool | keyPress (QKeyEvent *, OCCViewer_ViewPort3d *) |
Handle key pressing events. Stops the event propagation if interaction with plane is in progress. More... | |
virtual bool | keyRelease (QKeyEvent *, OCCViewer_ViewPort3d *) |
Handle key releasing events. Stops the event propagation if interaction with plane is in progress. More... | |
Handle (AIS_Plane) myInteractedPlane | |
Protected Member Functions inherited from OCCViewer_ViewportInputFilter | |
void | connectView (SUIT_ViewWindow *) |
Connects view to event processing. More... | |
void | disconnectView (SUIT_ViewWindow *) |
Disconnects view to event processing. More... | |
bool | eventFilter (QObject *, QEvent *) |
Base-level implementation of event filtering. Routes user input events to associated implementation methods. More... | |
Protected Attributes | |
gp_Ax3 | myPlaneReferenceCS |
gp_Ax1 | myRotationAxis |
gp_Pln | myMouseDragPln |
QPoint | myDragPos |
QPoint | myPickPos |
DragOperation | myPerformingOp |
gp_Pnt | myRotationCenter |
Bnd_Box | myMinMax |
SeqOfPlanes | myPlanes |
bool | myIsDraggable |
bool | myIsClickable |
Protected Attributes inherited from OCCViewer_ViewportInputFilter | |
OCCViewer_ViewManager * | myVM |
OCCViewer_Viewer * | myViewer |
bool | myIsEnabled |
Additional Inherited Members | |
Protected Slots inherited from OCCViewer_ViewportInputFilter | |
void | onViewCreated (SUIT_ViewWindow *) |
Connects newly created within viewer to event processing. More... | |
void | onViewRemoved (SUIT_ViewWindow *) |
Disconnects view being removed from viewer. More... | |
typedef std::vector<Handle(AIS_Plane)> OCCViewer_ClipPlaneInteractor::SeqOfPlanes |
OCCViewer_ClipPlaneInteractor::OCCViewer_ClipPlaneInteractor | ( | OCCViewer_ViewManager * | theVM, |
QObject * | theParent | ||
) |
theVM | [in] the view manager. |
theParent | [in] the parent object. |
|
protected |
thePlane | [in/out] the plane. |
theMinMax | [in] the min max bounds |
|
protected |
true
if the click interaction is supported for the plane. References Handle(), isFound(), myPlanes, and OCCViewer_ViewportInputFilter::myViewer.
true
if the dragging interaction is supported for the plane. References Handle(), isFound(), myPlanes, and OCCViewer_ViewportInputFilter::myViewer.
|
protected |
true
if the interaction is performed on IO object meaning that no other operations in viewer should be processed.
|
protectedvirtual |
theEvent | [in] the user event. |
theViewPort | [in] the viewport. |
Implements OCCViewer_ViewportInputFilter.
References DragOperation_Rotate, DragOperation_Slide, DragOperation_Undef, isDraggable(), isPerforming(), myIsDraggable, myPerformingOp, and myPickPos.
|
protectedvirtual |
theEvent | [in] the user event. |
theViewPort | [in] the viewport. |
Implements OCCViewer_ViewportInputFilter.
References DragOperation_Rotate, DragOperation_Slide, DragOperation_Undef, isDraggable(), isPerforming(), myIsDraggable, myPerformingOp, and myPickPos.
|
protectedvirtual |
theEvent | [in] the user event. |
theViewPort | [in] the viewport. |
Implements OCCViewer_ViewportInputFilter.
References isPerforming().
|
protectedvirtual |
theEvent | [in] the user event. |
theViewPort | [in] the viewport. |
Implements OCCViewer_ViewportInputFilter.
References DragOperation_Rotate, DragOperation_Slide, DragOperation_Undef, Handle(), isPerforming(), myDragPos, myIsDraggable, myPerformingOp, myPickPos, performDragging(), planeDragged(), and startDragging().
|
protectedvirtual |
theEvent | [in] the user event. |
theViewPort | [in] the viewport. |
Implements OCCViewer_ViewportInputFilter.
References Handle(), isClickable(), isDraggable(), myIsClickable, myIsDraggable, myPickPos, OCCViewer_ViewportInputFilter::myViewer, and planeClicked().
|
protectedvirtual |
theEvent | [in] the user event. |
theViewPort | [in] the viewport. |
Implements OCCViewer_ViewportInputFilter.
References DragOperation_Undef, isPerforming(), myDragPos, myIsClickable, myIsDraggable, myMouseDragPln, myPerformingOp, and myPickPos.
|
protected |
theDragPos | [in] the position of mouse dragging. |
theDragOp | [in] the drag operation to start. |
thePlane | [in] the operated plane. |
theView | [in] the view. |
References adjustBounds(), DragOperation_Rotate, DragOperation_Slide, Handle(), myMinMax, myMouseDragPln, myPlaneReferenceCS, myRotationAxis, myRotationCenter, and OCCViewer_ViewportInputFilter::myViewer.
|
signal |
|
signal |
const OCCViewer_ClipPlaneInteractor::SeqOfPlanes & OCCViewer_ClipPlaneInteractor::planes | ( | ) | const |
References myPlanes.
|
virtual |
Reimplemented from OCCViewer_ViewportInputFilter.
References DragOperation_Undef, myDragPos, myIsClickable, myIsDraggable, myMouseDragPln, myPerformingOp, myPickPos, and OCCViewer_ViewportInputFilter::setEnabled().
void OCCViewer_ClipPlaneInteractor::setMinMax | ( | const Bnd_Box & | theMinMax | ) |
theMinMax | [in] the minimum and maximum bounds. |
References myMinMax.
void OCCViewer_ClipPlaneInteractor::setPlanes | ( | const SeqOfPlanes & | thePlanes | ) |
thePlanes | [in] the sequence of accepted planes. |
References myPlanes.
void OCCViewer_ClipPlaneInteractor::setRotationCenter | ( | const gp_Pnt & | theCenter | ) |
theCenter | [in] the center of rotation. |
References myRotationCenter.
|
protected |
thePickPos | [in] the position of mouse picking. |
theDragPos | [in] the position of initial mouse dragging. |
theDragOp | [in] the drag operation to start. |
thePlane | [in] the detected plane. |
theView | [in] the view. |
References DragOperation_Rotate, DragOperation_Slide, Handle(), myMouseDragPln, myPlaneReferenceCS, myRotationAxis, and myRotationCenter.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |