rotationmatrix3.h
Go to the documentation of this file.
1 
9 #ifndef ROTATION_MATRIX3_H
10 #define ROTATION_MATRIX3_H
11 
12 namespace argos {
13  class CQuaternion;
14  class CVector3;
15 }
16 
17 #include <argos3/core/utility/math/matrix/squarematrix.h>
18 
19 namespace argos {
20 
21  class CRotationMatrix3 : public CSquareMatrix<3> {
22 
23  friend class CTransformationMatrix3;
24 
25  public:
28  }
29 
30  CRotationMatrix3(const CMatrix<3,3>& c_matrix) : CSquareMatrix<3>() {
31  SetFromMatrix(c_matrix);
32  }
33 
34  CRotationMatrix3(const CRadians& c_z_angle, const CRadians& c_y_angle, const CRadians& c_x_angle) : CSquareMatrix<3>() {
35  SetFromAngles(c_z_angle, c_y_angle, c_x_angle);
36  }
37 
38  CRotationMatrix3(Real f_value0, Real f_value1, Real f_value2,
39  Real f_value3, Real f_value4, Real f_value5,
40  Real f_value6, Real f_value7, Real f_value8) : CSquareMatrix<3>() {
41  SetFromValues(f_value0, f_value1, f_value2,
42  f_value3, f_value4, f_value5,
43  f_value6, f_value7, f_value8);
44  }
45 
46  void SetFromMatrix(const CMatrix<3,3>& c_matrix);
47 
48  void SetFromAngles(const CRadians& c_x_angle, const CRadians& c_y_angle, const CRadians& c_z_angle);
49 
50  void SetFromValues(Real f_value0, Real f_value1, Real f_value2,
51  Real f_value3, Real f_value4, Real f_value5,
52  Real f_value6, Real f_value7, Real f_value8);
53 
57  operator CQuaternion() const;
58 
59  CVector3 operator*(const CVector3& c_vector) const;
60  };
61 }
62 
63 #endif
CRotationMatrix3(Real f_value0, Real f_value1, Real f_value2, Real f_value3, Real f_value4, Real f_value5, Real f_value6, Real f_value7, Real f_value8)
A 3D vector class.
Definition: vector3.h:29
CRotationMatrix3(const CRadians &c_z_angle, const CRadians &c_y_angle, const CRadians &c_x_angle)
float Real
Collects all ARGoS code.
Definition: datatypes.h:39
CRotationMatrix3(const CMatrix< 3, 3 > &c_matrix)
void SetFromValues(Real f_value0, Real f_value1, Real f_value2, Real f_value3, Real f_value4, Real f_value5, Real f_value6, Real f_value7, Real f_value8)
It defines the basic type CRadians, used to store an angle value in radians.
Definition: angles.h:42
void SetFromAngles(const CRadians &c_x_angle, const CRadians &c_y_angle, const CRadians &c_z_angle)
void SetFromMatrix(const CMatrix< 3, 3 > &c_matrix)
CVector3 operator*(const CVector3 &c_vector) const
The namespace containing all the ARGoS related code.
Definition: ci_actuator.h:12