9 #include <aliceVision/mvsData/Point2d.hpp>
10 #include <aliceVision/mvsData/Point3d.hpp>
12 #include <boost/math/constants/constants.hpp>
25 double m11, m12, m13, m21, m22, m23, m31, m32, m33;
45 inline Matrix3x3 operator-(
double d)
const
61 inline Matrix3x3 operator/(
double d)
const
112 m.m11 = m11 * _m.m11 + m12 * _m.m21 + m13 * _m.m31;
113 m.m12 = m11 * _m.m12 + m12 * _m.m22 + m13 * _m.m32;
114 m.m13 = m11 * _m.m13 + m12 * _m.m23 + m13 * _m.m33;
116 m.m21 = m21 * _m.m11 + m22 * _m.m21 + m23 * _m.m31;
117 m.m22 = m21 * _m.m12 + m22 * _m.m22 + m23 * _m.m32;
118 m.m23 = m21 * _m.m13 + m22 * _m.m23 + m23 * _m.m33;
120 m.m31 = m31 * _m.m11 + m32 * _m.m21 + m33 * _m.m31;
121 m.m32 = m31 * _m.m12 + m32 * _m.m22 + m33 * _m.m32;
122 m.m33 = m31 * _m.m13 + m32 * _m.m23 + m33 * _m.m33;
130 p.x = m11 * _p.x + m12 * _p.y + m13;
131 p.y = m21 * _p.x + m22 * _p.y + m23;
132 p.z = m31 * _p.x + m32 * _p.y + m33;
146 p.x = m11 * _p.x + m12 * _p.y + m13 * _p.z;
147 p.y = m21 * _p.x + m22 * _p.y + m23 * _p.z;
148 p.z = m31 * _p.x + m32 * _p.y + m33 * _p.z;
168 inline double deteminant()
const
170 return m11 * m22 * m33 - m11 * m23 * m32 - m12 * m21 * m33 + m12 * m23 * m31 + m13 * m21 * m32 - m13 * m22 * m31;
173 inline bool isSingular()
const {
return (deteminant() == 0.0f); }
175 inline double det()
const {
return m11 * (m33 * m22 - m32 * m23) - m21 * (m33 * m12 - m32 * m13) + m31 * (m23 * m12 - m22 * m13); }
188 return inverse() * b;
190 throw std::runtime_error(
"Matrix is singular.");
231 Point3d u2 = a2 - proj(e1, a2);
233 Point3d u3 = a3 - proj(e1, a3) - proj(e2, a3);
272 if ((fabs(dt) < 0.00000001f) || std::isnan(dt))
277 m.m11 = (m33 * m22 - m32 * m23) / dt;
278 m.m12 = -(m33 * m12 - m32 * m13) / dt;
279 m.m13 = (m23 * m12 - m22 * m13) / dt;
280 m.m21 = -(m33 * m21 - m31 * m23) / dt;
281 m.m22 = (m33 * m11 - m31 * m13) / dt;
282 m.m23 = -(m23 * m11 - m21 * m13) / dt;
283 m.m31 = (m32 * m21 - m31 * m22) / dt;
284 m.m32 = -(m32 * m11 - m31 * m12) / dt;
285 m.m33 = (m22 * m11 - m21 * m12) / dt;
326 inline Matrix3x3 diag3x3(
double d1,
double d2,
double d3)