ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00009 #include "rotationmatrix2.h" 00010 #include <argos3/core/utility/math/angles.h> 00011 00012 namespace argos { 00013 00014 /****************************************/ 00015 /****************************************/ 00016 00017 void CRotationMatrix2::SetFromAngle(const CRadians& c_angle) { 00018 Real cos_angle = Cos(c_angle); 00019 Real sin_angle = Sin(c_angle); 00020 00021 /* Set values */ 00022 m_pfValues[0] = cos_angle; 00023 m_pfValues[1] = -sin_angle; 00024 m_pfValues[2] = sin_angle; 00025 m_pfValues[3] = cos_angle; 00026 } 00027 00028 /****************************************/ 00029 /****************************************/ 00030 00031 void CRotationMatrix2::SetFromMatrix(const CMatrix<2,2>& c_matrix) { 00032 m_pfValues[0] = c_matrix.m_pfValues[0]; 00033 m_pfValues[1] = c_matrix.m_pfValues[1]; 00034 m_pfValues[2] = c_matrix.m_pfValues[2]; 00035 m_pfValues[3] = c_matrix.m_pfValues[3]; 00036 } 00037 00038 /****************************************/ 00039 /****************************************/ 00040 00041 void CRotationMatrix2::SetFromValues(Real f_value0, Real f_value1, 00042 Real f_value2, Real f_value3) { 00043 m_pfValues[0] = f_value0; 00044 m_pfValues[1] = f_value1; 00045 m_pfValues[2] = f_value2; 00046 m_pfValues[3] = f_value3; 00047 } 00048 00049 /****************************************/ 00050 /****************************************/ 00051 00052 }