public class SbTrackerInfo extends Inventor
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 pointer to their associated tracker information (SbTrackerInfo
).
In addition to the usual methods for setting an orientation, this class provides a method that takes three Euler angles specified in radians. This allows orientation information returned by the widely used trackd API to be stored directly into an Open Inventor event object.
Tracker info is most often used by Open Inventor classes to specify a direction for picking or intersection with a dragger. This class provides the getRay()
method to conveniently get an SbLine
defining the direction the tracker is pointing.
This class also provides a void * data member that could be used, for example, to distinguish different tracker devices or communicate any other information between an application and custom nodes in the scene graph. Open Inventor does not set or use this variable.
See also:
Inventor.ConstructorCommand
VERBOSE_LEVEL, ZeroHandle
Constructor and Description |
---|
SbTrackerInfo()
Constructor.
|
SbTrackerInfo(SbTrackerInfo copyFrom) |
Modifier and Type | Method and Description |
---|---|
SbRotation |
getOrientation()
Get orientation of tracker as a standard Open Inventor rotation (quaternion).
|
SbVec3f |
getPosition3()
Get position of tracker in world coordinates.
|
SbLine |
getRay()
Convenience function to get ray for picking/intersecting.
|
void |
setOrientation(float[] q)
Set orientation value from array of 4 floats defining the rotation quaternion.
|
void |
setOrientation(float xangle,
float yangle,
float zangle)
Set orientation value from Euler angles in radians (using the trackd convention Z*X*Y).
|
void |
setOrientation(float q0,
float q1,
float q2,
float q3)
Set orientation value from 4 floats defining the rotation quaternion.
|
void |
setOrientation(SbRotation orientation)
Set orientation value from an
SbRotation . |
void |
setOrientation(SbVec3f axis,
float angle)
Set orientation value from axis and angle in radians.
|
void |
setPosition3(SbVec3f p)
Set position of tracker in world coordinates.
|
void |
setValue(SbTrackerInfo copyFrom) |
static SbTrackerInfo[] |
toArray(long nativeArray,
long length) |
dispose, getAddress, getNativeResourceHandle, startInternalThreads, stopInternalThreads
public SbTrackerInfo(SbTrackerInfo copyFrom)
public SbTrackerInfo()
public void setOrientation(SbVec3f axis, float angle)
public static SbTrackerInfo[] toArray(long nativeArray, long length)
public void setValue(SbTrackerInfo copyFrom)
public void setOrientation(SbRotation orientation)
SbRotation
.public SbRotation getOrientation()
public void setOrientation(float[] q)
public void setOrientation(float q0, float q1, float q2, float q3)
public SbLine getRay()
public void setPosition3(SbVec3f p)
public void setOrientation(float xangle, float yangle, float zangle)
public SbVec3f getPosition3()
Generated on January 23, 2025, Copyright © Thermo Fisher Scientific. All rights reserved. http://www.openinventor.com