48 virtual void Print(std::ostream& os,
const int indent=0)
const;
72 void DeepCopy(vtkMatrix4x4 *mat);
75 vtkMatrix4x4 *GetVTKMatrix()
const {
return m_VTKMatrix;}
89 void SetElement(
const int i,
const int j,
double value) {GetElements()[i][j]=value;Modified();}
92 double GetElement(
const int i,
const int j)
const {
return GetElements()[i][j];}
117 static void Zero(
double elements[16]);
137 static void Invert(
const double inElements[16],
double outElements[16]);
144 static void Adjoint(
const double inElements[16],
double outElements[16]);
154 static void Transpose(
const double inElements[16],
double outElements[16]);
171 const double in[4],
double out[4]);
181 double *
operator[](
const unsigned int i) {
return &(GetElements()[i][0]);Modified();}
184 const double *
operator[](
unsigned int i)
const {
return &(GetElements()[i][0]); }
187 operator vtkMatrix4x4*()
const {
188 return GetVTKMatrix();
197 const float in[4],
float out[4]);
202 const double in[4],
double out[4]);
209 vtkMatrix4x4 *m_VTKMatrix;
211 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)
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])
vtkMTimeType GetMTime() const
return modification time for this object
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.