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);
81 public:
Matrix3 Inverse()
const;
88 this->m[0][0]-_m[0][0], this->m[0][1]-_m[0][1], this->m[0][2]-_m[0][2],
89 this->m[1][0]-_m[1][0], this->m[1][1]-_m[1][1], this->m[1][2]-_m[1][2],
90 this->m[2][0]-_m[2][0], this->m[2][1]-_m[2][1], this->m[2][2]-_m[2][2]);
98 this->m[0][0]+_m[0][0], this->m[0][1]+_m[0][1], this->m[0][2]+_m[0][2],
99 this->m[1][0]+_m[1][0], this->m[1][1]+_m[1][1], this->m[1][2]+_m[1][2],
100 this->m[2][0]+_m[2][0], this->m[2][1]+_m[2][1], this->m[2][2]+_m[2][2]);
108 _s * this->m[0][0], _s * this->m[0][1], _s * this->m[0][2],
109 _s * this->m[1][0], _s * this->m[1][1], _s * this->m[1][2],
110 _s * this->m[2][0], _s * this->m[2][1], _s * this->m[2][2]);
128 this->m[0][0]*_m[0][0]+this->m[0][1]*_m[1][0]+this->m[0][2]*_m[2][0],
129 this->m[0][0]*_m[0][1]+this->m[0][1]*_m[1][1]+this->m[0][2]*_m[2][1],
130 this->m[0][0]*_m[0][2]+this->m[0][1]*_m[1][2]+this->m[0][2]*_m[2][2],
132 this->m[1][0]*_m[0][0]+this->m[1][1]*_m[1][0]+this->m[1][2]*_m[2][0],
133 this->m[1][0]*_m[0][1]+this->m[1][1]*_m[1][1]+this->m[1][2]*_m[2][1],
134 this->m[1][0]*_m[0][2]+this->m[1][1]*_m[1][2]+this->m[1][2]*_m[2][2],
136 this->m[2][0]*_m[0][0]+this->m[2][1]*_m[1][0]+this->m[2][2]*_m[2][0],
137 this->m[2][0]*_m[0][1]+this->m[2][1]*_m[1][1]+this->m[2][2]*_m[2][1],
138 this->m[2][0]*_m[0][2]+this->m[2][1]*_m[1][2]+this->m[2][2]*_m[2][2]);
144 public:
bool operator==(
const Matrix3 &_m)
const;
152 this->m[0][0]*_v.
x + this->m[0][1]*_v.
y + this->m[0][2]*_v.
z,
153 this->m[1][0]*_v.
x + this->m[1][1]*_v.
y + this->m[1][2]*_v.
z,
154 this->m[2][0]*_v.
x + this->m[2][1]*_v.
y + this->m[2][2]*_v.
z);
163 return this->m[_row];
172 return this->m[_row];
183 for (
int i = 0; i < 3; i++)
185 for (
int j = 0; j < 3; j++)
187 _out << _m.
m[i][j] <<
" ";
202 protected:
double m[3][3];
The Vector3 class represents the generic vector containing 3 elements.
Definition: Vector3.hh:39
const double * operator[](size_t _row) const
Array subscript operator.
Definition: Matrix3.hh:160
Matrix3 operator+(const Matrix3 &_m) const
returns the element wise sum of two matrices
Definition: Matrix3.hh:94
math::Vector3 operator*(const math::Vector3 &_v) const
Matrix times Vector3 operator.
Definition: Matrix3.hh:149
Matrix3 operator-(const Matrix3 &_m) const
returns the element wise difference of two matrices
Definition: Matrix3.hh:84
A 3x3 matrix class.
Definition: Matrix4.hh:40
friend Matrix3 operator*(double _s, const Matrix3 &_m)
Multiplication operators.
Definition: Matrix3.hh:117
double x
X location.
Definition: Vector3.hh:311
double z
Z location.
Definition: Vector3.hh:317
Matrix3 operator*(const Matrix3 &_m) const
Matrix multiplication operator.
Definition: Matrix3.hh:124
double * operator[](size_t _row)
Array subscript operator.
Definition: Matrix3.hh:169
static const Matrix3 IDENTITY
Identity matrix.
Definition: Matrix3.hh:196
A 3x3 matrix class.
Definition: Matrix3.hh:34
#define GZ_MATH_VISIBLE
Definition: system.hh:134
friend std::ostream & operator<<(std::ostream &_out, const gazebo::math::Matrix3 &_m)
Stream insertion operator.
Definition: Matrix3.hh:180
double m[3][3]
the 3x3 matrix
Definition: Matrix3.hh:202
Matrix3 operator*(const double &_s) const
returns the element wise scalar multiplication
Definition: Matrix3.hh:104
double y
Y location.
Definition: Vector3.hh:314
static const Matrix3 ZERO
Zero matrix.
Definition: Matrix3.hh:199