Go to the documentation of this file.
32 #ifndef vtkMatrix4x4_h
33 #define vtkMatrix4x4_h
66 static void DeepCopy(
double Elements[16],
const double newElements[16]);
81 static void Zero(
double Elements[16]);
102 static void Invert(
const double inElements[16],
double outElements[16]);
114 static void Transpose(
const double inElements[16],
double outElements[16]);
129 const float in[4],
float out[4]);
131 const double in[4],
double out[4]);
138 {
return this->MultiplyFloatPoint(
in); }
140 {this->MultiplyPoint(
in,this->FloatPoint);
return this->FloatPoint; }
142 {this->MultiplyPoint(
in,this->DoublePoint);
return this->DoublePoint; }
150 static void Multiply4x4(
const double a[16],
const double b[16],
160 static void Adjoint(
const double inElements[16],
double outElements[16]);
173 void SetElement(
int i,
int j,
double value);
178 {
return this->Element[i][j];}
183 {
return &(this->Element[i][0]);}
185 {
return &(this->Element[i][0]); }
187 {this->Adjoint(&
in,&out);}
189 {
return this->Determinant(&
in);}
193 {this->Invert(&
in,&out);}
195 {this->Transpose(&
in,&out);}
197 const float in[4],
float out[4]);
199 const double in[4],
double out[4]);
207 double DoublePoint[4];
210 typedef double (*SqMatPtr)[4];
211 typedef const double (*ConstSqMatPtr)[4];
222 ConstSqMatPtr aMat =
reinterpret_cast<ConstSqMatPtr
>(
a);
223 ConstSqMatPtr bMat =
reinterpret_cast<ConstSqMatPtr
>(
b);
226 SqMatPtr cMat =
reinterpret_cast<SqMatPtr
>(tmp);
228 for (
int i = 0; i < 4; i++)
230 for (
int k = 0; k < 4; k++)
232 cMat[i][k] = aMat[i][0] * bMat[0][k] +
233 aMat[i][1] * bMat[1][k] +
234 aMat[i][2] * bMat[2][k] +
235 aMat[i][3] * bMat[3][k];
240 memcpy(
c, tmp, 16 *
sizeof(
double));
void SetElement(int i, int j, double value)
void DeepCopy(vtkPistonReference *self, vtkPistonReference *other)
void DeepCopy(const vtkMatrix4x4 *source)
double Determinant(vtkMatrix4x4 *in)
GLboolean GLboolean GLboolean b
static void Identity(double Elements[16])
double Determinant(vtkMatrix4x4 &in)
void DeepCopy(const double Elements[16])
static void MultiplyPoint(const double Elements[16], const double in[4], double out[4])
float * MultiplyPoint(const float in[4])
double GetElement(int i, int j) const
#define vtkTypeMacro(thisClass, superclass)
void MultiplyPoint(const double in[4], double out[4])
abstract base class for most VTK objects
static void Adjoint(const double inElements[16], double outElements[16])
static void DeepCopy(double Elements[16], const vtkMatrix4x4 *source)
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
static vtkMatrix4x4 * New()
void Invert(vtkMatrix4x4 &in, vtkMatrix4x4 &out)
static void MultiplyPoint(const double Elements[16], const float in[4], float out[4])
const double * operator[](unsigned int i) const
GLsizei const GLfloat * value
void Adjoint(const vtkMatrix4x4 *in, vtkMatrix4x4 *out)
void Adjoint(vtkMatrix4x4 &in, vtkMatrix4x4 &out)
static void PointMultiply(const double Elements[16], const double in[4], double out[4])
static void Zero(double Elements[16])
void MultiplyPoint(const float in[4], float out[4])
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
void Transpose(vtkMatrix4x4 &in, vtkMatrix4x4 &out)
static void Invert(const double inElements[16], double outElements[16])
#define VTKCOMMONMATH_EXPORT
void PrintSelf(ostream &os, vtkIndent indent)
float * MultiplyFloatPoint(const float in[4])
GLboolean GLboolean GLboolean GLboolean a
double * operator[](const unsigned int i)
static void Multiply4x4(const vtkMatrix4x4 *a, const vtkMatrix4x4 *b, vtkMatrix4x4 *c)
static double Determinant(const double Elements[16])
static void Invert(const vtkMatrix4x4 *in, vtkMatrix4x4 *out)
static void PointMultiply(const double Elements[16], const float in[4], float out[4])
static void Transpose(const double inElements[16], double outElements[16])
double * MultiplyDoublePoint(const double in[4])
static void DeepCopy(double Elements[16], const double newElements[16])
static void Transpose(const vtkMatrix4x4 *in, vtkMatrix4x4 *out)