AI-generated Key Takeaways
-
Orientationrepresents the 3D orientation of a VR controller using a quaternion. -
It provides methods to convert between quaternion, axis-angle, and rotation matrix representations.
-
You can access the orientation components (x, y, z, w) directly.
-
Utility methods are available to obtain forward vector and Euler angles from the orientation.
-
Orientationobjects can be created from quaternion components or axis-angle representations.
Represents the 3-dimensional orientation of a Controller as a unit Quaternion.
Fields
| public float | w | W component representing the real part of the quaternion. |
| public float | x | X component representing the i basis element. |
| public float | y | Y component representing the j basis element. |
| public float | z | Z component representing the k basis element. |
Public Constructors
|
Orientation(float x, float y, float z, float w)
Construct an Orientation with the provided values which represent a normalized quaternion.
|
Public Methods
| static Orientation |
fromAxisAngleDegrees(float x, float y, float z, float degrees)
Construct an Orientation from a normalized axis-angle representation.
|
| void |
set(float[] xyzw)
Set the Orientation to the given values which represent a normalized quaternion.
|
| void |
set(float x, float y, float z, float w)
Set the Orientation to the given values which represent a normalized quaternion.
|
| String |
toAxisAngleString()
Converts the orientation into an axis-angle representation.
|
| float[] |
toForwardVector(float[] xyz)
Returns the result of multiplying <0, 0, -1> by this orientation.
|
| float[] |
toRotationMatrix(float[] output)
Converts this Orientation to a 4x4 matrix.
|
| String |
toString()
Converts the orientation into a printable string.
|
| float[] |
toYawPitchRollDegrees(float[] angles)
|
| float[] |
toYawPitchRollRadians(float[] angles)
Convert this orientation to a trio of Euler angles.
|
Inherited Methods
Fields
public float w
W component representing the real part of the quaternion.
public float x
X component representing the i basis element.
public float y
Y component representing the j basis element.
public float z
Z component representing the k basis element.
Public Constructors
public Orientation ()
public Orientation (float x, float y, float z, float w)
Construct an Orientation with the provided values which represent a normalized quaternion.
Parameters
| x | |
|---|---|
| y | |
| z | |
| w |
Public Methods
public static Orientation fromAxisAngleDegrees (float x, float y, float z, float degrees)
Construct an Orientation from a normalized axis-angle representation.
Parameters
| x | |
|---|---|
| y | |
| z | |
| degrees |
public void set (float[] xyzw)
Set the Orientation to the given values which represent a normalized quaternion.
Parameters
| xyzw |
|---|
public void set (float x, float y, float z, float w)
Set the Orientation to the given values which represent a normalized quaternion.
Parameters
| x | |
|---|---|
| y | |
| z | |
| w |
public String toAxisAngleString ()
Converts the orientation into an axis-angle representation.
The normalized Euler axis is given first and the clockwise rotation is represented in degrees.
Returns
- Formatted representation of the orientation. E.g, "( 0.56, 5.58, 0.59) 51"
public float[] toForwardVector (float[] xyz)
Returns the result of multiplying <0, 0, -1> by this orientation. This represents the pitch and yaw of the controller.
Parameters
| xyz | 3-element array to hold the output vector. |
|---|
Returns
- xyz
public float[] toRotationMatrix (float[] output)
Converts this Orientation to a 4x4 matrix.
The output is column-major which matches OpenGL and Android convention.
Parameters
| output | An array of size 16. |
|---|
Returns
- output with elements as a column-major matrix.
public String toString ()
Converts the orientation into a printable string. The order of elements is "x, y, z, w" and the x, y, and z elements are labeled with i, j, and k basis elements, respectively.
Returns
- Formatted representation of the orientation. E.g, " 0.24i 0.24j 0.26k 0.82"
public float[] toYawPitchRollDegrees (float[] angles)
Parameters
| angles |
|---|
public float[] toYawPitchRollRadians (float[] angles)
Convert this orientation to a trio of Euler angles. The Orientation will be decomposed into angles such that multiplying yaw * pitch * roll will recreate this orientation. Note that there are 6 possible Euler decompositions and this y-x-z decomposition is different from the x-y-z decomposition used by some other systems.
Parameters
| angles | array to hold the 3 Euler angles in radians. Yaw & roll have a range of (-pi, pi) and pitch has a range of (-pi / 2, pi / 2). |
|---|
Returns
- the angles parameter.