diff options
author | Stijn Buys <ingar@osirion.org> | 2012-12-30 23:15:48 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2012-12-30 23:15:48 +0000 |
commit | 5773da9e78a61daf5bd2a3ee0504683e56af72f5 (patch) | |
tree | 3fa81e278e6c803be19362a25c1b3727d8e177e8 /src | |
parent | 93dd038acea20774143dde34bd924f6eb0d3568a (diff) |
Added math::Axis::rotate() variant.
Diffstat (limited to 'src')
-rw-r--r-- | src/math/axis.cc | 9 | ||||
-rw-r--r-- | src/math/axis.h | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/math/axis.cc b/src/math/axis.cc index 60d3797..a5ea397 100644 --- a/src/math/axis.cc +++ b/src/math/axis.cc @@ -104,11 +104,8 @@ void Axis::change_roll(const float angle) /* notes: http://mathworld.wolfram.com/RotationFormula.html */ -void Axis::rotate(Vector3f const &normal, float rad) +void Axis::rotate(Vector3f const &normal, float cosa, float sina) { - float cosa = cosf(rad); - float sina = sinf(rad); - for (size_t i = 0; i < 3; i++) { axis_vector[i] = axis_vector[i] * cosa + @@ -116,6 +113,10 @@ void Axis::rotate(Vector3f const &normal, float rad) crossproduct(axis_vector[i], normal) * sina; } } +void Axis::rotate(Vector3f const &normal, float rad) +{ + rotate(normal, cosf(rad), sinf(rad)); +} const Axis Axis::transpose() const { diff --git a/src/math/axis.h b/src/math/axis.h index 3991843..ef90654 100644 --- a/src/math/axis.h +++ b/src/math/axis.h @@ -86,6 +86,8 @@ public: * @brief rotation about an arbitrary vector * @param rad angle in radians **/ + void rotate(Vector3f const &normal, float cosa, float sina); + void rotate(const Vector3f & normal, const float rad); /// return the transpose of this matrix |