
public class AffineTransformation extends Object
| Modifier and Type | Field and Description | 
|---|---|
| private int | dimthe dimensionality of the transformation | 
| private Matrix | invthe inverse transformation | 
| private Matrix | transThe transformation matrix of dim+1 x dim+1 for homogeneous coordinates | 
| Constructor and Description | 
|---|
| AffineTransformation(int dim)Constructor for an identity transformation. | 
| AffineTransformation(int dim,
                    Matrix trans,
                    Matrix inv)Trivial constructor with all fields, mostly for cloning | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addAxisReflection(int axis)Add a reflection along the given axis. | 
| void | addMatrix(Matrix m)Add a matrix operation to the matrix. | 
| void | addRotation(int axis1,
           int axis2,
           double angle)Convenience function to apply a rotation in 2 dimensions. | 
| void | addScaling(double scale)Simple linear (symmetric) scaling. | 
| void | addTranslation(Vector v)Add a translation operation to the matrix | 
| double[] | apply(double[] v)Apply the transformation onto a vector | 
| Vector | apply(Vector v)Apply the transformation onto a vector | 
| double[] | applyInverse(double[] v)Apply the inverse transformation onto a vector | 
| Vector | applyInverse(Vector v)Apply the inverse transformation onto a vector | 
| double[] | applyRelative(double[] v)Apply the transformation onto a vector | 
| Vector | applyRelative(Vector v)Apply the transformation onto a vector | 
| double[] | applyRelativeInverse(double[] v)Apply the inverse transformation onto a vector | 
| Vector | applyRelativeInverse(Vector v)Apply the inverse transformation onto a vector | 
| AffineTransformation | clone()Return a clone of the affine transformation | 
| int | getDimensionality()Query dimensionality of the transformation. | 
| Matrix | getInverse()Get a copy of the inverse matrix | 
| Matrix | getTransformation()Get a copy of the transformation matrix | 
| double[] | homogeneRelativeVector(double[] v)Transform a relative vector into homogeneous coordinates. | 
| Vector | homogeneRelativeVector(Vector v)Transform a relative vector into homogeneous coordinates. | 
| double[] | homogeneVector(double[] v)Transform an absolute vector into homogeneous coordinates. | 
| Vector | homogeneVector(Vector v)Transform an absolute vector into homogeneous coordinates. | 
| static AffineTransformation | reorderAxesTransformation(int dim,
                         int[] axes)Generate a transformation that reorders axes in the given way. | 
| double[] | unhomogeneRelativeVector(double[] v)Project an homogeneous vector back into the original space. | 
| Vector | unhomogeneRelativeVector(Vector v)Project an homogeneous vector back into the original space. | 
| double[] | unhomogeneVector(double[] v)Project an homogeneous vector back into the original space. | 
| Vector | unhomogeneVector(Vector v)Project an homogeneous vector back into the original space. | 
| private void | updateInverse()Compute the inverse transformation matrix | 
private int dim
private Matrix trans
private Matrix inv
public AffineTransformation(int dim)
dim - dimensionalitypublic static AffineTransformation reorderAxesTransformation(int dim, int[] axes)
dim - Dimensionality of vector space (resulting Matrix will be dim+1 x
        dim+1)axes - (Partial) list of axespublic AffineTransformation clone()
public int getDimensionality()
public void addTranslation(Vector v)
v - translation vectorpublic void addMatrix(Matrix m)
m - matrix (should be invertible)public void addRotation(int axis1,
               int axis2,
               double angle)
axis1 - first dimensionaxis2 - second dimensionangle - rotation angle in radians.public void addAxisReflection(int axis)
axis - Axis number to do the reflection at.public void addScaling(double scale)
scale - Scaling factorpublic Matrix getTransformation()
public Matrix getInverse()
private void updateInverse()
public Vector homogeneVector(Vector v)
v - initial vectorpublic double[] homogeneVector(double[] v)
v - initial vectorpublic Vector homogeneRelativeVector(Vector v)
v - initial vectorpublic double[] homogeneRelativeVector(double[] v)
v - initial vectorpublic Vector unhomogeneVector(Vector v)
v - Matrix of 1 x dim+1 containing the homogeneous vectorpublic double[] unhomogeneVector(double[] v)
v - Matrix of 1 x dim+1 containing the homogeneous vectorpublic Vector unhomogeneRelativeVector(Vector v)
v - Matrix of 1 x dim+1 containing the homogeneous vectorpublic double[] unhomogeneRelativeVector(double[] v)
v - Matrix of 1 x dim+1 containing the homogeneous vectorpublic Vector apply(Vector v)
v - vector of dimensionality dimpublic double[] apply(double[] v)
v - vector of dimensionality dimpublic Vector applyInverse(Vector v)
v - vector of dimensionality dimpublic double[] applyInverse(double[] v)
v - vector of dimensionality dimpublic Vector applyRelative(Vector v)
v - vector of dimensionality dimpublic double[] applyRelative(double[] v)
v - vector of dimensionality dimpublic Vector applyRelativeInverse(Vector v)
v - vector of dimensionality dimpublic double[] applyRelativeInverse(double[] v)
v - vector of dimensionality dim