71 inline Sg3dMatrix(
double a00,
double a01,
double a02,
72 double a10,
double a11,
double a12,
73 double a20,
double a21,
double a22);
100 inline double module()
const;
185 mat[0][0]=1.0;
mat[0][1]=0.0;
mat[0][2]=0.0;
186 mat[1][0]=0.0;
mat[1][1]=1.0;
mat[1][2]=0.0;
187 mat[2][0]=0.0;
mat[2][1]=0.0;
mat[2][2]=1.0;
198 double a10,
double a11,
double a12,
199 double a20,
double a21,
double a22)
201 mat[0][0]=a00;
mat[0][1]=a01;
mat[0][2]=a02;
202 mat[1][0]=a10;
mat[1][1]=a11;
mat[1][2]=a12;
203 mat[2][0]=a20;
mat[2][1]=a21;
mat[2][2]=a22;
239 mat[0][0]*=v;
mat[0][1]*=v;
mat[0][2]*=v;
240 mat[1][0]*=v;
mat[1][1]*=v;
mat[1][2]*=v;
241 mat[2][0]*=v;
mat[2][1]*=v;
mat[2][2]*=v;
247 mat[0][0]/=v;
mat[0][1]/=v;
mat[0][2]/=v;
248 mat[1][0]/=v;
mat[1][1]/=v;
mat[1][2]/=v;
249 mat[2][0]/=v;
mat[2][1]/=v;
mat[2][2]/=v;
279 M.
mat[0][0] = -M1.
mat[0][0];
280 M.
mat[0][1] = -M1.
mat[0][1];
281 M.
mat[0][2] = -M1.
mat[0][2];
283 M.
mat[1][0] = -M1.
mat[1][0];
284 M.
mat[1][1] = -M1.
mat[1][1];
285 M.
mat[1][2] = -M1.
mat[1][2];
287 M.
mat[2][0] = -M1.
mat[2][0];
288 M.
mat[2][1] = -M1.
mat[2][1];
289 M.
mat[2][2] = -M1.
mat[2][2];
295 M.
mat[0][0]+= M2.
mat[0][0];
296 M.
mat[0][1]+= M2.
mat[0][1];
297 M.
mat[0][2]+= M2.
mat[0][2];
299 M.
mat[1][0]+= M2.
mat[1][0];
300 M.
mat[1][1]+= M2.
mat[1][1];
301 M.
mat[1][2]+= M2.
mat[1][2];
303 M.
mat[2][0]+= M2.
mat[2][0];
304 M.
mat[2][1]+= M2.
mat[2][1];
305 M.
mat[2][2]+= M2.
mat[2][2];
312 M.
mat[0][0]-= M2.
mat[0][0];
313 M.
mat[0][1]-= M2.
mat[0][1];
314 M.
mat[0][2]-= M2.
mat[0][2];
316 M.
mat[1][0]-= M2.
mat[1][0];
317 M.
mat[1][1]-= M2.
mat[1][1];
318 M.
mat[1][2]-= M2.
mat[1][2];
320 M.
mat[2][0]-= M2.
mat[2][0];
321 M.
mat[2][1]-= M2.
mat[2][1];
322 M.
mat[2][2]-= M2.
mat[2][2];
329 M.
mat[0][0]/=v2; M.
mat[0][1]/=v2; M.
mat[0][2]/=v2;
330 M.
mat[1][0]/=v2; M.
mat[1][1]/=v2; M.
mat[1][2]/=v2;
331 M.
mat[2][0]/=v2; M.
mat[2][1]/=v2; M.
mat[2][2]/=v2;
338 M.
mat[0][0]*=v1; M.
mat[0][1]*=v1; M.
mat[0][2]*=v1;
339 M.
mat[1][0]*=v1; M.
mat[1][1]*=v1; M.
mat[1][2]*=v1;
340 M.
mat[2][0]*=v1; M.
mat[2][1]*=v1; M.
mat[2][2]*=v1;
360 s <<
"|" << M.
mat[0][0] <<
", " << M.
mat[0][1] <<
", " << M.
mat[0][2] <<
"|" << std::endl;
361 s <<
"|" << M.
mat[1][0] <<
", " << M.
mat[1][1] <<
", " << M.
mat[1][2] <<
"|" << std::endl;
362 s <<
"|" << M.
mat[2][0] <<
", " << M.
mat[2][1] <<
", " << M.
mat[2][2] <<
"|" << std::endl;
Sg3dMatrix operator+(const Sg3dMatrix &M1, const Sg3dMatrix &M2)
Sg3dMatrix operator-(const Sg3dMatrix &M1)
Sg3dMatrix operator*(double v1, const Sg3dMatrix &M2)
std::ostream & operator<<(std::ostream &s, const Sg3dMatrix &M)
Sg3dMatrix operator/(const Sg3dMatrix &M1, double v2)
Sg3dMatrix & operator-=(const Sg3dMatrix &)
double mat[3][3]
The 3x3 array that is storing elements of a matrix.
friend Sg3dMatrix operator~(const Sg3dMatrix &)
friend std::ostream & operator<<(std::ostream &s, const Sg3dMatrix &M)
Sg3dMatrix & operator*=(double)
friend Sg3dMatrix operator*(const Sg3dMatrix &, double)
Sg3dMatrix & operator+=(const Sg3dMatrix &)
double & operator()(DIRECTION i, DIRECTION j)
double at(DIRECTION i, DIRECTION j) const
Sg3dMatrix & operator/=(double)
Sg3dMatrix & operator=(const Sg3dMatrix &)
friend Sg3dMatrix operator+(const Sg3dMatrix &, const Sg3dMatrix &)
friend Sg3dMatrix operator-(const Sg3dMatrix &, const Sg3dMatrix &)
friend Sg3dMatrix operator/(const Sg3dMatrix &, double)
double vec[3]
An array of 3 elements, stores elements of a vector.
double at(DIRECTION i) const