org.jmol.util
Class Quaternion
java.lang.Object
org.jmol.util.Quaternion
public class Quaternion
- extends java.lang.Object
Method Summary |
Quaternion |
add(float x)
|
Quaternion |
div(Quaternion p)
|
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)
|
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.Point3f x,
javax.vecmath.Point3f xy)
|
static Quaternion |
getQuaternionFrame(javax.vecmath.Vector3f vA,
javax.vecmath.Vector3f vB,
javax.vecmath.Vector3f vC)
|
float |
getTheta()
|
javax.vecmath.Point4f |
getThetaDirected(javax.vecmath.Point4f axisAngle)
|
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()
|
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)
|
javax.vecmath.AxisAngle4f |
toAxisAngle4f()
|
javax.vecmath.Point4f |
toPoint4f()
|
java.lang.String |
toString()
|
java.lang.String |
toString0123()
|
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)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
q0
public float q0
q1
public float q1
q2
public float q2
q3
public float q3
mat
public javax.vecmath.Matrix3f mat
qZero
private static final javax.vecmath.Point4f qZero
qTemp
private static final Quaternion qTemp
Quaternion
public Quaternion()
Quaternion
public Quaternion(Quaternion q)
Quaternion
public Quaternion(javax.vecmath.Tuple3f pt,
float theta)
Quaternion
public Quaternion(javax.vecmath.Matrix3f mat)
Quaternion
public Quaternion(javax.vecmath.AxisAngle4f a)
Quaternion
public Quaternion(javax.vecmath.Point4f pt)
Quaternion
public Quaternion(float q0,
float q1,
float q2,
float q3)
set
public void set(Quaternion q)
set
private void set(javax.vecmath.Point4f pt)
- {x y z w} --> {q1 q2 q3 q0} and factored
- Parameters:
pt
-
set
public void set(javax.vecmath.Tuple3f pt,
float theta)
- q = (cos(theta/2), sin(theta/2) * n)
- Parameters:
pt
- theta
-
set
public void set(javax.vecmath.AxisAngle4f a)
set
public void set(javax.vecmath.Matrix3f mat)
setRef
public void setRef(Quaternion qref)
getQuaternionFrame
public static final Quaternion getQuaternionFrame(javax.vecmath.Point3f center,
javax.vecmath.Point3f x,
javax.vecmath.Point3f xy)
getQuaternionFrame
public static final Quaternion getQuaternionFrame(javax.vecmath.Vector3f vA,
javax.vecmath.Vector3f vB,
javax.vecmath.Vector3f vC)
getMatrix
public javax.vecmath.Matrix3f getMatrix()
setMatrix
private void setMatrix()
add
public Quaternion add(float x)
mul
public Quaternion mul(float x)
mul
public Quaternion mul(Quaternion p)
div
public Quaternion div(Quaternion p)
divLeft
public Quaternion divLeft(Quaternion p)
dot
public float dot(Quaternion q)
inv
public Quaternion inv()
negate
public Quaternion negate()
fixQ
private void fixQ(Quaternion qNew)
getVector
public javax.vecmath.Vector3f getVector(int i)
getVector
private javax.vecmath.Vector3f getVector(int i,
float scale)
getNormal
public javax.vecmath.Vector3f getNormal()
- Returns:
- vector such that 0 <= angle <= 180
getTheta
public float getTheta()
- Returns:
- 0 <= angle <= 180 in degrees
getThetaRadians
public float getThetaRadians()
getNormalDirected
public javax.vecmath.Vector3f getNormalDirected(javax.vecmath.Vector3f v0)
- Parameters:
v0
-
- Returns:
- vector option closest to v0
getThetaDirected
public javax.vecmath.Point4f getThetaDirected(javax.vecmath.Point4f axisAngle)
- Parameters:
axisAngle
-
- Returns:
- fill in theta of axisAngle such that
toPoint4f
public javax.vecmath.Point4f toPoint4f()
toAxisAngle4f
public javax.vecmath.AxisAngle4f toAxisAngle4f()
transform
public javax.vecmath.Point3f transform(javax.vecmath.Point3f pt)
transform
public void transform(javax.vecmath.Point3f pt,
javax.vecmath.Point3f ptNew)
transform
public javax.vecmath.Vector3f transform(javax.vecmath.Vector3f v)
leftDifference
public Quaternion leftDifference(Quaternion q2)
rightDifference
public Quaternion rightDifference(Quaternion q2)
getInfo
public java.lang.String getInfo()
draw
public java.lang.String draw(java.lang.String prefix,
java.lang.String id,
javax.vecmath.Point3f ptCenter,
float scale)
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
toString0123
public java.lang.String toString0123()