diff options
Diffstat (limited to 'src/math')
-rw-r--r-- | src/math/axis.cc | 11 | ||||
-rw-r--r-- | src/math/axis.h | 7 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/math/axis.cc b/src/math/axis.cc index 3710c89..60d3797 100644 --- a/src/math/axis.cc +++ b/src/math/axis.cc @@ -44,6 +44,17 @@ void Axis::assign(const btMatrix3x3 & other) } } +void Axis::assign(const float yaw, const float pitch, const float roll) +{ + clear(); + if (yaw) + change_direction(yaw); + if (pitch) + change_pitch(-pitch); + if (roll) + change_roll(-roll); +} + Axis & Axis::operator=(const Axis & other) { assign(other); diff --git a/src/math/axis.h b/src/math/axis.h index f9da159..3991843 100644 --- a/src/math/axis.h +++ b/src/math/axis.h @@ -26,6 +26,13 @@ public: void assign(const Axis & other); void assign(const btMatrix3x3 & other); + + /** + * @brief assign radiant yaw, pitch and roll angles. + * This method changes the sign of the pitch and roll angles + * before applying them + */ + void assign(const float yaw, const float pitch, const float roll); /// global coordinates of the X-axis in the local coordinates system inline const Vector3f & forward() const { |