MeVisLab Toolbox Reference
CSOSelectAndMoveAction.h
Go to the documentation of this file.
1 /*************************************************************************************
2 **
3 ** Copyright 2012, MeVis Medical Solutions AG
4 **
5 ** The user may use this file in accordance with the license agreement provided with
6 ** the Software or, alternatively, in accordance with the terms contained in a
7 ** written agreement between the user and MeVis Medical Solutions AG.
8 **
9 ** For further information use the contact form at https://www.mevislab.de/contact
10 **
11 **************************************************************************************/
12 
13 
15 
16 #pragma once
17 
18 #include "CSOPointingAction.h"
19 
21 
23 
25 {
26 public:
27 
29 
30  bool isSensitiveAt(const SoPointerPosition& pos) override;
31 
32  void startPressAt(const SoPointerPosition& pos) override;
33  void dragMoveTo(const SoPointerPosition& pos) override;
34  SoPointingAction* endPress(int clickCount) override;
35 
36  bool wantsMouseOverUpdates() override { return true; }
37 
38  void releaseGrab(StopMode) override
39  {
40  if (_hitEditor)
41  {
42  _hitEditor->reset();
43  }
44  }
45 
46  int getCurrentCursor(SoViewerProxy* ) const override;
47 
51 
52  void setMode(int mode) override;
53  int getNumModes() const override;
54 
55 protected:
56 
58 
60  bool pointerHasMovedAtLeastByOnePixel(SbVec2f& pos) const;
61 
66  SoRef<SoCSOEditorExtension> _hitEditor;
67  float _hitDistance;
68 
71  SbVec3f _sliceNormal;
72 
74 
76 };
77 
int getCurrentCursor(SoViewerProxy *) const override
Returns the cursor ID to display for this action, as defined in SoViewerProxy.h - this gets (at least...
ml::CSOPathPoints * _hitPathPoints
void setInteractOnlyWithSelectedCSO(bool flag)
Sets this action to be active only for selected CSOs or for all CSOs.
void setMode(int mode) override
This gets called if the mode was changed and before startPressAt is called.
bool isAllowedToDrag(const SoPointerPosition &pos)
ml::CSOSeedPoint * _hitSeedPoint
int getNumModes() const override
Returns the number of different modes this action has - modes can be changed during drag and handle d...
void releaseGrab(StopMode) override
This will be called by the controller if you should release the grab established by endPress.
SoPointingAction * endPress(int clickCount) override
Ends the drag at last device position.
CSOSelectAndMoveAction(SoView2DCSOExtensibleEditor *editor)
SoRef< SoCSOEditorExtension > _hitEditor
void dragMoveTo(const SoPointerPosition &pos) override
Continues the drag to given device position.
bool wantsMouseOverUpdates() override
Override this to return true if this action should get location updates directly before rendering,...
bool pointerHasMovedAtLeastByOnePixel(SbVec2f &pos) const
bool isSensitiveAt(const SoPointerPosition &pos) override
Returns true if the gesture is startable at the given device position.
void startPressAt(const SoPointerPosition &pos) override
Starts a drag at given device position.
SoPointerPosition manages the current position of the mouse cursor.
SoPointingAction is the base class for any mouse based interaction.
StopMode
Argument type for releaseGrab()
This class gives access to state of a viewer during scene graph traversal.
Definition: SoViewerProxy.h:30
A CSOList comprises a number of CSOs and CSOGroups and is the central object for contour segmentation...
Definition: CSOList.h:61
The CSOPathPoints is a list of world coordinates which are interpolated by a certain interpolation sc...
Definition: CSOPathPoints.h:37
The CSOSeedPoint can be interactively set and modified and is the framework for contours.
Definition: CSOSeedPoint.h:35
The CSO represents a contour segmentation object.
Definition: CSO.h:44