public class Quaternion extends Object
Constructor and Description |
---|
Quaternion() |
Quaternion(float[] vector,
float angle)
Constructor to create a rotation based quaternion from axis vector and angle
|
Quaternion(float[] vector1,
float[] vector2)
Constructor to create a rotation based quaternion from two vectors
|
Quaternion(float x,
float y,
float z,
float w) |
Quaternion(Quaternion q) |
Modifier and Type | Method and Description |
---|---|
void |
add(Quaternion q)
Add a quaternion
|
void |
divide(float n)
Divide a quaternion by a constant
|
void |
fromAxis(float[] vector,
float angle)
Initialize this quaternion with given axis vector and rotation angle
|
float |
getW() |
float |
getX() |
float |
getY() |
float |
getZ() |
void |
inverse()
Invert the quaternion If rotational, will produce a the inverse rotation
|
boolean |
isIdentity()
Check if this quaternion represents an identity matrix for rotation,
, ie (0,0,0,1).
|
boolean |
isRotationMatrix(float[] m)
Check if the the 3x3 matrix (param) is in fact an affine rotational
matrix
|
void |
mult(float n)
Multiply a quaternion by a constant
|
float[] |
mult(float[] vector)
Rotate given vector by this quaternion
|
void |
mult(Quaternion q)
Multiply this quaternion by the param quaternion
|
void |
normalize()
Normalize a quaternion required if to be used as a rotational quaternion
|
void |
setFromMatrix(float[] m)
compute the quaternion from a 3x3 column matrix
|
void |
setIdentity()
Set this quaternion to identity (x=0,y=0,z=0,w=1)
|
void |
setW(float w) |
void |
setX(float x) |
void |
setY(float y) |
void |
setZ(float z) |
void |
slerp(Quaternion a,
Quaternion b,
float t)
Set this quaternion from a Sphereical interpolation of two param
quaternion, used mostly for rotational animation.
|
void |
subtract(Quaternion q)
Subtract a quaternion
|
float[] |
toAxis()
Transform the rotational quaternion to axis based rotation angles
|
float[] |
toMatrix()
Transform this quaternion to a 4x4 column matrix representing the
rotation
|
public Quaternion()
public Quaternion(Quaternion q)
public Quaternion(float x, float y, float z, float w)
public Quaternion(float[] vector1, float[] vector2)
vector1
- vector2
- public Quaternion(float[] vector, float angle)
vector
- axis vectorangle
- rotation angle (rads)fromAxis(float[], float)
public void fromAxis(float[] vector, float angle)
vector
- axis vectorangle
- rotation angle (rads)public float[] toAxis()
public float getW()
public void setW(float w)
public float getX()
public void setX(float x)
public float getY()
public void setY(float y)
public float getZ()
public void setZ(float z)
public void add(Quaternion q)
q
- quaternionpublic void subtract(Quaternion q)
q
- quaternionpublic void divide(float n)
n
- a float to divide bypublic void mult(Quaternion q)
q
- a quaternion to multiply withpublic void mult(float n)
n
- a float constantpublic float[] mult(float[] vector)
vector
- input vectorpublic void normalize()
public void inverse()
public float[] toMatrix()
public void slerp(Quaternion a, Quaternion b, float t)
Note: Method does not normalize this quaternion!
See http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/ quaternions/slerp/
a
- initial quaternionb
- target quaterniont
- float between 0 and 1 representing interp.public boolean isIdentity()
public void setIdentity()
public void setFromMatrix(float[] m)
m
- 3x3 column matrixpublic boolean isRotationMatrix(float[] m)
m
- 3x3 column matrixCopyright 2010 JogAmp Community.