13#ifndef SO_MOUSE_GRABBER_H
14#define SO_MOUSE_GRABBER_H
20#include <Inventor/fields/SoSFBool.h>
21#include <Inventor/fields/SoSFFloat.h>
22#include <Inventor/fields/SoSFTrigger.h>
23#include <Inventor/nodes/SoSeparator.h>
24#include <Inventor/nodes/SoSubNode.h>
25#include <Inventor/events/SoMouseButtonEvent.h>
26#include <Inventor/sensors/SoFieldSensor.h>
28#include <SoInteractionNode.h>
30class SoMouseGrabberPointingAction;
213 void trackMouse(SbVec2s pos, SbVec2f localPos,
const SbViewportRegion& vp,
bool initial);
216 void updatePointingAction(SoField*);
228 bool testState(
int state, SbBool flag);
239 SbBool _buttonState[3];
242 int _lastButtonPressed;
245 unsigned _prevWheelCode;
SoMouseGrabber is a general facility to grab mouse events and to map mouse movement to x/y values.
SoSFEnum alt
mask for shift alt, the alt key will not work in SoFullViewer derived classes because those viewers h...
SoSFBool normalized
if true x and y are set to [xmin,xmax] relative to the viewport
SoSFBool setEventHandled
Set events that depend on the button mask handled if they are indeed handled by this extension.
SoSFEnum ctrl
mask for shift ctrl
SoSFBool flipY
flip the mouse movement to y mapping
SoSFEnum button2
button mask for button2
void handleEvent(SoHandleEventAction *action) override
handle event is reimplemented to handle the mouse events (The events are not consumed,...
SoMouseGrabber()
Constructor.
static void initClass()
inventor type system
SoSFBool wheelOverflow
if it to true, the wheel value is wrapped around when reaching min/max values
SoSFFloat wheelMax
max value for wheel
SoSFBool useManagedInteraction
If this is on, use managed interaction actions to modify x/y values.
SoSFTrigger wheelDown
tells when the wheel was turned down
SoSFBool shiftPressed
Output Fields that are changed when the state changes.
SoSFFloat xmax
max value for the x field
void GLRender(SoGLRenderAction *) override
GLRender dummy implementation.
SoSFBool swapXY
flip the mouse movement to xy mapping (mouse x -> field y, mouse y -> field x)
SoSFTrigger button2DoubleClicked
void onChanged(SoField *field)
Called when field on changed.
SoSFBool cursorPresent
this is set to true if the cursor is inside the viewing area
SoSFTrigger wheelUp
tells when the wheel was turned up
SoSFTrigger button1DoubleClicked
SoSFTrigger button3DoubleClicked
SoSFFloat y
y value that is changed by mouse movements
SoSFTrigger released
emitted when the mask was valid and switches to invalid again
SoSFFloat ymax
max value for the y field
SoSFFloat wheelMin
min value for wheel
SoSFBool maskValid
gives the state of the mask, which calculated by the current mousebuttons and modifier key compared t...
SoSFFloat sensitivity
set the sensitivity of the mouse movement to x/y mapping, a value of 1 means that 400 pixel mouse mov...
SoSFFloat x
x value that is changed by mouse movements
SoSFBool flipX
flip the mouse movement to x mapping
SoSFEnum button3
button mask for button3
friend class SoMouseGrabberPointingAction
SoSFFloat xmin
min value for the x field
SoSFFloat wheelStep
step value that is added/subtracted onto wheel on wheel events
SoSFEnum cursorShape
shape of mouse cursor when this grabber is active
~SoMouseGrabber() override
SoSFFloat ymin
min value for the y field
SoSFBool setWheelEventHandled
Set wheel events handled.
bool affectsState() const override
this node does not affect the state, so return false!
SoSFEnum shift
mask for shift key
SoSFEnum button1
button mask for button1
SoSFBool clamp
clamps the output to [min,max] in noramlized mode