IGLib  1.5
The IGLib base library for development of numerical, technical and business applications.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events
IG.Num.AffineTransformationSquare Class Reference

Invertible Affine transformation with square transformation matrix. More...

+ Inheritance diagram for IG.Num.AffineTransformationSquare:
+ Collaboration diagram for IG.Num.AffineTransformationSquare:

Public Member Functions

 AffineTransformationSquare (int dimension)
 Constructs affine transformation with the specified dimensions of the original (reference) and transformed (target) space. More...
 
 AffineTransformationSquare (Matrix transformationMatrix, Vector translationVector, bool inverseSpecified)
 Constructs affine transformation with the specified transformation matrix and translation vector. Either of the transformation matrix or translation vector can be null, but not both. More...
 
 AffineTransformationSquare (Matrix transformationMatrix, Vector translationVector)
 Constructs affine transformation with the specified transformation matrix and translation vector. Either of the transformation matrix or translation vector can be null, but not both. More...
 
virtual void CopyTransformationMatrix (ref IMatrix store)
 Copies transformation matrix to the specified storage matrix. More...
 
virtual void CopyInverseTransformationMatrix (ref IMatrix store)
 Copies inverse transformation matrix to the specified storage matrix. More...
 
void TransformCoordinatesPlain (IVector original, IVector result)
 Transforms co-ordinates from the reference to the transformed space. WARNING: This is a plain version that does not check dimensions. More...
 
void TransformCoordinates (IVector original, ref IVector result)
 Transforms co-ordinates from the reference to the transformed space. More...
 
void TransformBackCoordinatesPlain (IVector transformed, IVector result)
 Backward transforms co-ordinates from the transformed to the reference space. More...
 
void TransformBackCoordinates (IVector transformed, ref IVector result)
 Backward transforms co-ordinates from the transformed to the reference space. More...
 
void TransformGradientPlain (IVector original, IVector result)
 Transforms gradient (or other covariant vector) from the reference to the transformed space. WARNING: This is a plain version that does not check dimensions. More...
 
void TransformGradient (IVector original, ref IVector result)
 Transforms gradient (or other covariant vector) from the reference to the transformed space. More...
 
void TransformBackGradientPlain (IVector transformed, IVector result)
 Backward transforms gradient (or other covariant vector) from the transformed to the reference space. More...
 
void TransformBackGradient (IVector transformed, ref IVector result)
 Backward transforms gradient (or other covariant vector) from the transformed to the reference space. More...
 
void TransformHessianPlain (IMatrix original, IMatrix result)
 Transforms Hessian (or other covariant matrix) from the reference to the transformed space. WARNING: This is a plain version that does not check dimensions. More...
 
void TransformHessian (IMatrix original, ref IMatrix result)
 Transforms Hessian (or other covariant matrix) from the reference to the transformed space. More...
 
void TransformBackHessianPlain (IMatrix transformed, IMatrix result)
 Backward transforms Hessian (or other covariant matrix) from the transformed to the reference space. More...
 
void TransformBackHessian (IMatrix transformed, ref IMatrix result)
 Backward transforms Hessian (or other covariant matrix) from the transformed to the reference space. More...
 

Protected Member Functions

 AffineTransformationSquare ()
 
void InitAuxVec ()
 Initializes auxiliary vector. More...
 
void InitIdentityMat ()
 Initializes the auxiliary identity matrix. More...
 
void InitAuxMat ()
 Initializes the auxiliary matrix. More...
 
virtual void CalculateTransformationMatrix ()
 Calculates the transformation matrix from the inverse transformation matrix. More...
 
virtual void CalculateInverseTransformationMatrix ()
 Calculates the inverse transformation matrix from the direct transformation matrix. More...
 

Protected Attributes

Vector _auxVec
 
Matrix _identityMat
 
Matrix _auxMat
 

Properties

object Lock [get]
 Object used for locking of the current object (ILockable interface). More...
 
int DimensionOriginal [get, protected set]
 Dimension of the original (reference) space. More...
 
int DimensionTransformed [get, protected set]
 Dimension of the transformed space. More...
 
int Dimension [get, protected set]
 Dimension of the original and transformed space (which are equal for this class). More...
 
