32 #ifndef __vtkMatrix4x4_h
33 #define __vtkMatrix4x4_h
65 static void DeepCopy(
double Elements[16],
const double newElements[16]);
72 { this->DeepCopy(*this->Element,Elements); this->
Modified(); }
80 static void Zero(
double Elements[16]);
89 static void Identity(
double Elements[16]);
101 static void Invert(
const double inElements[16],
double outElements[16]);
113 static void Transpose(
const double inElements[16],
double outElements[16]);
127 static void MultiplyPoint(
const double Elements[16],
128 const float in[4],
float out[4]);
129 static void MultiplyPoint(
const double Elements[16],
130 const double in[4],
double out[4]);
137 {
return this->MultiplyFloatPoint(in); }
139 {this->MultiplyPoint(in,this->FloatPoint);
return this->FloatPoint; }
141 {this->MultiplyPoint(in,this->DoublePoint);
return this->DoublePoint; }
149 static void Multiply4x4(
const double a[16],
const double b[16],
159 static void Adjoint(
const double inElements[16],
double outElements[16]);
167 static double Determinant(
const double Elements[16]);
172 void SetElement(
int i,
int j,
double value);
177 {
return this->Element[i][j];}
182 {
return &(this->Element[i][0]);}
184 {
return &(this->Element[i][0]); }
186 {this->Adjoint(&in,&out);}
188 {
return this->Determinant(&in);}
192 {this->Invert(&in,&out);}
194 {this->Transpose(&in,&out);}
195 static void PointMultiply(
const double Elements[16],
196 const float in[4],
float out[4]);
197 static void PointMultiply(
const double Elements[16],
198 const double in[4],
double out[4]);
206 double DoublePoint[4];
214 if (this->
Element[i][j] != value)