public abstract class AffineTransform3dBase extends DenseMatrixBase implements java.io.Serializable, Clonable
[ A p ] M = [ ] [ 0 1 ]
Matrix.Partition, Matrix.WriteFormat
INDEFINITE, POSITIVE_DEFINITE, SPD, SYMMETRIC
Constructor and Description |
---|
AffineTransform3dBase() |
Modifier and Type | Method and Description |
---|---|
AffineTransform3dBase |
clone() |
int |
colSize()
Returns the number of columns in this matrix (which is always 4).
|
boolean |
epsilonEquals(AffineTransform3dBase X,
double epsilon)
Returns true if the elements of this transformation equal those of
transform
X1 within a prescribed tolerance
epsilon . |
boolean |
equals(AffineTransform3dBase X)
Returns true if the elements of this transformation exactly equal those of
transform
X1 . |
void |
get(double[] values)
Copies the elements of this matrix into an array of doubles.
|
double |
get(int i,
int j)
Gets a single element of this matrix.
|
void |
getColumn(int j,
double[] values)
Copies a column of this matrix into an array of doubles.
|
void |
getColumn(int j,
double[] values,
int off)
Copies a column of this matrix into an array of doubles, starting at a
specified offset.
|
Matrix3dBase |
getMatrix()
Returns the matrix assiciated with this affine transform.
|
void |
getMatrixComponents(RotationMatrix3d R,
Vector3d s,
Matrix3d X)
Returns the shear, scaling, and rotational components of this
AffineTransform.
|
Vector3d |
getOffset()
Returns the offset vector assiciated with this affine transform.
|
void |
getRow(int i,
double[] values)
Copies a row of this matrix into an array of doubles.
|
void |
getRow(int i,
double[] values,
int off)
Copies a row of this matrix into an array of doubles, starting at a
specified offset.
|
boolean |
invert()
Inverts this transform in place.
|
boolean |
isIdentity()
Returns true if this transform equals the identity.
|
void |
leftRigidFactor(AffineTransform3d XS,
RigidTransform3d XR)
Factors this affine transform into the product of a stretch-shear
transform (with no translation) and a rigid transform:
|
void |
mul(Vector4d vr)
Multiplies the column vector vr by this transform and places the result
back in vr.
|
void |
mul(Vector4d vr,
Vector4d v1)
Multiplies the column vector v1 by this transform and places the result in
vr.
|
boolean |
mulInverse(Vector4d vr)
Multiplies the column vector vr by the inverse of this transform and
places the result back in vr.
|
boolean |
mulInverse(Vector4d vr,
Vector4d v1)
Multiplies the column vector v1 by the inverse of this transform and
places the result in vr.
|
int |
rowSize()
Returns the number of rows in this matrix (which is always 4).
|
void |
set(AffineTransform3dBase A) |
void |
set(double[] vals)
Sets the elements of this matrix from an array of doubles.
|
void |
set(int i,
int j,
double value)
Sets a single element of this matrix.
|
void |
setColumn(int j,
double[] values)
Sets a column of this matrix from an array of doubles.
|
void |
setIdentity()
Sets the transformation to the identity.
|
void |
setRotation(AxisAngle axisAng)
Sets the matrix component of this affine transform to an explicit
rotation.
|
void |
setRotation(Quaternion quat)
Sets the matrix component of this affine transform to an explicit
rotation.
|
void |
setRotation(RotationMatrix3d R)
Sets the matrix component of this affine transform to an explicit
rotation.
|
void |
setRow(int i,
double[] values)
Set a row of this matrix from an array of doubles.
|
void |
setTranslation(Vector3d p)
Sets the translation component of this affine transform.
|
add, checkConsistency, set, set, set, set, setCCSValues, setColumn, setCRSValues, setRow, setSubMatrix
containsNaN, determinant, epsilonEquals, equals, frobeniusNorm, get, getCCSIndices, getCCSIndices, getCCSValues, getCCSValues, getColumn, getCRSIndices, getCRSIndices, getCRSValues, getCRSValues, getDefaultFormat, getRow, getSize, getSubMatrix, hasNaN, idString, infinityNorm, isFixedSize, isSymmetric, mul, mul, mul, mulAdd, mulAdd, mulAdd, mulTranspose, mulTranspose, mulTranspose, mulTransposeAdd, mulTransposeAdd, mulTransposeAdd, numNonZeroVals, numNonZeroVals, oneNorm, scan, setCRSValues, setDefaultFormat, setSize, toString, toString, toString, trace, write, write, write, write, write, writeToFile
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
determinant, epsilonEquals, equals, frobeniusNorm, getCCSIndices, getCCSIndices, getCCSValues, getCCSValues, getColumn, getCRSIndices, getCRSIndices, getCRSValues, getCRSValues, getRow, getSize, getSubMatrix, infinityNorm, isFixedSize, isSymmetric, mul, mul, mul, mulAdd, mulAdd, mulAdd, mulTranspose, mulTranspose, mulTranspose, mulTransposeAdd, mulTransposeAdd, mulTransposeAdd, numNonZeroVals, numNonZeroVals, oneNorm, scan, setSize, toString, trace, write, write, write
public Matrix3dBase getMatrix()
public Vector3d getOffset()
public int colSize()
colSize
in interface LinearTransformNd
colSize
in interface Matrix
colSize
in class MatrixBase
public int rowSize()
rowSize
in interface LinearTransformNd
rowSize
in interface Matrix
rowSize
in class MatrixBase
public double get(int i, int j)
get
in interface Matrix
get
in class MatrixBase
i
- element row indexj
- element column indexpublic void get(double[] values)
(i,j)
is
stored at location i*colSize()+j
.get
in interface Matrix
get
in class MatrixBase
values
- array into which values are copiedpublic void getColumn(int j, double[] values)
getColumn
in interface Matrix
getColumn
in class MatrixBase
j
- column indexvalues
- array into which the column is copiedpublic void getColumn(int j, double[] values, int off)
getColumn
in interface Matrix
getColumn
in class MatrixBase
j
- column indexvalues
- array into which the column is copiedoff
- offset in values where copying should beginpublic void getRow(int i, double[] values)
getRow
in interface Matrix
getRow
in class MatrixBase
i
- row indexvalues
- array into which the row is copiedpublic void getRow(int i, double[] values, int off)
getRow
in interface Matrix
getRow
in class MatrixBase
i
- row indexvalues
- array into which the row is copiedoff
- offset in values where copying should beginpublic final void set(AffineTransform3dBase A)
public void set(int i, int j, double value)
set
in interface DenseMatrix
set
in class DenseMatrixBase
i
- element row indexj
- element column indexvalue
- element valuepublic void set(double[] vals)
(i,j)
is stored at location i*colSize()+j
.set
in interface DenseMatrix
set
in class DenseMatrixBase
vals
- array from which values are copiedpublic void setColumn(int j, double[] values)
setColumn
in interface DenseMatrix
setColumn
in class DenseMatrixBase
j
- column indexvalues
- array from which column values are copiedpublic void setRow(int i, double[] values)
setRow
in interface DenseMatrix
setRow
in class DenseMatrixBase
i
- row indexvalues
- array from which the row is copiedpublic void setTranslation(Vector3d p)
p
- translation vectorpublic void setRotation(AxisAngle axisAng)
axisAng
- axis-angle describing the rotationpublic void setRotation(Quaternion quat)
quat
- quaternion describing the rotationpublic void setRotation(RotationMatrix3d R)
R
- rotation matrixpublic void setIdentity()
public void mul(Vector4d vr, Vector4d v1)
vr
- result vectorv1
- vector to multiplypublic void mul(Vector4d vr)
vr
- vector to multiply (in place)public boolean mulInverse(Vector4d vr, Vector4d v1)
vr
- result vectorv1
- vector to multiplypublic boolean mulInverse(Vector4d vr)
vr
- vector to multiply (in place)public boolean invert()
public boolean epsilonEquals(AffineTransform3dBase X, double epsilon)
X1
within a prescribed tolerance
epsilon
.X
- transform to compare withepsilon
- comparison tolerancepublic boolean equals(AffineTransform3dBase X)
X1
.X
- transform to compare withpublic void getMatrixComponents(RotationMatrix3d R, Vector3d s, Matrix3d X)
M = U S V'The rotation is then set to U, the scale factors are set to the diagonal elements of S, and the shear is set to U'.
R
- returns the rotation matrixs
- returns the three scaling factorsX
- returns the shearing transformpublic void leftRigidFactor(AffineTransform3d XS, RigidTransform3d XR)
this = XS XR
XS
- returns the stretch-shear transform (optional argument)XR
- returns the rigid transform (optional argument)public boolean isIdentity()
public AffineTransform3dBase clone()