bool CalculatedTransformationMatrix [get, protected set]
 Flag indicating whethet the transformation matrix is calculated or not. More...
 
virtual IMatrix TransformationMatrix [get, set]
 Gets or sets transformation matrix that transforms vector of co-ordinates from the original to the reference space. More...
 
bool CalculatedInverseTransformationMatrix [get, protected set]
 Flag indicating whethet the transformation matrix is calculated or not. More...
 
virtual IMatrix InverseTransformationMatrix [get, set]
 Gets or sets inverse of the transformation matrix that transforms vector of co-ordinates from the original to the reference space. More...
 
virtual IVector TranslationVector [get, set]
 Gets or sets the translation vector of the affine transformation. More...
 
- Properties inherited from IG.Num.IAffineTransformation
int DimensionOriginal [get]
 
int DimensionTransformed [get]
 
IMatrix TransformationMatrix [get, set]
 Get or set the transformation matrix. More...
 
IMatrix InverseTransformationMatrix [get, set]
 Gets or sets inverse transformation matrix. More...
 
IVector TranslationVector [get, set]
 Gets or sets the translation vector. More...
 
- Properties inherited from IG.Lib.ILockable
object Lock [get]
 

Private Attributes

object _lockObj = new object()
 
int _spaceDimension
 
bool _calcTransformationMatrix
 
IMatrix _transfMatrix
 
bool _calcInverseTransformationMatrix
 
IVector _translation
 

Detailed Description

Invertible Affine transformation with square transformation matrix.

$A Igor Jul10 Dec10; //TODO: implement IAffine transfoermation!

Constructor & Destructor Documentation

IG.Num.AffineTransformationSquare.AffineTransformationSquare ( )
inlineprotected
IG.Num.AffineTransformationSquare.AffineTransformationSquare ( int  dimension)
inline

Constructs affine transformation with the specified dimensions of the original (reference) and transformed (target) space.

Parameters
dimOriginalDimension of the original space.
dimTransformedDimension of the reference space.
IG.Num.AffineTransformationSquare.AffineTransformationSquare ( Matrix  transformationMatrix,
Vector  translationVector,
bool  inverseSpecified 
)
inline

Constructs affine transformation with the specified transformation matrix and translation vector. Either of the transformation matrix or translation vector can be null, but not both.

Parameters
transformationMatrixTransformation matrix of the affine transformation.
translationVectorTranslation vector of the affine transformation.

References IG.Num.Matrix.ColumnCount, IG.Num.Vector.Length, and IG.Num.Matrix.RowCount.

IG.Num.AffineTransformationSquare.AffineTransformationSquare ( Matrix  transformationMatrix,
Vector  translationVector 
)
inline

Constructs affine transformation with the specified transformation matrix and translation vector. Either of the transformation matrix or translation vector can be null, but not both.

Parameters
transformationMatrixTransformation matrix of the affine transformation.
translationVectorTranslation vector of the affine transformation.

References IG.Num.Matrix.ColumnCount, IG.Num.Vector.Length, and IG.Num.Matrix.RowCount.

Member Function Documentation

void IG.Num.AffineTransformationSquare.InitAuxVec ( )
inlineprotected

Initializes auxiliary vector.

References IG.Num.Vector.Length.

void IG.Num.AffineTransformationSquare.InitIdentityMat ( )
inlineprotected

Initializes the auxiliary identity matrix.

References IG.Num.Matrix.RowCount.

void IG.Num.AffineTransformationSquare.InitAuxMat ( )
inlineprotected

Initializes the auxiliary matrix.

References IG.Num.Matrix.RowCount.

virtual void IG.Num.AffineTransformationSquare.CalculateTransformationMatrix ( )
inlineprotectedvirtual

Calculates the transformation matrix from the inverse transformation matrix.

References IG.Num.MatrixBase.CopyPlain(), and IG.Num.LinearSolverBase.Solve().

virtual void IG.Num.AffineTransformationSquare.CalculateInverseTransformationMatrix ( )
inlineprotectedvirtual

Calculates the inverse transformation matrix from the direct transformation matrix.

References IG.Num.MatrixBase.CopyPlain(), and IG.Num.LinearSolverBase.Solve().

