void operator-=(const Vector4D< T > &v)
Binary operator -=.
Definition: vector4.hh:168
Matrix4x4< T > operator*(const Matrix4x4< T > &B) const
Multiplication operator with another matrix.
Definition: matrix4x4.hh:173
void operator+=(const Vector3D< T > &v)
Binary operator +=.
Definition: vector3.hh:143
static const bool AUTORESIZE
Definition: matrixnxp.hh:42
T operator[](unsigned i) const
Array operator.
Definition: vector3.hh:81
std::ostream & display(std::ostream &os) const
Definition: matrix4x4.hh:450
Matrix4x4< T > operator+(const Matrix4x4< T > &B) const
Addition operator.
Definition: matrix4x4.hh:120
void _resizeInv(matrixNxP &res, const matrixNxP &mat2)
Definition: matrixnxp.hh:51
void setBetweenMinusAndPlusPI()
Set angle between -PI and PI.
Definition: angle.hh:211
Angle & operator+=(const Angle &rhs)
Definition: angle.hh:126
std::ostream & display(std::ostream &os) const
Definition: vector4.hh:243
matrixNxP & pseudoInverse(const matrixNxP &matrix, matrixNxP &outInverse, const double threshold=1e-6, matrixNxP *Uref=0, vectorN *Sref=0, matrixNxP *Vref=0)
Compute the pseudo-inverse of the matrix.
Definition: matrixnxp.hh:61
#define MRAWDATA(x)
Definition: vectorn.hh:32
#define VRAWDATA(x)
Definition: vectorn.hh:33
Angle operator*=(const T &rhs) const
Definition: angle.hh:167
Vector3D< T > operator/(const T &t) const
Binary operator /.
Definition: vector3.hh:179
Generic 4x4 matrix.
Definition: fwd.hh:33
T determinant() const
Determinant.
Definition: matrix3x3.hh:251
T operator()(unsigned i) const
Array operator.
Definition: vector3.hh:99
void operator-=(const Matrix3x3< T > &B)
Local matrix subtraction.
Definition: matrix3x3.hh:299
double degreeToRadian(const double &x)
Definition: angle.hh:32
Matrix4x4< T > operator-(const Matrix4x4< T > &B) const
Substraction operator.
Definition: matrix4x4.hh:147
void operator+=(const Vector4D< T > &v)
Binary operator +=.
Definition: vector4.hh:159
T determinant() const
Determinant.
Definition: matrix4x4.hh:349
std::ostream & operator<<(std::ostream &os, const Matrix3x3< T > &m)
Definition: matrix3x3.hh:354
Vector3D< T > operator+(const Vector3D< T > &v) const
Binary operator +.
Definition: vector3.hh:123
~Angle()
Trivial destructor.
Definition: angle.hh:68
void operator*=(const T &t)
Binary operator *=.
Definition: vector4.hh:200
T & operator()(unsigned int i, unsigned int j)
Access by giving the (i,j) element.
Definition: matrix4x4.hh:90
Matrix4x4< T > Inversion()
Inversion.
Definition: matrix4x4.hh:320
void Inversion(Matrix3x3< T > &A) const
Inversion.
Definition: matrix3x3.hh:236
T m[9]
The data array.
Definition: matrix3x3.hh:37
Vector3D(const T x, const T y, const T z)
Definition: vector3.hh:47
std::ostream & display(std::ostream &os) const
Definition: vector3.hh:242
std::ostream & display(std::ostream &os, const Angle &angle)
Definition: angle.hh:251
double distance(const Angle &angle) const
Distance on unit circle.
Definition: angle.hh:201
boost_ublas::matrix< double > matrixNxP
Definition: matrixnxp.hh:29
const T & operator[](unsigned i) const
Array operator.
Definition: vector4.hh:101
Angle & operator-=(const Angle &rhs)
Definition: angle.hh:131
void normalize()
Normalize .
Definition: vector3.hh:206
void operator/=(const T &t)
Binary operator /=.
Definition: vector3.hh:197
double sin(const Angle &angle)
Definition: angle.hh:241
void Inversion(Matrix4x4 &A) const
Inversion.
Definition: matrix4x4.hh:292
T m_x
Definition: vector4.hh:35
T & operator[](unsigned i)
Array operator.
Definition: vector3.hh:69
T operator()(unsigned i) const
Array operator.
Definition: vector4.hh:121
T normsquared() const
Get the norm squared.
Definition: vector3.hh:227
bool operator==(const Vector4D< T > &v) const
Binary operator ==.
Definition: vector4.hh:127
T & operator[](unsigned int i)
ith element considering the matrix as an array.
Definition: matrix4x4.hh:74
Vector3D< T > operator^(const Vector3D< T > &v2) const
Cross product.
Definition: vector3.hh:233
T & operator()(unsigned i)
Array operator.
Definition: vector3.hh:93
void Transpose(Matrix3x3< T > &A) const
Transposition.
Definition: matrix3x3.hh:228
double degree() const
Return value in degrees (for output only!).
Definition: angle.hh:89
Angle interpolate(const double &alpha, const Angle &angle) const
Interpolation between two angles.
Definition: angle.hh:187
Angle & operator=(const Angle &angle)
Operator =.
Definition: angle.hh:101
Vector3D< T > operator-() const
Unary operator -.
Definition: vector3.hh:63
Angle operator*(const T &rhs) const
Definition: angle.hh:162
T norm() const
Get the norm.
Definition: vector3.hh:215
void setZero(void)
Set to zero matrix.
Definition: matrix4x4.hh:106
static Angle radian(const double &value)
Named constructors.
Definition: angle.hh:72
std::ostream & display(std::ostream &os) const
Definition: matrix3x3.hh:341
Angle operator/=(const T &rhs) const
Definition: angle.hh:173
T m_w
Definition: vector4.hh:38
double cos(const Angle &angle)
Definition: angle.hh:236
void dgesvd_(char const *jobu, char const *jobvt, int const *m, int const *n, double *a, int const *lda, double *s, double *u, int const *ldu, double *vt, int const *ldvt, double *work, int const *lwork, int *info)
T m[16]
The data array.
Definition: matrix4x4.hh:40
Matrix3x3< T > operator*(const Matrix3x3< T > &B) const
Multiplication operator with another matrix.
Definition: matrix3x3.hh:153
void operator*=(const Matrix4x4< T > &B)
Local matrix multiplication.
Definition: matrix4x4.hh:408
bool IsZero() const
Check if the vector is set to zero.
Definition: vector3.hh:221
Angle operator+(const Angle &angle) const
Arithmetic operators overload.
Definition: angle.hh:118
static const bool CHECKRESIZE
Definition: matrixnxp.hh:43
Generic 3x3 matrix.
Definition: fwd.hh:30
void set(const double &value)
Update angle value.
Definition: angle.hh:220
Matrix3x3< T > operator+(const Matrix3x3< T > &B) const
Adition operator.
Definition: matrix3x3.hh:133
T & operator[](unsigned int i)
i-th element considering the matrix as an array.
Definition: matrix3x3.hh:85
Angle operator-(const Angle &angle) const
Definition: angle.hh:122
void CeqthismulB(const Vector4D< T > &B, Vector4D< T > &C) const
Definition: matrix4x4.hh:228
T norm() const
Get the norm.
Definition: vector4.hh:230
Vector4D< T > operator-()
Unary operator -.
Definition: vector4.hh:81
void setZero()
Set to zero matrix.
Definition: matrix3x3.hh:117
void normalize()
Normalize.
Definition: vector4.hh:219
std::ostream & display(std::ostream &os) const
output to a stream.
Definition: angle.hh:194
matrixNxP dampedInverse(const matrixNxP &inMatrix, matrixNxP &invMatrix, const double threshold=1e-6, matrixNxP *Uref=0, vectorN *Sref=0, matrixNxP *Vref=0)
Definition: matrixnxp.hh:168
Vector4D< T > operator/(const T &t) const
Binary operator /.
Definition: vector4.hh:189
void operator+=(const Matrix3x3< T > &B)
Self matrix addition.
Definition: matrix3x3.hh:285
void setIdentity()
Set to identity.
Definition: matrix3x3.hh:125
double radianToDegree(const double &x)
Definition: angle.hh:37
Generic 3d vector.
Definition: fwd.hh:24
Vector4D()
Default constructor: all fields are set to zero.
Definition: vector4.hh:41
bool operator!=(const Vector3D< T > &v) const
Binary operator !=.
Definition: vector3.hh:114
Angle(const double &angle)
Definition: angle.hh:56
bool operator==(const Vector3D< T > &v) const
Binary operator ==.
Definition: vector3.hh:105
Generic 4D vector.
Definition: fwd.hh:27
T m_z
Definition: vector3.hh:38
void Fill(T value)
Fills with value.
Definition: matrix3x3.hh:262
Vector3D()
Default constructor: all fields are set to zero.
Definition: vector3.hh:41
void CeqthismulB(const Matrix4x4< T > &B, Matrix4x4< T > &C) const
Definition: matrix4x4.hh:202
void operator*=(const T &t)
Binary operator *=.
Definition: vector3.hh:189
T m_x
Definition: vector3.hh:36
Angle(const Angle &angle)
Copy Constructor.
Definition: angle.hh:63
double angle_
angular value.
Definition: angle.hh:227
void operator-=(const Matrix4x4< T > &B)
Local matrix subtraction.
Definition: matrix4x4.hh:387
void _resize(matrixNxP &mat1, const matrixNxP &mat2)
Definition: matrixnxp.hh:45
Vector3D< T > operator*(const T &t) const
Binary operator *.
Definition: vector3.hh:159
T & operator()(unsigned int i, unsigned int j)
Access by giving the (i,j) element.
Definition: matrix3x3.hh:101
T & operator()(unsigned i)
Array operator.
Definition: vector4.hh:115
This class implements simple computations on angles.
Definition: angle.hh:48
T m_y
Definition: vector4.hh:36
Angle operator*(const T &coef, const Angle &angle)
Definition: angle.hh:231
void setIdentity()
Set to identity.
Definition: matrix4x4.hh:113
Angle()
Definition: angle.hh:51
Vector4D< T > operator=(const Vector4D< T > &v)
Assignement operator.
Definition: vector4.hh:59
Vector4D< T > operator*(const T &t) const
Binary operator *.
Definition: vector4.hh:177
Matrix4x4< T > Transpose() const
Transposition.
Definition: matrix4x4.hh:281
T trace() const
Definition: matrix4x4.hh:359
T m_y
Definition: vector3.hh:37
const double & value() const
Angle value.
Definition: angle.hh:83
void operator*=(const Matrix3x3< T > &B)
Local matrix multiplication.
Definition: matrix3x3.hh:313
void operator-=(const Vector3D< T > &v)
Binary operator -=.
Definition: vector3.hh:151
void operator/=(const T &t)
Binary operator /=.
Definition: vector4.hh:209
Vector4D< T > operator+(const Vector4D< T > &v) const
Binary operator +.
Definition: vector4.hh:137
T normsquared() const
Get the norm squared.
Definition: vector4.hh:237
Matrix3x3< T > Transpose() const
Transposition.
Definition: matrix3x3.hh:218
Vector3D< T > & operator=(const Vector3D< T > &v)
Assignment operator.
Definition: vector3.hh:52
void operator+=(const Matrix3x3< T > &B)
Self matrix addition.
Definition: matrix4x4.hh:365
T m_z
Definition: vector4.hh:37
T & operator[](unsigned i)
Array operator.
Definition: vector4.hh:87
void CeqthismulB(const Matrix3x3< T > &B, Matrix3x3< T > &C) const
Definition: matrix3x3.hh:168
bool IsIdentity() const
returns true if matrix is identity.
Definition: matrix3x3.hh:276
#define M_PI
Definition: constants.hh:27
Matrix3x3< T > operator-(const Matrix3x3< T > &B) const
Substraction operator.
Definition: matrix3x3.hh:143
double tan(const Angle &angle)
Definition: angle.hh:246
boost_ublas::vector< double > vectorN
Definition: vectorn.hh:37
static Angle degree(const double &value)
Definition: angle.hh:77