ALBA
|
#include <albaMatrix.h>
Public Member Functions | |
albaTypeMacro (albaMatrix, albaReferenceCounted) | |
virtual void | Print (std::ostream &os, const int indent=0) const |
albaMatrix () | |
virtual | ~albaMatrix () |
albaMatrix (const albaMatrix &mat) | |
albaMatrix & | operator= (const albaMatrix &mat) |
bool | operator== (const albaMatrix &mat) const |
bool | Equals (const albaMatrix *mat) const |
void | DeepCopy (const albaMatrix *mat) |
albaMatrixElements | GetElements () const |
void | SetElement (const int i, const int j, double value) |
double | GetElement (const int i, const int j) const |
unsigned long | GetMTime () const |
void | Modified () |
void | SetTimeStamp (albaTimeStamp t) |
albaTimeStamp | GetTimeStamp () const |
void | GetVersor (const int axis, double versor[3]) const |
void | CopyRotation (const albaMatrix &source) |
void | Zero () |
void | Identity () |
bool | IsIdentity () |
albaMatrix * | Invert () |
double | Determinant () const |
void | Adjoint (const albaMatrix &inMat, albaMatrix &outMat) |
void | Adjoint () |
void | Transpose () |
void | MultiplyPoint (const double in[4], double out[4]) const |
albaVect3d | MultiplyPoint (albaVect3d point) |
double * | operator[] (const unsigned int i) |
const double * | operator[] (unsigned int i) const |
operator vtkMatrix4x4 * () const | |
void | SetFromDirectionCosines (const double orientation[6]) |
Public Member Functions inherited from albaReferenceCounted | |
albaReferenceCounted () | |
virtual | ~albaReferenceCounted () |
albaAbstractTypeMacro (albaReferenceCounted, albaObject) | |
virtual void | Delete () |
void | Register (void *obj) |
virtual void | UnRegister (void *obj) |
int | GetReferenceCount () |
void | SetReferenceCount (int) |
Public Member Functions inherited from albaObject | |
albaObject () | |
virtual | ~albaObject () |
virtual void | Delete () |
virtual const char * | GetTypeName () const |
virtual bool | IsA (const char *type_name) const |
virtual bool | IsA (const albaTypeID &type_id) const |
virtual albaObject * | NewObjectInstance () const =0 |
virtual const albaTypeID & | GetTypeId () const |
virtual void | Print (std::ostream &os, const int indent=0) const |
albaObject (const albaObject &c) | |
Static Public Member Functions | |
static void | GetVersor (const int axis, const albaMatrix &matrix, double versor[3]) |
static void | CopyRotation (const albaMatrix &source, albaMatrix &target) |
static void | Zero (double elements[16]) |
static void | Identity (double elements[16]) |
static void | Invert (const albaMatrix &in, albaMatrix &out) |
static void | Invert (const double inElements[16], double outElements[16]) |
static double | Determinant (const double Elements[16]) |
static void | Adjoint (const double inElements[16], double outElements[16]) |
static void | Transpose (const albaMatrix &in, albaMatrix &out) |
static void | Transpose (const double inElements[16], double outElements[16]) |
static void | MultiplyPoint (const double Elements[16], const double in[4], double out[4]) |
static void | Multiply4x4 (const albaMatrix &a, const albaMatrix &b, albaMatrix &c) |
static void | Multiply4x4 (const double a[16], const double b[16], double c[16]) |
static void | PointMultiply (const double Elements[16], const float in[4], float out[4]) |
static void | PointMultiply (const double Elements[16], const double in[4], double out[4]) |
Static Public Member Functions inherited from albaObject | |
static const char * | GetStaticTypeName () |
static bool | IsStaticType (const char *type_name) |
static bool | IsStaticType (const albaTypeID &type_id) |
static const albaTypeID & | GetStaticTypeId () |
static albaObject * | SafeDownCast (albaObject *o) |
Protected Attributes | |
albaTimeStamp | m_TimeStamp |
double | m_Elements [4][4] |
albaMTime | m_MTime |
Protected Attributes inherited from albaReferenceCounted | |
int | m_ReferenceCount |
Protected Attributes inherited from albaObject | |
bool | m_HeapFlag |
albaMatrix - Time stamped 4x4 Matrix.
This class defines a TimeStamped 4x4 Matrix class. If ALBA has been compiled with VTK support, this class can be used wherever a vtkMatrix4x4 is requested, and indeed the internal representation is a vtkMatrix4x4. Also GetVTKMatrix() explicitly return a vtkMatrix4x4 pointer. Also albaMatrix can reference a vtkMatrix4x4, i.e. register it and share the same Elements vector, with SetVTKMatrix.
Definition at line 43 of file albaMatrix.h.
albaMatrix::albaMatrix | ( | ) |
|
virtual |
albaMatrix::albaMatrix | ( | const albaMatrix & | mat | ) |
albaMatrix::albaTypeMacro | ( | albaMatrix | , |
albaReferenceCounted | |||
) |
|
virtual |
print debug information for this object
Reimplemented from albaObject.
albaMatrix & albaMatrix::operator= | ( | const albaMatrix & | mat | ) |
bool albaMatrix::operator== | ( | const albaMatrix & | mat | ) | const |
bool albaMatrix::Equals | ( | const albaMatrix * | mat | ) | const |
|
inline |
Definition at line 60 of file albaMatrix.h.
albaMatrixElements albaMatrix::GetElements | ( | ) | const |
return pointer to elements matrix: returned type is a double [4][4] object
Referenced by Adjoint(), Invert(), Multiply4x4(), and Transpose().
|
inline |
Sets the element i,j in the matrix.
Remember to call explicitly Modified when using this function.
Definition at line 88 of file albaMatrix.h.
|
inline |
Returns the element i,j from the matrix.
Definition at line 91 of file albaMatrix.h.
unsigned long albaMatrix::GetMTime | ( | ) | const |
return modification time for this object
void albaMatrix::Modified | ( | ) |
update modification time stamp for this object
Referenced by Adjoint(), Invert(), Multiply4x4(), and Transpose().
|
inline |
Set the TimeStamp for this matrix.
Definition at line 100 of file albaMatrix.h.
References albaEquals().
|
inline |
Definition at line 101 of file albaMatrix.h.
Referenced by albaTransform::SetMatrix().
|
static |
|
inline |
Get the given matrix versor.
Definition at line 106 of file albaMatrix.h.
References GetVersor().
Referenced by GetVersor().
|
inline |
Copy the 3x3 rotation matrix from another 4x4 matrix.
Definition at line 109 of file albaMatrix.h.
References CopyRotation().
Referenced by CopyRotation().
|
static |
Copy the 3x3 rotation matrix from a 4x4 matrix to another.
Static version.
|
inline |
Set all of the elements to zero.
Static version.
Definition at line 114 of file albaMatrix.h.
References Zero().
Referenced by Zero().
|
static |
Set all of the elements to zero.
|
inline |
Set equal to Identity matrix.
Definition at line 119 of file albaMatrix.h.
References Identity().
Referenced by Identity().
|
static |
bool albaMatrix::IsIdentity | ( | ) |
Return true if is an Identity Matrix.
|
inlinestatic |
Matrix Inversion (adapted from Richard Carling in "Graphics Gems," Academic Press, 1990).
static version.
Definition at line 128 of file albaMatrix.h.
References GetElements(), Invert(), and Modified().
|
inline |
Matrix Inversion (adapted from Richard Carling in "Graphics Gems," Academic Press, 1990).
Definition at line 132 of file albaMatrix.h.
References Invert().
Referenced by Invert().
|
static |
Matrix Inversion, (adapted from Richard Carling in "Graphics Gems," Academic Press, 1990).
static version.
|
static |
Matrix determinant.
|
inline |
Definition at line 140 of file albaMatrix.h.
References Determinant().
Referenced by Determinant().
|
static |
Matrix adjoint.
|
inline |
Definition at line 144 of file albaMatrix.h.
References Adjoint(), GetElements(), and Modified().
Referenced by Adjoint().
|
inline |
Definition at line 145 of file albaMatrix.h.
References Adjoint().
Referenced by Adjoint().
|
inlinestatic |
Transpose the matrix and put it into out.
static version.
Definition at line 148 of file albaMatrix.h.
References GetElements(), Modified(), and Transpose().
|
inline |
Transpose the matrix and put it into out.
Definition at line 151 of file albaMatrix.h.
References Transpose().
Referenced by Transpose().
|
static |
Transpose the matrix and put it into out.
static version.
|
inline |
Multiply a homogeneous coordinate by this matrix, i.e.
out = A*in. The in[4] and out[4] can be the same array.
Definition at line 158 of file albaMatrix.h.
References MultiplyPoint().
Referenced by MultiplyPoint().
albaVect3d albaMatrix::MultiplyPoint | ( | albaVect3d | point | ) |
Multiply an albaVect3d to this matrix, i.e.
out = A*in.
|
static |
Multiply a homogeneous coordinate by this matrix, i.e.
out = A*in. The in[4] and out[4] can be the same array.
|
inlinestatic |
Multiplies matrices a and b and stores the result in c.
Definition at line 173 of file albaMatrix.h.
References GetElements(), Modified(), and Multiply4x4().
Referenced by Multiply4x4().
|
static |
Multiplies matrices a and b and stores the result in c.
this works with arrays.
|
inline |
bracket operator to access & write single elements
Definition at line 180 of file albaMatrix.h.
|
inline |
bracket operator to access single elements
Definition at line 183 of file albaMatrix.h.
|
inline |
Definition at line 186 of file albaMatrix.h.
|
static |
Multiply a homogeneous coordinate by this matrix, i.e.
out = in*A. The in[4] and out[4] can be the same array.
|
static |
Multiply a homogeneous coordinate by this matrix, i.e.
out = in*A. The in[4] and out[4] can be the same array.
void albaMatrix::SetFromDirectionCosines | ( | const double | orientation[6] | ) |
|
protected |
Definition at line 205 of file albaMatrix.h.
|
protected |
has its own internal representation
Definition at line 210 of file albaMatrix.h.
|
protected |
Definition at line 211 of file albaMatrix.h.