virtual void IG.Num.AffineTransformationSquare.CopyTransformationMatrix ( ref IMatrix  store)
inlinevirtual

Copies transformation matrix to the specified storage matrix.

Parameters
storeStorage matrix that transformation matrix is copied to.

Implements IG.Num.IAffineTransformation.

References IG.Num.Matrix.Copy().

virtual void IG.Num.AffineTransformationSquare.CopyInverseTransformationMatrix ( ref IMatrix  store)
inlinevirtual

Copies inverse transformation matrix to the specified storage matrix.

Parameters
storeStorage matrix that inverse transformation matrix is copied to.

Implements IG.Num.IAffineTransformation.

References IG.Num.Matrix.Copy().

void IG.Num.AffineTransformationSquare.TransformCoordinatesPlain ( IVector  original,
IVector  result 
)
inline

Transforms co-ordinates from the reference to the transformed space. WARNING: This is a plain version that does not check dimensions.

Parameters
originalVector of original co-ordinates.
resultVector where transformed co-ordinates are stored.

Implements IG.Num.IAffineTransformation.

References IG.Num.VectorBase.AddPlain(), IG.Num.VectorBase.CopyPlain(), and IG.Num.MatrixBase.MultiplyPlain().

void IG.Num.AffineTransformationSquare.TransformCoordinates ( IVector  original,
ref IVector  result 
)
inline

Transforms co-ordinates from the reference to the transformed space.

Parameters
originalVector of original co-ordinates.
resultVector where transformed co-ordinates are stored.

Implements IG.Num.IAffineTransformation.

References IG.Num.IVector.GetNew().

void IG.Num.AffineTransformationSquare.TransformBackCoordinatesPlain ( IVector  transformed,
IVector  result 
)
inline

Backward transforms co-ordinates from the transformed to the reference space.

Parameters
transformedVector of transformed co-ordinates.
originalVector where inverse-transformed original co-ordinates are stored.

Implements IG.Num.IAffineTransformation.

References IG.Num.VectorBase.CopyPlain(), IG.Num.MatrixBase.MultiplyPlain(), and IG.Num.VectorBase.SubtractPlain().

void IG.Num.AffineTransformationSquare.TransformBackCoordinates ( IVector  transformed,
ref IVector  result 
)
inline

Backward transforms co-ordinates from the transformed to the reference space.

Parameters
transformedVector of transformed co-ordinates.
originalVector where inverse-transformed original co-ordinates are stored.

Implements IG.Num.IAffineTransformation.

References IG.Num.IVector.GetNew().

void IG.Num.AffineTransformationSquare.TransformGradientPlain ( IVector  original,
IVector  result 
)
inline

Transforms gradient (or other covariant vector) from the reference to the transformed space. WARNING: This is a plain version that does not check dimensions.

Parameters
originalOriginal gradient-like vector.
resultVector where resulting transformed vector is stored.

Implements IG.Num.IAffineTransformation.

References IG.Num.VectorBase.CopyPlain(), and IG.Num.MatrixBase.MultiplyTranspVecPlain().

void IG.Num.AffineTransformationSquare.TransformGradient ( IVector  original,
ref IVector  result 
)
inline

Transforms gradient (or other covariant vector) from the reference to the transformed space.

Parameters
originalOriginal gradient-like vector.
resultVector where resulting transformed vector is stored.

Implements IG.Num.IAffineTransformation.

References IG.Num.IVector.GetNew().

void IG.Num.AffineTransformationSquare.TransformBackGradientPlain ( IVector  transformed,
IVector  result 
)
inline

Backward transforms gradient (or other covariant vector) from the transformed to the reference space.

Parameters
transformedTransformed gradient-like vector.
originalVector where resulting backward transformed vector is stored.

Implements IG.Num.IAffineTransformation.

References IG.Num.VectorBase.CopyPlain(), and IG.Num.MatrixBase.MultiplyTranspVecPlain().

void IG.Num.AffineTransformationSquare.TransformBackGradient ( IVector  transformed,
ref IVector  result 
)
inline

Backward transforms gradient (or other covariant vector) from the transformed to the reference space.

