3D tracker event. More...
#include <Inventor/events/SoTrackerEvent.h>
Public Member Functions | |
virtual SoType | getTypeId () const |
SoTrackerEvent () | |
void | setPosition3 (const SbVec3f &p) |
const SbVec3f & | getPosition3 () const |
void | setOrientation (float x, float y, float z) |
void | setOrientation (SbRotation orientation) |
void | setOrientation (const SbVec3f &axis, float angle) |
const SbRotation & | getOrientation () const |
const SbLine | getRay () const |
virtual const SbTrackerInfo * | getTrackerInfo () const |
virtual const SbTrackerInfo & | trackerInfo () const |
Static Public Member Functions | |
static SoType | getClassTypeId () |
SoTrackerEvent represents 3D position and orientation events in the Open Inventor event model.
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 their associated tracker information (SbTrackerInfo).
Many tracker devices generate a continuous stream of position and orientation reports, so strictly speaking there are no "events." Generally Open Inventor classes that recognize the SoTrackerEvent interpret it as notification of a "significant" change in the tracker position and/or orientation. Processing of SoTrackerEvents may be relatively expensive. For example, a pick operation will usually be done automatically. The application (or other software above Open Inventor) is responsible for deciding when to actually create an SoTrackerEvent.
SoControllerButtonEvent, SoEvent, SbTrackerInfo
SoTrackerEvent::SoTrackerEvent | ( | ) |
Constructor.
static SoType SoTrackerEvent::getClassTypeId | ( | ) | [static] |
Returns the type identifier for this class.
Reimplemented from SoEvent.
const SbRotation& SoTrackerEvent::getOrientation | ( | ) | const [inline] |
Get orientation of associated tracker as a standard Open Inventor rotation (quaternion).
const SbVec3f& SoTrackerEvent::getPosition3 | ( | ) | const [inline] |
Get position of associated tracker in world coordinates.
const SbLine SoTrackerEvent::getRay | ( | ) | const [inline] |
Get a ray for picking/intersecting.
This is a convenience function.
virtual const SbTrackerInfo* SoTrackerEvent::getTrackerInfo | ( | ) | const [inline, virtual] |
Returns the SbTrackerInfo object.
Can be used as a quick check if an event has tracker info associated with it.
Reimplemented from SoEvent.
virtual SoType SoTrackerEvent::getTypeId | ( | ) | const [virtual] |
Returns the type identifier for this specific instance.
Reimplemented from SoEvent.
void SoTrackerEvent::setOrientation | ( | const SbVec3f & | axis, | |
float | angle | |||
) | [inline] |
Set orientation value of associated tracker from axis and angle in radians.
void SoTrackerEvent::setOrientation | ( | SbRotation | orientation | ) | [inline] |
Set orientation value of associated tracker from an SbRotation.
void SoTrackerEvent::setOrientation | ( | float | x, | |
float | y, | |||
float | z | |||
) | [inline] |
Set orientation value of associated tracker from Euler angles in radians (using the trackd convention Z*X*Y).
void SoTrackerEvent::setPosition3 | ( | const SbVec3f & | p | ) | [inline] |
Set position of associated tracker in world coordinates.
virtual const SbTrackerInfo& SoTrackerEvent::trackerInfo | ( | ) | const [inline, virtual] |
Returns the SbTrackerInfo object.