public class Rotater extends Transformer implements Component
Constructor and Description |
---|
Rotater(double[][] vectors)
Create a matrix from input data.
|
Rotater(java.lang.String order,
double phi,
double theta,
double psi)
Form a rotation from the Euler angles - three successive
rotations about specified Cartesian axes
|
Modifier and Type | Method and Description |
---|---|
Rotater |
add(Rotater r)
Add an additional rotation to the current rotation.
|
java.lang.String |
getDescription()
Get a description of the component
|
protected int |
getInputDimension()
Get the input dimension to a Rotater
|
double[][] |
getMatrix()
Return the double coefficients for the matrix
|
java.lang.String |
getName()
Get the name of the component
|
protected int |
getOutputDimension()
Get the output dimension to a Rotater
|
Rotater |
inverse()
This isn't really right...
|
boolean |
isInverse(Transformer trans)
Is this the inverse rotation?
|
void |
printOut()
Debug output
|
void |
transform(double[] in,
double[] out)
Multiple a vector by the matrix.
|
Rotater |
transpose()
Get the transpose of the Matrix.
|
transform, transform
public Rotater(double[][] vectors) throws TransformationException
TransformationException
public Rotater(java.lang.String order, double phi, double theta, double psi)
A rotation is positive when the reference frame rotates anticlockwise as seen looking towards the origin from the positive region of the specified axis.
The characters of ORDER define which axes the three successive rotations are about. A typical value is 'ZXZ', indicating that RMAT is to become the direction cosine matrix corresponding to rotations of the reference frame through PHI radians about the old Z-axis, followed by THETA radians about the resulting X-axis, then PSI radians about the resulting Z-axis.
The axis names can be any of the following, in any order or combination: X, Y, Z, uppercase or lowercase, 1, 2, 3. Normal axis labelling/numbering conventions apply; the xyz (=123) triad is right-handed. Thus, the 'ZXZ' example given above could be written 'zxz' or '313' (or even 'ZxZ' or '3xZ'). ORDER is terminated by length or by the first unrecognized character.
Fewer than three rotations are acceptable, in which case the later angle arguments are ignored. If all rotations are zero, the identity matrix is produced.
order
- specifies about which axes the rotations occurphi
- 1st rotation (radians)theta
- 2nd rotation ( " )psi
- 3rd rotation ( " )protected int getInputDimension()
getInputDimension
in class Transformer
protected int getOutputDimension()
getOutputDimension
in class Transformer
public java.lang.String getName()
public java.lang.String getDescription()
getDescription
in interface Component
public double[][] getMatrix()
public Rotater transpose()
public Rotater inverse()
inverse
in class Transformer
public Rotater add(Rotater r)
public void transform(double[] in, double[] out)
transform
in class Transformer
in
- The input vector.out
- The output vector, it may be the same as the input
vector if the dimensionalities are the same. All
transformers are expected to work with aliased inputs and output.public boolean isInverse(Transformer trans)
isInverse
in class Transformer
public void printOut()