public class Quaternion
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
javax.vecmath.Matrix3f |
mat |
float |
q0 |
float |
q1 |
float |
q2 |
float |
q3 |
private static Quaternion |
qTemp |
private static javax.vecmath.Point4f |
qZero |
Constructor and Description |
---|
Quaternion() |
Quaternion(javax.vecmath.AxisAngle4f a) |
Quaternion(float q0,
float q1,
float q2,
float q3) |
Quaternion(javax.vecmath.Matrix3f mat) |
Quaternion(javax.vecmath.Point4f pt) |
Quaternion(Quaternion q) |
Quaternion(javax.vecmath.Tuple3f pt,
float theta) |
Modifier and Type | Method and Description |
---|---|
Quaternion |
add(float x) |
Quaternion |
div(Quaternion p) |
static Quaternion[] |
div(Quaternion[] data1,
Quaternion[] data2,
int nMax,
boolean isRelative) |
Quaternion |
divLeft(Quaternion p) |
float |
dot(Quaternion q) |
java.lang.String |
draw(java.lang.String prefix,
java.lang.String id,
javax.vecmath.Point3f ptCenter,
float scale) |
private void |
fixQ(Quaternion qNew) |
javax.vecmath.Vector3f |
get3dProjection(javax.vecmath.Vector3f v3d) |
java.lang.String |
getInfo() |
javax.vecmath.Matrix3f |
getMatrix() |
javax.vecmath.Vector3f |
getNormal() |
javax.vecmath.Vector3f |
getNormalDirected(javax.vecmath.Vector3f v0) |
static Quaternion |
getQuaternionFrame(javax.vecmath.Point3f center,
javax.vecmath.Tuple3f x,
javax.vecmath.Tuple3f xy) |
static Quaternion |
getQuaternionFrame(javax.vecmath.Vector3f vA,
javax.vecmath.Vector3f vB,
javax.vecmath.Vector3f vC,
boolean yBased) |
private static javax.vecmath.Vector3f |
getRawNormal(Quaternion q) |
float |
getTheta() |
javax.vecmath.Point4f |
getThetaDirected(javax.vecmath.Point4f axisAngle) |
float |
getThetaDirected(javax.vecmath.Vector3f vector) |
float |
getThetaRadians() |
javax.vecmath.Vector3f |
getVector(int i) |
private javax.vecmath.Vector3f |
getVector(int i,
float scale) |
Quaternion |
inv() |
Quaternion |
leftDifference(Quaternion q2) |
Quaternion |
mul(float x) |
Quaternion |
mul(Quaternion p) |
Quaternion |
negate() |
private static Quaternion |
newMean(Quaternion[] data,
Quaternion mean) |
Quaternion |
rightDifference(Quaternion q2) |
void |
set(javax.vecmath.AxisAngle4f a) |
void |
set(javax.vecmath.Matrix3f mat) |
private void |
set(javax.vecmath.Point4f pt)
{x y z w} --> {q1 q2 q3 q0} and factored
|
void |
set(Quaternion q) |
void |
set(javax.vecmath.Tuple3f pt,
float theta)
q = (cos(theta/2), sin(theta/2) * n)
|
private void |
setMatrix() |
void |
setRef(Quaternion qref) |
private static Quaternion |
simpleAverage(Quaternion[] ndata)
Just a starting point.
|
static Quaternion |
sphereMean(Quaternion[] data,
float[] retStddev,
float criterion) |
private static float |
stdDev(Quaternion[] data,
Quaternion mean) |
javax.vecmath.AxisAngle4f |
toAxisAngle4f() |
javax.vecmath.Point4f |
toPoint4f() |
java.lang.String |
toString()
Java axisAngle / plane / Point4f format
all have the format {x y z w}
so we go with that here as well
|
javax.vecmath.Point3f |
transform(javax.vecmath.Point3f pt) |
void |
transform(javax.vecmath.Point3f pt,
javax.vecmath.Point3f ptNew) |
javax.vecmath.Vector3f |
transform(javax.vecmath.Vector3f v) |
public float q0
public float q1
public float q2
public float q3
public javax.vecmath.Matrix3f mat
private static final javax.vecmath.Point4f qZero
private static final Quaternion qTemp
public Quaternion()
public Quaternion(Quaternion q)
public Quaternion(javax.vecmath.Tuple3f pt, float theta)
public Quaternion(javax.vecmath.Matrix3f mat)
public Quaternion(javax.vecmath.AxisAngle4f a)
public Quaternion(javax.vecmath.Point4f pt)
public Quaternion(float q0, float q1, float q2, float q3)
public void set(Quaternion q)
private void set(javax.vecmath.Point4f pt)
pt
- public void set(javax.vecmath.Tuple3f pt, float theta)
pt
- theta
- public void set(javax.vecmath.AxisAngle4f a)
public void set(javax.vecmath.Matrix3f mat)
public void setRef(Quaternion qref)
public static final Quaternion getQuaternionFrame(javax.vecmath.Point3f center, javax.vecmath.Tuple3f x, javax.vecmath.Tuple3f xy)
public static final Quaternion getQuaternionFrame(javax.vecmath.Vector3f vA, javax.vecmath.Vector3f vB, javax.vecmath.Vector3f vC, boolean yBased)
public javax.vecmath.Matrix3f getMatrix()
private void setMatrix()
public Quaternion add(float x)
public Quaternion mul(float x)
public Quaternion mul(Quaternion p)
public Quaternion div(Quaternion p)
public Quaternion divLeft(Quaternion p)
public float dot(Quaternion q)
public Quaternion inv()
public Quaternion negate()
private void fixQ(Quaternion qNew)
public javax.vecmath.Vector3f getVector(int i)
private javax.vecmath.Vector3f getVector(int i, float scale)
public javax.vecmath.Vector3f getNormal()
private static javax.vecmath.Vector3f getRawNormal(Quaternion q)
public float getTheta()
public float getThetaRadians()
public javax.vecmath.Vector3f getNormalDirected(javax.vecmath.Vector3f v0)
v0
- public javax.vecmath.Vector3f get3dProjection(javax.vecmath.Vector3f v3d)
public javax.vecmath.Point4f getThetaDirected(javax.vecmath.Point4f axisAngle)
axisAngle
- public float getThetaDirected(javax.vecmath.Vector3f vector)
vector
- a vector, same as for getNormalDirectedpublic javax.vecmath.Point4f toPoint4f()
public javax.vecmath.AxisAngle4f toAxisAngle4f()
public javax.vecmath.Point3f transform(javax.vecmath.Point3f pt)
public void transform(javax.vecmath.Point3f pt, javax.vecmath.Point3f ptNew)
public javax.vecmath.Vector3f transform(javax.vecmath.Vector3f v)
public Quaternion leftDifference(Quaternion q2)
public Quaternion rightDifference(Quaternion q2)
public java.lang.String getInfo()
public java.lang.String draw(java.lang.String prefix, java.lang.String id, javax.vecmath.Point3f ptCenter, float scale)
public java.lang.String toString()
toString
in class java.lang.Object
public static Quaternion[] div(Quaternion[] data1, Quaternion[] data2, int nMax, boolean isRelative)
data1
- data2
- nMax
- > 0 --> limit to this numberisRelative
- public static Quaternion sphereMean(Quaternion[] data, float[] retStddev, float criterion)
private static Quaternion simpleAverage(Quaternion[] ndata)
ndata
- private static Quaternion newMean(Quaternion[] data, Quaternion mean)
private static float stdDev(Quaternion[] data, Quaternion mean)
data
- mean
-