47 virtual void Print(std::ostream& os,
const int indent=0)
const;
71 void DeepCopy(vtkMatrix4x4 *mat);
74 vtkMatrix4x4 *GetVTKMatrix()
const {
return m_VTKMatrix;}
88 void SetElement(
const int i,
const int j,
double value) {GetElements()[i][j]=value;Modified();}
91 double GetElement(
const int i,
const int j)
const {
return GetElements()[i][j];}
116 static void Zero(
double elements[16]);
136 static void Invert(
const double inElements[16],
double outElements[16]);
143 static void Adjoint(
const double inElements[16],
double outElements[16]);
153 static void Transpose(
const double inElements[16],
double outElements[16]);
170 const double in[4],
double out[4]);
180 double *
operator[](
const unsigned int i) {
return &(GetElements()[i][0]);Modified();}
183 const double *
operator[](
unsigned int i)
const {
return &(GetElements()[i][0]); }
186 operator vtkMatrix4x4*()
const {
187 return GetVTKMatrix();
196 const float in[4],
float out[4]);
201 const double in[4],
double out[4]);
208 vtkMatrix4x4 *m_VTKMatrix;
210 double m_Elements[4][4];
ALBA_EXPORT bool albaEquals(double x, double y)
reliable comparison test for floating point numbers.
double albaTimeStamp
type for time varying data timestamps (not for pipelines timestamps!)
double(* albaMatrixElements)[4]
bool operator==(const albaAutoPointer< T > &l, const albaAutoPointer< T > &r)
albaMTime - record modification timestamp.
albaMatrix - Time stamped 4x4 Matrix.
static void MultiplyPoint(const double Elements[16], const double in[4], double out[4])
Multiply a homogeneous coordinate by this matrix, i.e.
void Zero()
Set all of the elements to zero.
void Adjoint(const albaMatrix &inMat, albaMatrix &outMat)
unsigned long GetMTime() const
return modification time for this object
static void Adjoint(const double inElements[16], double outElements[16])
Matrix adjoint.
static void Identity(double elements[16])
bool IsIdentity()
Return true if is an Identity Matrix.
albaMatrixElements GetElements() const
return pointer to elements matrix: returned type is a double [4][4] object
static void Transpose(const double inElements[16], double outElements[16])
Transpose the matrix and put it into out.
void SetFromDirectionCosines(const double orientation[6])
void CopyRotation(const albaMatrix &source)
Copy the 3x3 rotation matrix from another 4x4 matrix.
virtual void Print(std::ostream &os, const int indent=0) const
print debug information for this object
static void Invert(const double inElements[16], double outElements[16])
Matrix Inversion, (adapted from Richard Carling in "Graphics Gems," Academic Press,...
void Identity()
Set equal to Identity matrix.
double GetElement(const int i, const int j) const
Returns the element i,j from the matrix.
void Transpose()
Transpose the matrix and put it into out.
static void Zero(double elements[16])
Set all of the elements to zero.
albaTimeStamp m_TimeStamp
void DeepCopy(const albaMatrix *mat)
albaMatrix * Invert()
Matrix Inversion (adapted from Richard Carling in "Graphics Gems," Academic Press,...
static void PointMultiply(const double Elements[16], const double in[4], double out[4])
Multiply a homogeneous coordinate by this matrix, i.e.
void SetTimeStamp(albaTimeStamp t)
Set the TimeStamp for this matrix.
static void Multiply4x4(const double a[16], const double b[16], double c[16])
Multiplies matrices a and b and stores the result in c.
static void PointMultiply(const double Elements[16], const float in[4], float out[4])
Multiply a homogeneous coordinate by this matrix, i.e.
albaVect3d MultiplyPoint(albaVect3d point)
Multiply an albaVect3d to this matrix, i.e.
bool operator==(const albaMatrix &mat) const
bool Equals(const albaMatrix *mat) const
albaMatrix & operator=(const albaMatrix &mat)
static double Determinant(const double Elements[16])
Matrix determinant.
void Modified()
update modification time stamp for this object
static void CopyRotation(const albaMatrix &source, albaMatrix &target)
Copy the 3x3 rotation matrix from a 4x4 matrix to another.
const double * operator[](unsigned int i) const
bracket operator to access single elements
double Determinant() const
static void Invert(const albaMatrix &in, albaMatrix &out)
Matrix Inversion (adapted from Richard Carling in "Graphics Gems," Academic Press,...
static void GetVersor(const int axis, const albaMatrix &matrix, double versor[3])
Get the given matrix versor.
static void Multiply4x4(const albaMatrix &a, const albaMatrix &b, albaMatrix &c)
Multiplies matrices a and b and stores the result in c.
albaTimeStamp GetTimeStamp() const
void MultiplyPoint(const double in[4], double out[4]) const
Multiply a homogeneous coordinate by this matrix, i.e.
static void Transpose(const albaMatrix &in, albaMatrix &out)
Transpose the matrix and put it into out.
albaMatrix(const albaMatrix &mat)
void GetVersor(const int axis, double versor[3]) const
Get the given matrix versor.
void SetElement(const int i, const int j, double value)
Sets the element i,j in the matrix.
double * operator[](const unsigned int i)
bracket operator to access & write single elements
albaTypeMacro(albaMatrix, albaReferenceCounted)
albaReferenceCounted - abstract base class for ALBA objects with reference counting.