Class SoControllerButtonEvent
SoControllerButtonEvent
represents controller button press and release events in the Open Inventor event model. A controller device generally has associated 3D tracker information.
A "tracker" is any device whose position and orientation are dynamically tracked in 3D, typically for immersive VR applications. For example: a head tracker. A "controller" is an input device which typically has buttons and/or valuators (e.g. a joystick). Many controllers have an associated tracker. For example, the commonly used "wand" input device has three buttons, a two-axis joystick (two valuators), and an associated tracker.
The virtual method SoEvent.getTrackerInfo() can be used to determine if an event object has associated tracker information. Traditional 2D events like SoMouseButtonEvent
and SoLocation2Event
return NULL. 3D events like SoTrackerEvent
and SoControllerButtonEvent
return a their associated tracker information (SbTrackerInfo
).
Many controller devices generate a continuous stream of data, so strictly speaking there are no "events". However Open Inventor classes that recognize the SoControllerButtonEvent
interpret it as notification of a change in the button state (press or release). The application (or other software above Open Inventor) is responsible for deciding when to actually create an SoControllerButtonEvent
.
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class com.openinventor.inventor.events.SoButtonEvent
SoButtonEvent.States
Nested classes/interfaces inherited from class com.openinventor.inventor.Inventor
Inventor.ConstructorCommand
-
Field Summary
Fields inherited from class com.openinventor.inventor.Inventor
VERBOSE_LEVEL, ZeroHandle
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGet which button generated the event.Get orientation of associated tracker as a standard Open Inventor rotation (quaternion).Get position of associated tracker in world coordinates.getRay()
Get a ray for picking/intersecting.static boolean
isButtonPressEvent
(SoEvent e, SoControllerButtonEvent.Buttons whichButton) Convenience function to see if anSoEvent
is a press of the passed mouse button.static boolean
isButtonReleaseEvent
(SoEvent e, SoControllerButtonEvent.Buttons whichButton) Convenience function to see if anSoEvent
is a release of the passed mouse button.void
Set which button generated the event.void
setOrientation
(float x, float y, float z) Set orientation value of associated tracker from Euler angles in radians (using the trackd convention Z*X*Y).void
setOrientation
(SbRotation orientation) Set orientation value of associated tracker from anSbRotation
.void
setOrientation
(SbVec3f axis, float angle) Set orientation value of associated tracker from axis and angle in radians.void
Set position of associated tracker in world coordinates.Get theSbTrackerInfo
object.Methods inherited from class com.openinventor.inventor.events.SoButtonEvent
getState, setState
Methods inherited from class com.openinventor.inventor.events.SoEvent
getNormalizedPosition, getPosition, getPosition, getPositionFloat, getPositionFloat, getTime, setAltDown, setButton1Down, setCtrlDown, setPosition, setPosition, setShiftDown, setTime, wasAltDown, wasButton1Down, wasCtrlDown, wasShiftDown
Methods inherited from class com.openinventor.inventor.Inventor
dispose, getNativeResourceHandle
-
Constructor Details
-
SoControllerButtonEvent
public SoControllerButtonEvent()Constructor.
-
-
Method Details
-
setPosition3
Set position of associated tracker in world coordinates. -
getRay
Get a ray for picking/intersecting. This is a convenience function. -
trackerInfo
Get theSbTrackerInfo
object. -
isButtonPressEvent
Convenience function to see if anSoEvent
is a press of the passed mouse button. -
isButtonReleaseEvent
Convenience function to see if anSoEvent
is a release of the passed mouse button. -
setOrientation
public void setOrientation(float x, float y, float z) Set orientation value of associated tracker from Euler angles in radians (using the trackd convention Z*X*Y). -
setButton
Set which button generated the event. -
getPosition3
Get position of associated tracker in world coordinates. -
getButton
Get which button generated the event. -
setOrientation
Set orientation value of associated tracker from axis and angle in radians. -
getOrientation
Get orientation of associated tracker as a standard Open Inventor rotation (quaternion). -
setOrientation
Set orientation value of associated tracker from anSbRotation
.
-