53 public:
Matrix3(
double _v00,
double _v01,
double _v02,
54 double _v10,
double _v11,
double _v12,
55 double _v20,
double _v21,
double _v22);
64 public:
void SetFromAxes(
const Vector3 &_xAxis,
72 public:
void SetFromAxis(
const Vector3 &_axis,
double _angle);
77 public:
void SetCol(
unsigned int _c,
const Vector3 &_v);
84 this->m[0][0]-_m[0][0], this->m[0][1]-_m[0][1], this->m[0][2]-_m[0][2],
85 this->m[1][0]-_m[1][0], this->m[1][1]-_m[1][1], this->m[1][2]-_m[1][2],
86 this->m[2][0]-_m[2][0], this->m[2][1]-_m[2][1], this->m[2][2]-_m[2][2]);
94 this->m[0][0]+_m[0][0], this->m[0][1]+_m[0][1], this->m[0][2]+_m[0][2],
95 this->m[1][0]+_m[1][0], this->m[1][1]+_m[1][1], this->m[1][2]+_m[1][2],
96 this->m[2][0]+_m[2][0], this->m[2][1]+_m[2][1], this->m[2][2]+_m[2][2]);
104 _s * this->m[0][0], _s * this->m[0][1], _s * this->m[0][2],
105 _s * this->m[1][0], _s * this->m[1][1], _s * this->m[1][2],
106 _s * this->m[2][0], _s * this->m[2][1], _s * this->m[2][2]);
124 this->m[0][0]*_m[0][0]+this->m[0][1]*_m[1][0]+this->m[0][2]*_m[2][0],
125 this->m[0][0]*_m[0][1]+this->m[0][1]*_m[1][1]+this->m[0][2]*_m[2][1],
126 this->m[0][0]*_m[0][2]+this->m[0][1]*_m[1][2]+this->m[0][2]*_m[2][2],
128 this->m[1][0]*_m[0][0]+this->m[1][1]*_m[1][0]+this->m[1][2]*_m[2][0],
129 this->m[1][0]*_m[0][1]+this->m[1][1]*_m[1][1]+this->m[1][2]*_m[2][1],
130 this->m[1][0]*_m[0][2]+this->m[1][1]*_m[1][2]+this->m[1][2]*_m[2][2],
132 this->m[2][0]*_m[0][0]+this->m[2][1]*_m[1][0]+this->m[2][2]*_m[2][0],
133 this->m[2][0]*_m[0][1]+this->m[2][1]*_m[1][1]+this->m[2][2]*_m[2][1],
134 this->m[2][0]*_m[0][2]+this->m[2][1]*_m[1][2]+this->m[2][2]*_m[2][2]);
140 public:
bool operator==(
const Matrix3 &_m)
const;
148 this->m[0][0]*_v.
x + this->m[0][1]*_v.
y + this->m[0][2]*_v.
z,
149 this->m[1][0]*_v.
x + this->m[1][1]*_v.
y + this->m[1][2]*_v.
z,
150 this->m[2][0]*_v.
x + this->m[2][1]*_v.
y + this->m[2][2]*_v.
z);
159 return this->m[_row];
168 return this->m[_row];
179 for (
int i = 0; i < 3; i++)
181 for (
int j = 0; j < 3; j++)
183 _out << _m.
m[i][j] <<
" ";
198 protected:
double m[3][3];
The Vector3 class represents the generic vector containing 3 elements.
Definition: Vector3.hh:43
const double * operator[](size_t _row) const
Array subscript operator.
Definition: Matrix3.hh:156
Matrix3 operator+(const Matrix3 &_m) const
returns the element wise sum of two matrices
Definition: Matrix3.hh:90
math::Vector3 operator*(const math::Vector3 &_v) const
Matrix times Vector3 operator.
Definition: Matrix3.hh:145
Matrix3 operator-(const Matrix3 &_m) const
returns the element wise difference of two matrices
Definition: Matrix3.hh:80
A 3x3 matrix class.
Definition: Matrix4.hh:39
friend Matrix3 operator*(double _s, const Matrix3 &_m)
Multiplication operators.
Definition: Matrix3.hh:113
double x
X location.
Definition: Vector3.hh:302
double z
Z location.
Definition: Vector3.hh:308
Matrix3 operator*(const Matrix3 &_m) const
Matrix multiplication operator.
Definition: Matrix3.hh:120
double * operator[](size_t _row)
Array subscript operator.
Definition: Matrix3.hh:165
static const Matrix3 IDENTITY
Identity matrix.
Definition: Matrix3.hh:192
A 3x3 matrix class.
Definition: Matrix3.hh:34
friend std::ostream & operator<<(std::ostream &_out, const gazebo::math::Matrix3 &_m)
Stream insertion operator.
Definition: Matrix3.hh:176
double m[3][3]
the 3x3 matrix
Definition: Matrix3.hh:198
Matrix3 operator*(const double &_s) const
returns the element wise scalar multiplication
Definition: Matrix3.hh:100
#define GAZEBO_VISIBLE
Use to represent "symbol visible" if supported.
Definition: system.hh:48
double y
Y location.
Definition: Vector3.hh:305
static const Matrix3 ZERO
Zero matrix.
Definition: Matrix3.hh:195