3 x 3 matrix
More...
#include <JMatrix3D.hh>
|
| JMatrix3D () |
| Default constructor.
|
|
| JMatrix3D (const double __a00, const double __a01, const double __a02, const double __a10, const double __a11, const double __a12, const double __a20, const double __a21, const double __a22) |
| Contructor.
|
|
JMatrix3D & | setIdentity () |
| Set to identity matrix.
|
|
void | set (const JMatrix3D &A) |
| Set matrix.
|
|
JMatrix3D & | reset () |
| Set matrix to the null matrix.
|
|
JMatrix3D & | transpose () |
| Transpose.
|
|
JMatrix3D & | negate () |
| Negate matrix.
|
|
JMatrix3D & | add (const JMatrix3D &A) |
| Matrix addition.
|
|
JMatrix3D & | sub (const JMatrix3D &A) |
| Matrix subtraction.
|
|
JMatrix3D & | mul (const double factor) |
| Scale matrix.
|
|
JMatrix3D & | div (const double factor) |
| Scale matrix.
|
|
JMatrix3D & | mul (const JMatrix3D &A, const JMatrix3D &B) |
| Matrix multiplication.
|
|
bool | equals (const JMatrix3D &A, const double eps=std::numeric_limits< double >::min()) const |
| Equality.
|
|
bool | isIdentity (const double eps=std::numeric_limits< double >::min()) const |
| Test identity.
|
|
double | getDeterminant () const |
| Get determinant of matrix.
|
|
void | transform (double &__x, double &__y, double &__z) const |
| Transform.
|
|
JMatrix3D & | mul (const JSecond_t &object) |
| Multiply with object.
|
|
3 x 3 matrix
Definition at line 32 of file JMath/JMatrix3D.hh.
◆ JMatrix3D() [1/2]
JMATH::JMatrix3D::JMatrix3D |
( |
| ) |
|
|
inline |
◆ JMatrix3D() [2/2]
JMATH::JMatrix3D::JMatrix3D |
( |
const double | __a00, |
|
|
const double | __a01, |
|
|
const double | __a02, |
|
|
const double | __a10, |
|
|
const double | __a11, |
|
|
const double | __a12, |
|
|
const double | __a20, |
|
|
const double | __a21, |
|
|
const double | __a22 ) |
|
inline |
Contructor.
- Parameters
-
__a00 | (0,0) |
__a01 | (0,1) |
__a02 | (0,2) |
__a10 | (1,0) |
__a11 | (1,1) |
__a12 | (1,2) |
__a20 | (2,0) |
__a21 | (2,1) |
__a22 | (2,2) |
Definition at line 64 of file JMath/JMatrix3D.hh.
◆ getInstance()
static const JMatrix3D & JMATH::JMatrix3D::getInstance |
( |
| ) |
|
|
inlinestatic |
Get reference to unique instance of this class object.
- Returns
- zero matrix
Definition at line 78 of file JMath/JMatrix3D.hh.
79 {
81
82 return matrix;
83 }
JMatrix3D()
Default constructor.
◆ setIdentity()
JMatrix3D & JMATH::JMatrix3D::setIdentity |
( |
| ) |
|
|
inline |
Set to identity matrix.
- Returns
- this matrix
Definition at line 91 of file JMath/JMatrix3D.hh.
92 {
96
97 return *this;
98 }
◆ getIdentity()
static const JMatrix3D & JMATH::JMatrix3D::getIdentity |
( |
| ) |
|
|
inlinestatic |
Get reference to unique instance of this class object.
- Returns
- identity matrix
Definition at line 106 of file JMath/JMatrix3D.hh.
107 {
109
110 return matrix;
111 }
JMatrix3D & setIdentity()
Set to identity matrix.
◆ set()
void JMATH::JMatrix3D::set |
( |
const JMatrix3D & | A | ) |
|
|
inline |
◆ reset()
Set matrix to the null matrix.
- Returns
- this matrix
Definition at line 130 of file JMath/JMatrix3D.hh.
131 {
133
134 return *this;
135 }
◆ transpose()
Transpose.
- Returns
- this matrix
Definition at line 143 of file JMath/JMatrix3D.hh.
144 {
145 using std::swap;
146
150
151 return *this;
152 }
◆ negate()
Negate matrix.
- Returns
- -this matrix
Definition at line 160 of file JMath/JMatrix3D.hh.
161 {
165
166 return *this;
167 }
◆ add()
Matrix addition.
- Parameters
-
- Returns
- this matrix + A
Definition at line 176 of file JMath/JMatrix3D.hh.
177 {
178 a00 += A.a00;
a01 += A.a01;
a02 += A.a02;
179 a10 += A.a10;
a11 += A.a11;
a12 += A.a12;
180 a20 += A.a20;
a21 += A.a21;
a22 += A.a22;
181
182 return *this;
183 }
◆ sub()
Matrix subtraction.
- Parameters
-
- Returns
- this matrix - A
Definition at line 192 of file JMath/JMatrix3D.hh.
193 {
194 a00 -= A.a00;
a01 -= A.a01;
a02 -= A.a02;
195 a10 -= A.a10;
a11 -= A.a11;
a12 -= A.a12;
196 a20 -= A.a20;
a21 -= A.a21;
a22 -= A.a22;
197
198 return *this;
199 }
◆ mul() [1/3]
JMatrix3D & JMATH::JMatrix3D::mul |
( |
const double | factor | ) |
|
|
inline |
Scale matrix.
- Parameters
-
- Returns
- this matrix * factor
Definition at line 208 of file JMath/JMatrix3D.hh.
209 {
210 a00 *= factor;
a01 *= factor;
a02 *= factor;
211 a10 *= factor;
a11 *= factor;
a12 *= factor;
212 a20 *= factor;
a21 *= factor;
a22 *= factor;
213
214 return *this;
215 }
◆ div()
JMatrix3D & JMATH::JMatrix3D::div |
( |
const double | factor | ) |
|
|
inline |
Scale matrix.
- Parameters
-
- Returns
- this matrix / factor
Definition at line 224 of file JMath/JMatrix3D.hh.
225 {
226 a00 /= factor;
a01 /= factor;
a02 /= factor;
227 a10 /= factor;
a11 /= factor;
a12 /= factor;
228 a20 /= factor;
a21 /= factor;
a22 /= factor;
229
230 return *this;
231 }
◆ mul() [2/3]
Matrix multiplication.
- Parameters
-
- Returns
- this matrix
Definition at line 241 of file JMath/JMatrix3D.hh.
243 {
244 a00 = A.a00 * B.a00 + A.a01 * B.a10 + A.a02 * B.a20;
245 a01 = A.a00 * B.a01 + A.a01 * B.a11 + A.a02 * B.a21;
246 a02 = A.a00 * B.a02 + A.a01 * B.a12 + A.a02 * B.a22;
247
248 a10 = A.a10 * B.a00 + A.a11 * B.a10 + A.a12 * B.a20;
249 a11 = A.a10 * B.a01 + A.a11 * B.a11 + A.a12 * B.a21;
250 a12 = A.a10 * B.a02 + A.a11 * B.a12 + A.a12 * B.a22;
251
252 a20 = A.a20 * B.a00 + A.a21 * B.a10 + A.a22 * B.a20;
253 a21 = A.a20 * B.a01 + A.a21 * B.a11 + A.a22 * B.a21;
254 a22 = A.a20 * B.a02 + A.a21 * B.a12 + A.a22 * B.a22;
255
256 return *this;
257 }
◆ equals()
bool JMATH::JMatrix3D::equals |
( |
const JMatrix3D & | A, |
|
|
const double | eps = std::numeric_limits<double>::min() ) const |
|
inline |
Equality.
- Parameters
-
A | matrix |
eps | numerical precision |
- Returns
- true if matrices identical; else false
Definition at line 267 of file JMath/JMatrix3D.hh.
269 {
270 return (fabs(
a00 - A.a00) <= eps &&
271 fabs(
a01 - A.a01) <= eps &&
272 fabs(
a02 - A.a02) <= eps &&
273 fabs(
a10 - A.a10) <= eps &&
274 fabs(
a11 - A.a11) <= eps &&
275 fabs(
a12 - A.a12) <= eps &&
276 fabs(
a20 - A.a20) <= eps &&
277 fabs(
a21 - A.a21) <= eps &&
278 fabs(
a22 - A.a22) <= eps);
279 }
◆ isIdentity()
bool JMATH::JMatrix3D::isIdentity |
( |
const double | eps = std::numeric_limits<double>::min() | ) |
const |
|
inline |
Test identity.
- Parameters
-
- Returns
- true if identity matrix; else false
Definition at line 288 of file JMath/JMatrix3D.hh.
289 {
291 }
static const JMatrix3D & getIdentity()
Get reference to unique instance of this class object.
bool equals(const JMatrix3D &A, const double eps=std::numeric_limits< double >::min()) const
Equality.
◆ getDeterminant()
double JMATH::JMatrix3D::getDeterminant |
( |
| ) |
const |
|
inline |
Get determinant of matrix.
- Returns
- determinant of matrix
Definition at line 299 of file JMath/JMatrix3D.hh.
300 {
301 double det = 0.0;
302
306
307 return det;
308 }
◆ transform()
void JMATH::JMatrix3D::transform |
( |
double & | __x, |
|
|
double & | __y, |
|
|
double & | __z ) const |
|
inline |
Transform.
- Parameters
-
__x | x value |
__y | y value |
__z | z value |
Definition at line 318 of file JMath/JMatrix3D.hh.
319 {
320 const double x =
a00 * __x +
a01 * __y +
a02 * __z;
321 const double y =
a10 * __x +
a11 * __y +
a12 * __z;
322 const double z =
a20 * __x +
a21 * __y +
a22 * __z;
323
326 __z = z;
327 }
◆ mul() [3/3]
Multiply with object.
- Parameters
-
- Returns
- result object
Definition at line 354 of file JMath.hh.
355 {
356 return static_cast<JFirst_t&>(*this) = JFirst_t().mul(static_cast<const JFirst_t&>(*this), object);
357 }
◆ operator>>
Read matrix from input.
- Parameters
-
- Returns
- reader
Definition at line 337 of file JMath/JMatrix3D.hh.
338 {
339 in >> matrix.a00; in >> matrix.a01; in >> matrix.a02;
340 in >> matrix.a10; in >> matrix.a11; in >> matrix.a12;
341 in >> matrix.a20; in >> matrix.a21; in >> matrix.a22;
342
343 return in;
344 }
◆ operator<< [1/2]
Write matrix to output.
- Parameters
-
- Returns
- writer
Definition at line 354 of file JMath/JMatrix3D.hh.
355 {
356 out << matrix.a00; out << matrix.a01; out << matrix.a02;
357 out << matrix.a10; out << matrix.a11; out << matrix.a12;
358 out << matrix.a20; out << matrix.a21; out << matrix.a22;
359
360 return out;
361 }
◆ operator<< [2/2]
std::ostream & operator<< |
( |
std::ostream & | out, |
|
|
const JMatrix3D & | A ) |
|
friend |
Print ASCII formatted output.
- Parameters
-
- Returns
- output stream
Definition at line 371 of file JMath/JMatrix3D.hh.
372 {
374
376
377 out << format << A.a00 << ' ' << format << A.a01 << ' ' << format << A.a02 << endl;
378 out << format << A.a10 << ' ' << format << A.a11 << ' ' << format << A.a12 << endl;
379 out << format << A.a20 << ' ' << format << A.a21 << ' ' << format << A.a22 << endl;
380
381 return out;
382 }
JFormat_t & getFormat()
Get format for given type.
◆ a00
double JMATH::JMatrix3D::a00 |
◆ a01
double JMATH::JMatrix3D::a01 |
◆ a02
double JMATH::JMatrix3D::a02 |
◆ a10
double JMATH::JMatrix3D::a10 |
◆ a11
double JMATH::JMatrix3D::a11 |
◆ a12
double JMATH::JMatrix3D::a12 |
◆ a20
double JMATH::JMatrix3D::a20 |
◆ a21
double JMATH::JMatrix3D::a21 |
◆ a22
double JMATH::JMatrix3D::a22 |
The documentation for this class was generated from the following file: