Euphoria
axisangle.cc
Go to the documentation of this file.
1 #include "base/axisangle.h"
2 
3 #include "assert/assert.h"
4 
5 namespace eu
6 {
7  AxisAngle::AxisAngle(const unit3f& ax, const Angle& ang)
8  : axis(ax), angle(ang)
9  {
10  ASSERT(ax.is_valid());
11  }
12 
13  AxisAngle
14  AxisAngle::from_right_hand_around(const unit3f& axis, const Angle& angle)
15  {
16  ASSERT(axis.is_valid());
17  return {axis, Angle::from_radians(angle.as_radians())};
18  }
19 
20  std::string
21  to_string(const AxisAngle& aa)
22  {
23  return fmt::format("({} {})", aa.axis, aa.angle);
24  }
25 }
#define ASSERT(x)
Definition: assert.h:29
Definition: assert.h:90
std::string to_string(const AxisAngle &aa)
Definition: axisangle.cc:21
constexpr float as_radians() const
Definition: angle.h:50
unit3f axis
a unit-vector
Definition: axisangle.h:13
Angle angle
rotation according to right-hand rule
Definition: axisangle.h:16
constexpr bool is_valid() const
Definition: vec3.h:109