com.jogamp.opengl.math
Class Quaternion

java.lang.Object
  extended by com.jogamp.opengl.math.Quaternion

public class Quaternion
extends Object


Constructor Summary
Quaternion()
           
Quaternion(float[] vector1, float[] vector2)
          Constructor to create a rotation based quaternion from two vectors
Quaternion(float x, float y, float z, float w)
           
 
Method Summary
 void add(Quaternion q)
          Add a quaternion
 void divide(float n)
          Divide a quaternion by a constant
 float getW()
           
 float getX()
           
 float getY()
           
 float getZ()
           
 void inverse()
          Invert the quaternion If rotational, will produce a the inverse rotation
 boolean isEmpty()
          Check if this quaternion is empty, ie (0,0,0,1)
 boolean isIdentity()
          Check if this quaternion represents an identity matrix, for rotation.
 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
 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 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
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Quaternion

public Quaternion()

Quaternion

public Quaternion(float x,
                  float y,
                  float z,
                  float w)

Quaternion

public Quaternion(float[] vector1,
                  float[] vector2)
Constructor to create a rotation based quaternion from two vectors

Parameters:
vector1 -
vector2 -
Method Detail

toAxis

public float[] toAxis()
Transform the rotational quaternion to axis based rotation angles

Returns:
new float[4] with ,theta,Rx,Ry,Rz

getW

public float getW()

setW

public void setW(float w)

getX

public float getX()

setX

public void setX(float x)

getY

public float getY()

setY

public void setY(float y)

getZ

public float getZ()

setZ

public void setZ(float z)

add

public void add(Quaternion q)
Add a quaternion

Parameters:
q - quaternion

subtract

public void subtract(Quaternion q)
Subtract a quaternion

Parameters:
q - quaternion

divide

public void divide(float n)
Divide a quaternion by a constant

Parameters:
n - a float to divide by

mult

public void mult(Quaternion q)
Multiply this quaternion by the param quaternion

Parameters:
q - a quaternion to multiply with

mult

public void mult(float n)
Multiply a quaternion by a constant

Parameters:
n - a float constant

normalize

public void normalize()
Normalize a quaternion required if to be used as a rotational quaternion


inverse

public void inverse()
Invert the quaternion If rotational, will produce a the inverse rotation


toMatrix

public float[] toMatrix()
Transform this quaternion to a 4x4 column matrix representing the rotation

Returns:
new float[16] column matrix 4x4

slerp

public void slerp(Quaternion a,
                  Quaternion b,
                  float t)
Set this quaternion from a Sphereical interpolation of two param quaternion, used mostly for rotational animation

Parameters:
a - initial quaternion
b - target quaternion
t - float between 0 and 1 representing interp.

isEmpty

public boolean isEmpty()
Check if this quaternion is empty, ie (0,0,0,1)

Returns:
true if empty, false otherwise

isIdentity

public boolean isIdentity()
Check if this quaternion represents an identity matrix, for rotation.

Returns:
true if it is an identity rep., false otherwise

setFromMatrix

public void setFromMatrix(float[] m)
compute the quaternion from a 3x3 column matrix

Parameters:
m - 3x3 column matrix

isRotationMatrix

public boolean isRotationMatrix(float[] m)
Check if the the 3x3 matrix (param) is in fact an affine rotational matrix

Parameters:
m - 3x3 column matrix
Returns:
true if representing a rotational matrix, false otherwise


Copyright 2010 JogAmp Community.