|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectcom.jme.math.Quaternion
Quaternion defines a single example of a more general class of
hypercomplex numbers. Quaternions extends a rotation in three dimensions to a
rotation in four dimensions. This avoids "gimbal lock" and allows for smooth
continuous rotation.
Quaternion is defined by four floating point numbers: {x y z
w}.
| Field Summary | |
float |
w
|
float |
x
|
float |
y
|
float |
z
|
| Constructor Summary | |
Quaternion()
Constructor instantiates a new Quaternion object
initializing all values to zero, except w which is initialized to 1. |
|
Quaternion(float[] angles)
Constructor instantiates a new Quaternion object from a
collection of rotation angles. |
|
Quaternion(float x,
float y,
float z,
float w)
Constructor instantiates a new Quaternion object from the
given list of parameters. |
|
Quaternion(Quaternion q)
Constructor instantiates a new Quaternion object from an
existing quaternion, creating a copy. |
|
Quaternion(Quaternion q1,
Quaternion q2,
float interp)
Constructor instantiates a new Quaternion object from an
interpolation between two other quaternions. |
|
| Method Summary | |
Quaternion |
add(Quaternion q)
add adds the values of this quaternion to those of the
parameter quaternion. |
Quaternion |
addLocal(Quaternion q)
add adds the values of this quaternion to those of the
parameter quaternion. |
void |
apply(Matrix3f matrix)
apply multiplies this quaternion by a parameter matrix
internally. |
float |
dot(Quaternion q)
dot calculates and returns the dot product of this
quaternion with that of the parameter quaternion. |
boolean |
equals(java.lang.Object o)
equals determines if two quaternions are logically equal,
that is, if the values of (x, y, z, w) are the same for both quaternions. |
void |
fromAngleAxis(float angle,
Vector3f axis)
fromAngleAxis sets this quaternion to the values specified
by an angle and an axis of rotation. |
void |
fromAngleNormalAxis(float angle,
Vector3f axis)
fromAngleNormalAxis sets this quaternion to the values
specified by an angle and a normalized axis of rotation. |
void |
fromAngles(float[] angles)
fromAngles builds a quaternion from the Euler rotation
angles (x,y,z). |
void |
fromAxes(Vector3f[] axis)
fromAxes creates a Quaternion that
represents the coordinate system defined by three axes. |
void |
fromRotationMatrix(Matrix3f matrix)
fromRotationMatrix generates a quaternion from a supplied
matrix. |
Vector3f |
getRotationColumn(int i)
getRotationColumn returns one of three columns specified
by the parameter. |
Vector3f |
getRotationColumn(int i,
Vector3f store)
getRotationColumn returns one of three columns specified
by the parameter. |
int |
hashCode()
hashCode returns the hash code value as an integer and is
supported for the benefit of hashing based collection classes such as
Hashtable, HashMap, HashSet etc. |
Quaternion |
inverse()
inverse returns the inverse of this quaternion as a new
quaternion. |
Quaternion |
inverseLocal()
inverse calculates the inverse of this quaternion and
returns this quaternion after it is calculated. |
Quaternion |
mult(float scalar)
mult multiplies this quaternion by a parameter scalar. |
Quaternion |
mult(Quaternion q)
mult multiplies this quaternion by a parameter quaternion. |
Quaternion |
mult(Quaternion q,
Quaternion res)
mult multiplies this quaternion by a parameter quaternion. |
Vector3f |
mult(Vector3f v)
mult multiplies this quaternion by a parameter vector. |
Vector3f |
mult(Vector3f v,
Vector3f store)
mult multiplies this quaternion by a parameter vector. |
Quaternion |
multLocal(float scalar)
mult multiplies this quaternion by a parameter scalar. |
Quaternion |
multLocal(float qx,
float qy,
float qz,
float qw)
Multiplies this Quaternion by the supplied quaternion. |
Quaternion |
multLocal(Quaternion q)
Multiplies this Quaternion by the supplied quaternion. |
Vector3f |
multLocal(Vector3f v)
mult multiplies this quaternion by a parameter vector. |
void |
negate()
negate inverts the values of the quaternion. |
float |
norm()
norm returns the norm of this quaternion. |
void |
normalize()
normalize normalizes the current Quaternion |
void |
readExternal(java.io.ObjectInput in)
readExternal builds a quaternion from an
ObjectInput object. |
void |
set(float x,
float y,
float z,
float w)
sets the data in a Quaternion object from the given list
of parameters. |
void |
set(Quaternion q)
Sets the data in this Quaternion object to be equal to the
passed Quaternion object. |
void |
slerp(Quaternion q2,
float changeAmnt)
Sets the values of this quaternion to the slerp from itself to q2 by changeAmnt |
Quaternion |
slerp(Quaternion q1,
Quaternion q2,
float t)
slerp sets this quaternion's value as an interpolation
between two other quaternions. |
Quaternion |
subtract(Quaternion q)
subtract subtracts the values of the parameter quaternion
from those of this quaternion. |
float |
toAngleAxis(Vector3f axis)
toAngleAxis sets a given angle and axis to that
represented by the current quaternion. |
void |
toAxes(Vector3f[] axis)
toAxes builds an array of three vectors. |
Matrix3f |
toRotationMatrix()
toRotationMatrix converts this quaternion to a rotational
matrix. |
Matrix3f |
toRotationMatrix(Matrix3f result)
toRotationMatrix converts this quaternion to a rotational
matrix. |
Matrix4f |
toRotationMatrix(Matrix4f result)
toRotationMatrix converts this quaternion to a rotational
matrix. |
java.lang.String |
toString()
toString creates the string representation of this
Quaternion. |
void |
writeExternal(java.io.ObjectOutput out)
writeExternal writes this quaternion out to a
ObjectOutput object. |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
public float x
public float y
public float z
public float w
| Constructor Detail |
public Quaternion()
Quaternion object
initializing all values to zero, except w which is initialized to 1.
public Quaternion(float x,
float y,
float z,
float w)
Quaternion object from the
given list of parameters.
x - the x value of the quaternion.y - the y value of the quaternion.z - the z value of the quaternion.w - the w value of the quaternion.public Quaternion(float[] angles)
Quaternion object from a
collection of rotation angles.
angles - the angles of rotation (x, y, z) that will define the
Quaternion.
public Quaternion(Quaternion q1,
Quaternion q2,
float interp)
Quaternion object from an
interpolation between two other quaternions.
q1 - the first quaternion.q2 - the second quaternion.interp - the amount to interpolate between the two quaternions.public Quaternion(Quaternion q)
Quaternion object from an
existing quaternion, creating a copy.
q - the quaternion to copy.| Method Detail |
public void set(float x,
float y,
float z,
float w)
Quaternion object from the given list
of parameters.
x - the x value of the quaternion.y - the y value of the quaternion.z - the z value of the quaternion.w - the w value of the quaternion.public void set(Quaternion q)
Quaternion object to be equal to the
passed Quaternion object. The values are copied producing
a new object.
q - The Quaternion to copy values from.public void fromAngles(float[] angles)
fromAngles builds a quaternion from the Euler rotation
angles (x,y,z).
angles - the Euler angles of rotation.public void fromRotationMatrix(Matrix3f matrix)
fromRotationMatrix generates a quaternion from a supplied
matrix. This matrix is assumed to be a rotational matrix.
matrix - the matrix that defines the rotation.public Matrix3f toRotationMatrix()
toRotationMatrix converts this quaternion to a rotational
matrix.
public Matrix3f toRotationMatrix(Matrix3f result)
toRotationMatrix converts this quaternion to a rotational
matrix. The result is stored in result.
result - The Matrix3f to store the result in.
public Matrix4f toRotationMatrix(Matrix4f result)
toRotationMatrix converts this quaternion to a rotational
matrix. The result is stored in result. The outer col, row is 0, with 3,3 = 1
result - The Matrix4f to store the result in.
public Vector3f getRotationColumn(int i)
getRotationColumn returns one of three columns specified
by the parameter. This column is returned as a Vector3f
object.
i - the column to retrieve. Must be between 0 and 2.
public Vector3f getRotationColumn(int i,
Vector3f store)
getRotationColumn returns one of three columns specified
by the parameter. This column is returned as a Vector3f
object.
i - the column to retrieve. Must be between 0 and 2.store - the vector object to store the result in. if null, a new one
is created.
public void fromAngleAxis(float angle,
Vector3f axis)
fromAngleAxis sets this quaternion to the values specified
by an angle and an axis of rotation. This method creates an object, so
use fromAngleNormalAxis if your axis is already normalized.
angle - the angle to rotate (in radians).axis - the axis of rotation.
public void fromAngleNormalAxis(float angle,
Vector3f axis)
fromAngleNormalAxis sets this quaternion to the values
specified by an angle and a normalized axis of rotation.
angle - the angle to rotate (in radians).axis - the axis of rotation (already normalized).public float toAngleAxis(Vector3f axis)
toAngleAxis sets a given angle and axis to that
represented by the current quaternion. The values are stored as
following: The axis is provided as a parameter and built by the method,
the angle is returned as a float.
axis - the object to contain the axis.
public Quaternion slerp(Quaternion q1,
Quaternion q2,
float t)
slerp sets this quaternion's value as an interpolation
between two other quaternions.
q1 - the first quaternion.q2 - the second quaternion.t - the amount to interpolate between the two quaternions.
public void slerp(Quaternion q2,
float changeAmnt)
q2 - Final interpolation valuechangeAmnt - The amount diffrencepublic Quaternion add(Quaternion q)
add adds the values of this quaternion to those of the
parameter quaternion. The result is returned as a new quaternion.
q - the quaternion to add to this.
public Quaternion addLocal(Quaternion q)
add adds the values of this quaternion to those of the
parameter quaternion. The result is stored in this Quaternion..
q - the quaternion to add to this.
public Quaternion subtract(Quaternion q)
subtract subtracts the values of the parameter quaternion
from those of this quaternion. The result is returned as a new
quaternion.
q - the quaternion to subtract from this.
public Quaternion mult(Quaternion q)
mult multiplies this quaternion by a parameter quaternion.
The result is returned as a new quaternion. It should be noted that
quaternion multiplication is not cummulative so q * p != p * q.
q - the quaternion to multiply this quaternion by.
public Quaternion mult(Quaternion q,
Quaternion res)
mult multiplies this quaternion by a parameter quaternion.
The result is returned as a new quaternion. It should be noted that
quaternion multiplication is not cummulative so q * p != p * q.
It IS safe for q and res to be the same object.
q - the quaternion to multiply this quaternion by.res - the quaternion to store the result in.
public void apply(Matrix3f matrix)
apply multiplies this quaternion by a parameter matrix
internally.
matrix - the matrix to apply to this quaternion.public void fromAxes(Vector3f[] axis)
fromAxes creates a Quaternion that
represents the coordinate system defined by three axes. These axes are
assumed to be orthogonal and no error checking is applied. Thus, the user
must insure that the three axes being provided indeed represents a proper
right handed coordinate system.
axis - the array containing the three vectors representing the
coordinate system.public void toAxes(Vector3f[] axis)
toAxes builds an array of three vectors. Each vector
corresponds to an axis of the coordinate system defined by the quaternion
rotation.
axis - the array of vectors to be filled.public Vector3f mult(Vector3f v)
mult multiplies this quaternion by a parameter vector. The
result is returned as a new vector.
v - the vector to multiply this quaternion by.
public Vector3f multLocal(Vector3f v)
mult multiplies this quaternion by a parameter vector. The
result is stored in the supplied vector
v - the vector to multiply this quaternion by.
public Quaternion multLocal(Quaternion q)
q - The Quaternion to multiply this one by.
public Quaternion multLocal(float qx,
float qy,
float qz,
float qw)
qx - - quat x valueqy - - quat y valueqz - - quat z valueqw - - quat w value
public Vector3f mult(Vector3f v,
Vector3f store)
mult multiplies this quaternion by a parameter vector. The
result is returned as a new vector.
v - the vector to multiply this quaternion by.store - the vector to store the result in
public Quaternion mult(float scalar)
mult multiplies this quaternion by a parameter scalar. The
result is returned as a new quaternion.
scalar - the quaternion to multiply this quaternion by.
public Quaternion multLocal(float scalar)
mult multiplies this quaternion by a parameter scalar. The
result is stored locally.
scalar - the quaternion to multiply this quaternion by.
public float dot(Quaternion q)
dot calculates and returns the dot product of this
quaternion with that of the parameter quaternion.
q - the quaternion to calculate the dot product of.
public float norm()
norm returns the norm of this quaternion. This is the dot
product of this quaternion with itself.
public void normalize()
normalize normalizes the current Quaternion
public Quaternion inverse()
inverse returns the inverse of this quaternion as a new
quaternion. If this quaternion does not have an inverse (if its normal is
0 or less), then null is returned.
public Quaternion inverseLocal()
inverse calculates the inverse of this quaternion and
returns this quaternion after it is calculated. If this quaternion does
not have an inverse (if it's norma is 0 or less), nothing happens
public void negate()
negate inverts the values of the quaternion.
public java.lang.String toString()
toString creates the string representation of this
Quaternion. The values of the quaternion are displace (x,
y, z, w), in the following manner:
Object.toString()public boolean equals(java.lang.Object o)
equals determines if two quaternions are logically equal,
that is, if the values of (x, y, z, w) are the same for both quaternions.
o - the object to compare for equality
public int hashCode()
hashCode returns the hash code value as an integer and is
supported for the benefit of hashing based collection classes such as
Hashtable, HashMap, HashSet etc.
Object.hashCode()
public void readExternal(java.io.ObjectInput in)
throws java.io.IOException
readExternal builds a quaternion from an
ObjectInput object.
readExternal in interface java.io.Externalizablein - the ObjectInput value to read from.
java.io.IOException - if the ObjectInput value has problems reading a float.Externalizable
public void writeExternal(java.io.ObjectOutput out)
throws java.io.IOException
writeExternal writes this quaternion out to a
ObjectOutput object. NOTE: Used with serialization. Not to
be called manually.
writeExternal in interface java.io.Externalizableout - the object to write to.
java.io.IOException - if writing to the ObjectOutput fails.Externalizable
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||