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;
187 template<
typename Unit>
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>
Used internally to implement angle operations.
Provides Reference Frame (i.e., coordinate systemm) transforms.
Class template for representing an angle in Euler notation.
Euler(const Euler< A2, B2, C2, Conv2 > &o)
Constructor to convert from a different Euler convention.
double a() const
Getter for the first angular angle, around axis A.
void c(double n)
Setter for the first angular angle, around axis C.
detail::GetTypes< A, B, C, Conv >::F F
void b(double n)
Setter for the first angular angle, around axis B.
Quaternion to_quat() const
Convert this Euler angle to a Quaternion.
static Euler from_quat(const Quaternion &quat)
Convert a Quaternion into a Euler angle.
Euler(const OrientationVector &r)
Constructor to convert from a Orientation (or OrientationVector)
Euler(double a, double b, double c)
Constructor from radians.
Orientation to_orientation(const ReferenceFrame &frame) const
Convert this Euler angle to an Orientation (axis-angle notation), within the specified frame.
void a(double n)
Setter for the first angular angle, around axis A.
Orientation to_orientation() const
Convert this Euler angle to a Orientation (axis-angle notation), within the default frame.
detail::GetTypes< A, B, C, Conv >::Trig Trig
Euler()
Default constructor.
double c() const
Getter for the first angular angle, around axis C.
Euler(const Quaternion &quat)
Constructor to convert from a unit Quaternion.
double b() const
Getter for the first angular angle, around axis B.
Euler(double a, double b, double c, Unit u)
Constructor from specified units.
void set_from_quat(const Quaternion &quat)
Euler< conv::Y, conv::X, conv::Z, conv::Intr > EulerIntrYXZ
Euler< conv::X, conv::Y, conv::Z, conv::Extr > EulerExtrXYZ
Euler< conv::Z, conv::Y, conv::X, conv::Extr > EulerExtrZYX
Euler< conv::Z, conv::Y, conv::X > EulerZYX
std::ostream & operator<<(std::ostream &o, const Euler< A, B, C, Conv > &e)
Stream operator for Euler angles.
EulerIntrXYZ EulerVREP
The Euler convention used by VREP.
EulerYPR YawPitchRoll
A commonly used Euler convention: Yaw-Pitch-Roll.
Euler< conv::Z, conv::Y, conv::X, conv::Intr > EulerIntrZYX
EulerIntrZYX EulerYPR
A commonly used Euler convention: Yaw-Pitch-Roll.
Euler< conv::Y, conv::X, conv::Z > EulerYXZ
Euler< conv::X, conv::Y, conv::Z, conv::Intr > EulerIntrXYZ
Euler< conv::X, conv::Y, conv::Z > EulerXYZ
Euler< conv::Y, conv::X, conv::Z, conv::Extr > EulerExtrYXZ
EulerExtrXYZ RollPitchYaw
The most common vernacular usage of roll, pitch and yaw.
Contains all GAMS-related tools, classes and code.
static const char * name()
static const bool reverse
static const bool reverse
static const char * name()
static const char * name()
static const char * name()
static const char * name()
Copyright (c) 2015 Carnegie Mellon University.
Copyright (c) 2015 Carnegie Mellon University.
Copyright (c) 2015 Carnegie Mellon University.
Copyright (c) 2015 Carnegie Mellon University.