Parameters
transformedTransformed gradient-like vector.
originalVector where resulting backward transformed vector is stored.

Implements IG.Num.IAffineTransformation.

References IG.Num.IVector.GetNew().

void IG.Num.AffineTransformationSquare.TransformHessianPlain ( IMatrix  original,
IMatrix  result 
)
inline

Transforms Hessian (or other covariant matrix) from the reference to the transformed space. WARNING: This is a plain version that does not check dimensions.

Parameters
originalOriginal matrix.
resultMatrix where resulting transformed matrix is stored.

Implements IG.Num.IAffineTransformation.

References IG.Num.MatrixBase.CopyPlain(), and IG.Num.MatrixBase.MultiplyTranspMatMatPlain().

void IG.Num.AffineTransformationSquare.TransformHessian ( IMatrix  original,
ref IMatrix  result 
)
inline

Transforms Hessian (or other covariant matrix) from the reference to the transformed space.

Parameters
originalOriginal matrix.
resultMatrix where resulting transformed matrix is stored. Allocated/reallocated if necessary.

Implements IG.Num.IAffineTransformation.

References IG.Num.IMatrix.GetNew().

void IG.Num.AffineTransformationSquare.TransformBackHessianPlain ( IMatrix  transformed,
IMatrix  result 
)
inline

Backward transforms Hessian (or other covariant matrix) from the transformed to the reference space.

Parameters
transformedMatrix in transformed coordinates.
originalMatrix where resulting backward-transformed matrix is stored.

Implements IG.Num.IAffineTransformation.

References IG.Num.MatrixBase.CopyPlain(), and IG.Num.MatrixBase.MultiplyTranspMatMatPlain().

void IG.Num.AffineTransformationSquare.TransformBackHessian ( IMatrix  transformed,
ref IMatrix  result 
)
inline

Backward transforms Hessian (or other covariant matrix) from the transformed to the reference space.

Parameters
transformedMatrix in transformed coordinates.
originalMatrix where resulting backward-transformed matrix is stored. Allocated/reallocated if necessary.

Implements IG.Num.IAffineTransformation.

References IG.Num.IMatrix.GetNew().

Member Data Documentation

object IG.Num.AffineTransformationSquare._lockObj = new object()
private
int IG.Num.AffineTransformationSquare._spaceDimension
private
bool IG.Num.AffineTransformationSquare._calcTransformationMatrix
private
IMatrix IG.Num.AffineTransformationSquare._transfMatrix
private
bool IG.Num.AffineTransformationSquare._calcInverseTransformationMatrix
private
Vector IG.Num.AffineTransformationSquare._auxVec
protected
Matrix IG.Num.AffineTransformationSquare._identityMat
protected
Matrix IG.Num.AffineTransformationSquare._auxMat
protected
IVector IG.Num.AffineTransformationSquare._translation
private

Property Documentation

object IG.Num.AffineTransformationSquare.Lock
get

Object used for locking of the current object (ILockable interface).

int IG.Num.AffineTransformationSquare.DimensionOriginal
getprotected set

Dimension of the original (reference) space.

int IG.Num.AffineTransformationSquare.DimensionTransformed
getprotected set

Dimension of the transformed space.

int IG.Num.AffineTransformationSquare.Dimension
getprotected set

Dimension of the original and transformed space (which are equal for this class).

bool IG.Num.AffineTransformationSquare.CalculatedTransformationMatrix
getprotected set

Flag indicating whethet the transformation matrix is calculated or not.

virtual IMatrix IG.Num.AffineTransformationSquare.TransformationMatrix
getset

Gets or sets transformation matrix that transforms vector of co-ordinates from the original to the reference space.

bool IG.Num.AffineTransformationSquare.CalculatedInverseTransformationMatrix
getprotected set

Flag indicating whethet the transformation matrix is calculated or not.

virtual IMatrix IG.Num.AffineTransformationSquare.InverseTransformationMatrix
getset

Gets or sets inverse of the transformation matrix that transforms vector of co-ordinates from the original to the reference space.

virtual IVector IG.Num.AffineTransformationSquare.TranslationVector
getset

Gets or sets the translation vector of the affine transformation.


The documentation for this class was generated from the following file: