#include <yarp/math/Quaternion.h>
Public Member Functions | |
Quaternion () | |
Quaternion (double x, double y, double z, double w) | |
double * | data () |
const double * | data () const |
double | x () const |
double | y () const |
double | z () const |
double | w () const |
double & | x () |
double & | y () |
double & | z () |
double & | w () |
std::string | toString (int precision=-1, int width=-1) const |
double | abs () |
Computes the modulus of the quaternion. | |
void | normalize () |
Normalizes the quaternion elements. | |
bool | isValid () const |
Check if the quaternion is valid. | |
Quaternion | inverse () const |
Computes the inverse of the quaternion. | |
double | arg () |
Computes the argument or phase of the quaternion in radians. | |
void | fromAxisAngle (const yarp::sig::Vector &v) |
Computes the quaternion from an axis-angle representation. | |
void | fromAxisAngle (const yarp::sig::Vector &axis, const double &angle) |
Computes the quaternion from an axis-angle representation. | |
yarp::sig::Vector | toAxisAngle () |
void | fromRotationMatrix (const yarp::sig::Matrix &R) |
Converts a rotation matrix to a quaternion. | |
yarp::sig::Matrix | toRotationMatrix4x4 () const |
Converts a quaternion to a rotation matrix. | |
yarp::sig::Matrix | toRotationMatrix3x3 () const |
Converts a quaternion to a rotation matrix. | |
yarp::sig::Vector | toVector () const |
Converts the quaternion to a vector of length 4. | |
bool | read (yarp::os::ConnectionReader &connection) override |
Read this object from a network connection. | |
bool | write (yarp::os::ConnectionWriter &connection) const override |
Write vector to a connection. | |
yarp::os::Type | getType () const override |
![]() | |
virtual | ~PortReader () |
Destructor. | |
virtual Type | getReadType () const |
![]() | |
virtual | ~PortWriter () |
Destructor. | |
virtual void | onCompletion () const |
This is called when the port has finished all writing operations. | |
virtual void | onCommencement () const |
This is called when the port is about to begin writing operations. | |
virtual yarp::os::Type | getWriteType () const |
Additional Inherited Members | |
![]() | |
static bool | copyPortable (const PortWriter &writer, PortReader &reader) |
Copy one portable to another, via writing and reading. | |
Definition at line 21 of file Quaternion.h.
Quaternion::Quaternion | ( | ) |
Definition at line 31 of file Quaternion.cpp.
Quaternion::Quaternion | ( | double | x, |
double | y, | ||
double | z, | ||
double | w | ||
) |
Definition at line 39 of file Quaternion.cpp.
double Quaternion::abs | ( | ) |
Computes the modulus of the quaternion.
Definition at line 313 of file Quaternion.cpp.
double Quaternion::arg | ( | ) |
Computes the argument or phase of the quaternion in radians.
Definition at line 331 of file Quaternion.cpp.
double * Quaternion::data | ( | ) |
Definition at line 52 of file Quaternion.cpp.
const double * Quaternion::data | ( | ) | const |
Definition at line 47 of file Quaternion.cpp.
void Quaternion::fromAxisAngle | ( | const yarp::sig::Vector & | axis, |
const double & | angle | ||
) |
Computes the quaternion from an axis-angle representation.
axis | a 3D vector representing the axis. @angle the rotation angle (in radians) |
Definition at line 293 of file Quaternion.cpp.
void Quaternion::fromAxisAngle | ( | const yarp::sig::Vector & | v | ) |
Computes the quaternion from an axis-angle representation.
v | a 4D vector, where the first three elements represent the axis, while the fourth element represents the angle (in radians) |
Definition at line 282 of file Quaternion.cpp.
void Quaternion::fromRotationMatrix | ( | const yarp::sig::Matrix & | R | ) |
Converts a rotation matrix to a quaternion.
The returned quaternion is ordered in the following way:
The input rotation matrix and the output quaternion are related by the following formula:
where
R | the input rotation matrix. |
Definition at line 162 of file Quaternion.cpp.
|
inlineoverridevirtual |
Reimplemented from yarp::os::Portable.
Definition at line 160 of file Quaternion.h.
Quaternion Quaternion::inverse | ( | ) | const |
Computes the inverse of the quaternion.
Definition at line 339 of file Quaternion.cpp.
bool Quaternion::isValid | ( | ) | const |
Check if the quaternion is valid.
Definition at line 57 of file Quaternion.cpp.
void Quaternion::normalize | ( | ) |
Normalizes the quaternion elements.
Definition at line 321 of file Quaternion.cpp.
|
overridevirtual |
Read this object from a network connection.
Override this for your particular class.
reader | an interface to the network connection for reading |
Implements yarp::os::Portable.
Definition at line 116 of file Quaternion.cpp.
yarp::sig::Vector Quaternion::toAxisAngle | ( | ) |
Definition at line 306 of file Quaternion.cpp.
yarp::sig::Matrix Quaternion::toRotationMatrix3x3 | ( | ) | const |
Converts a quaternion to a rotation matrix.
q | the quaternion |
Definition at line 241 of file Quaternion.cpp.
yarp::sig::Matrix Quaternion::toRotationMatrix4x4 | ( | ) | const |
Converts a quaternion to a rotation matrix.
The quaternion is expected to be ordered in the following way:
The returned rotation matrix is given by the following formula:
where
q | the 4 by 1 input quaternion in the form
|
Definition at line 222 of file Quaternion.cpp.
std::string Quaternion::toString | ( | int | precision = -1 , |
int | width = -1 |
||
) | const |
Definition at line 260 of file Quaternion.cpp.
yarp::sig::Vector Quaternion::toVector | ( | ) | const |
Converts the quaternion to a vector of length 4.
Definition at line 66 of file Quaternion.cpp.
double & Quaternion::w | ( | ) |
Definition at line 96 of file Quaternion.cpp.
double Quaternion::w | ( | ) | const |
Definition at line 76 of file Quaternion.cpp.
|
overridevirtual |
Write vector to a connection.
return true iff a vector was written correctly
Implements yarp::os::Portable.
Definition at line 141 of file Quaternion.cpp.
double & Quaternion::x | ( | ) |
Definition at line 101 of file Quaternion.cpp.
double Quaternion::x | ( | ) | const |
Definition at line 81 of file Quaternion.cpp.
double & Quaternion::y | ( | ) |
Definition at line 106 of file Quaternion.cpp.
double Quaternion::y | ( | ) | const |
Definition at line 86 of file Quaternion.cpp.
double & Quaternion::z | ( | ) |
Definition at line 111 of file Quaternion.cpp.
double Quaternion::z | ( | ) | const |
Definition at line 91 of file Quaternion.cpp.