58 #ifndef _GAMS_POSE_EULER_H_ 59 #define _GAMS_POSE_EULER_H_ 87 static const char *
name() {
return "Intr"; }
94 static const char *
name() {
return "Extr"; }
104 static const char *
name() {
return "X"; }
109 static const char *
name() {
return "Y"; }
114 static const char *
name() {
return "Z"; }
121 #include "gams/pose/EulerFormulas.inl" 156 template<
typename A,
typename B,
typename C,
typename Conv = conv::Intr>
160 typedef typename detail::GetTypes<A,B,C,Conv>::F
F;
161 typedef typename detail::GetTypes<A,B,C,Conv>::Trig
Trig;
175 Euler(
double a,
double b,
double c) : a_(a), b_(b), c_(c) {}
187 template<
typename Unit>
188 Euler(
double a,
double b,
double c, Unit u);
205 template<
typename A2,
typename B2,
typename C2,
typename Conv2>
216 double a()
const {
return a_; }
218 double b()
const {
return b_; }
220 double c()
const {
return c_; }
223 void a(
double n) { a_ = n; }
225 void b(
double n) { b_ = n; }
227 void c(
double n) { c_ = n; }
289 template<
typename A,
typename B,
typename C,
typename Conv>
290 std::ostream &operator<<(std::ostream &o, const Euler<A, B, C, Conv> &e);
gams::pose::euler::Euler< A, B, C, Conv > Euler
Class template for representing an angle in Euler notation.
double b() const
Getter for the first angular angle, around axis B.
EulerExtrXYZ RollPitchYaw
The most common vernacular usage of roll, pitch and yaw.
Euler< conv::Z, conv::Y, conv::X, conv::Intr > EulerIntrZYX
static const char * name()
void a(double n)
Setter for the first angular angle, around axis A.
EulerIntrZYX EulerYPR
A commonly used Euler convention: Yaw-Pitch-Roll.
Euler(double a, double b, double c)
Constructor from radians.
detail::GetTypes< A, B, C, Conv >::F F
void b(double n)
Setter for the first angular angle, around axis B.
static const char * name()
Euler< conv::Z, conv::Y, conv::X, conv::Extr > EulerExtrZYX
Euler< conv::Y, conv::X, conv::Z, conv::Intr > EulerIntrYXZ
double c() const
Getter for the first angular angle, around axis C.
detail::GetTypes< A, B, C, Conv >::Trig Trig
EulerYPR YawPitchRoll
A commonly used Euler convention: Yaw-Pitch-Roll.
Contains all GAMS-related tools, classes and code.
Class template for representing an angle in Euler notation.
EulerIntrXYZ EulerVREP
The Euler convention used by VREP.
Used internally to implement angle operations.
double a() const
Getter for the first angular angle, around axis A.
Euler< conv::Y, conv::X, conv::Z > EulerYXZ
Euler< conv::X, conv::Y, conv::Z, conv::Intr > EulerIntrXYZ
static const char * name()
static const bool reverse
Euler< conv::X, conv::Y, conv::Z, conv::Extr > EulerExtrXYZ
Euler< conv::Y, conv::X, conv::Z, conv::Extr > EulerExtrYXZ
Provides Reference Frame (i.e., coordinate systemm) transforms.
Euler< conv::X, conv::Y, conv::Z > EulerXYZ
static const char * name()
Euler< conv::Z, conv::Y, conv::X > EulerZYX
void c(double n)
Setter for the first angular angle, around axis C.
Euler()
Default constructor.
static const char * name()