29 #ifndef vtkMatrix3x3_h
30 #define vtkMatrix3x3_h
61 static void DeepCopy(
double Elements[9],
const double newElements[9]);
76 static void Zero(
double Elements[9]);
85 static void Identity(
double Elements[9]);
97 static void Invert(
const double inElements[9],
double outElements[9]);
109 static void Transpose(
const double inElements[9],
double outElements[9]);
123 static void MultiplyPoint(
const double Elements[9],
124 const float in[3],
float out[3]);
125 static void MultiplyPoint(
const double Elements[9],
126 const double in[3],
double out[3]);
134 static void Multiply3x3(
const double a[9],
const double b[9],
144 static void Adjoint(
const double inElements[9],
double outElements[9]);
152 static double Determinant(
const double Elements[9]);
157 void SetElement(
int i,
int j,
double value);
162 {
return this->Element[i][j];}
167 {
return &(this->Element[i][0]);}
169 {
return &(this->Element[i][0]); }
173 {this->Adjoint(&in,&out);}
175 {
return this->Determinant(&in);}
179 {this->Invert(&in,&out);}
181 {this->Transpose(&in,&out);}
182 static void PointMultiply(
const double Elements[9],
183 const float in[3],
float out[3]);
184 static void PointMultiply(
const double Elements[9],
185 const double in[3],
double out[3]);
200 double Element[3][3];
210 if (this->
Element[i][j] != value)
220 if (M[0] == 1.0 && M[4] == 1.0 && M[8] == 1.0 &&
221 M[1] == 0.0 && M[2] == 0.0 && M[3] == 0.0 && M[5] == 0.0 &&
222 M[6] == 0.0 && M[7] == 0.0)
234 for (
int i = 0; i < 3; ++i)
236 for (
int j = 0; j < 3; ++j)
249 for (
int i = 0; i < 3; ++i)
251 for (
int j = 0; j < 3; ++j)
void DeepCopy(vtkMatrix3x3 *source)
void Adjoint(vtkMatrix3x3 *in, vtkMatrix3x3 *out)
bool operator!=(const vtkMatrix3x3 &)
abstract base class for most VTK objects
void DeepCopy(const double Elements[9])
void Transpose(vtkMatrix3x3 &in, vtkMatrix3x3 &out)
void Invert(vtkMatrix3x3 &in, vtkMatrix3x3 &out)
const double * operator[](unsigned int i) const
static void Transpose(vtkMatrix3x3 *in, vtkMatrix3x3 *out)
static void DeepCopy(double Elements[9], vtkMatrix3x3 *source)
void DeepCopy(vtkPistonReference *self, vtkPistonReference *other)
static void Multiply3x3(vtkMatrix3x3 *a, vtkMatrix3x3 *b, vtkMatrix3x3 *c)
double GetElement(int i, int j) const
void Adjoint(vtkMatrix3x3 &in, vtkMatrix3x3 &out)
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
double Determinant(vtkMatrix3x3 *in)
void SetElement(int i, int j, double value)
double * operator[](const unsigned int i)
bool operator==(const vtkMatrix3x3 &)
double Determinant(vtkMatrix3x3 &in)
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
VTKCOMMONCORE_EXPORT bool operator!=(const vtkUnicodeString &lhs, const vtkUnicodeString &rhs)
static void Invert(vtkMatrix3x3 *in, vtkMatrix3x3 *out)
VTKCOMMONCORE_EXPORT bool operator==(const vtkUnicodeString &lhs, const vtkUnicodeString &rhs)
void MultiplyPoint(const float in[3], float out[3])
represent and manipulate 3x3 transformation matrices
void MultiplyPoint(const double in[3], double out[3])
#define VTKCOMMONMATH_EXPORT