26 #include "HomgPoint3DCov.hh"
27 #include <Base/Geometry/HomgPoint3D.hh>
28 #include <Base/Math/Matrix3x3.hh>
29 #include <Base/Debug/Exception.hh>
99 J[0][0] = J[1][1] = J[2][2] = 1.0/p[3];
100 J[0][3] = -p[0]/p[3]/p[3];
101 J[1][3] = -p[1]/p[3]/p[3];
102 J[2][3] = -p[2]/p[3]/p[3];
107 cout << __FILE__<<
":"<<__LINE__<<
" p "<<p<<
" at infinity, doing nothing\n";
116 BEXCEPTION(
"euclidean cov matrices can only be returned when homogenized");
119 res[0][0] = (*this)[0][0];
120 res[0][1] = (*this)[0][1];
121 res[0][2] = (*this)[0][2];
122 res[1][0] = (*this)[1][0];
123 res[1][1] = (*this)[1][1];
124 res[1][2] = (*this)[1][2];
125 res[2][0] = (*this)[2][0];
126 res[2][1] = (*this)[2][1];
127 res[2][2] = (*this)[2][2];
136 (*this)[0][0] = m[0][0];
137 (*this)[0][1] = m[0][1];
138 (*this)[0][2] = m[0][2];
139 (*this)[1][0] = m[1][0];
140 (*this)[1][1] = m[1][1];
141 (*this)[1][2] = m[1][2];
142 (*this)[2][0] = m[2][0];
143 (*this)[2][1] = m[2][1];
144 (*this)[2][2] = m[2][2];
bool CheckSymmetry_() const
MatrixInitType
can be passed to matrix constructors to init the matrix with the most often used values ...
void Homogenize()
homogenize class data member elements to W==1 by divison by W
void SetZero()
Sets all values to zero.
Matrix4x4 Transpose() const
Matrix3x3< double > GetEuclidean() const
bool IsAtInfinity() const
class HomgPoint3D describes a point with 3 degrees of freedom in projective coordinates.
virtual ~HomgPoint3DCov()
void SetEuclidean(const Matrix3x3< double > &m)
is a 'fixed size' quadratic matrix of dim.
bool IsHomogenized() const
void Homogenize(HomgPoint3D &p)
homogenizes p and *this