Euler parameter class. More...
#include <fEulerPara.h>
Public Member Functions | |
double & | Ang () |
Access the scalar part (cos(theta/2)) | |
double | Ang () const |
Access the scalar part (cos(theta/2)) | |
void | angvel2epdot (const fEulerPara &_ep, const fVec3 &_omega) |
Convert angular velocity to Euler parameter veclotiy. | |
fVec3 & | Axis () |
Access the vector part (a*sin(theta/2)) | |
const fVec3 & | Axis () const |
Access the vector part (a*sin(theta/2)) | |
fEulerPara () | |
Default constructor. | |
fEulerPara (const fVec3 &v, double s) | |
Constructor specifying vector and scalar parts. | |
fEulerPara (double s1, double s2, double s3, double s4) | |
Constructor specifying the four elements; scalar part is s4 . | |
void | identity () |
Set identity (no rotation). | |
void | interpolate (const fEulerPara &ep1, const fEulerPara &ep2, double t) |
SLERP interpolation: interpolates ep1 and ep2 into t:(1-t) | |
fEulerPara | operator= (const fEulerPara &) |
Assignment operator. | |
fEulerPara | operator= (const fMat33 &) |
Assignment operator. | |
double | rotation (const fEulerPara &ep0, const fVec3 &s) |
returns the rotation angle that makes the orientation closest to ep0 by rotating around axis s | |
void | set (const fVec3 &v, double s) |
Set the elements. | |
void | set (double s1, double s2, double s3, double s4) |
Set the elements; scalar part is s4 . | |
void | set (const fEulerPara &) |
Copy from a reference. | |
void | set (const class fMat33 &) |
Set from an orientation matrix. | |
void | unit () |
Convert to unit vector. | |
~fEulerPara () | |
Friends | |
double & | Ang (fEulerPara &ep) |
Access the scalar part (cos(theta/2)) | |
fEulerPara | angvel2epdot (const fEulerPara &epara, const fVec3 &vel) |
Convert angular velocity to Euler parameter veclotiy. | |
fVec3 & | Axis (fEulerPara &ep) |
Access the vector part (a*sin(theta/2)) | |
fMat33 | ep2mat (const fEulerPara &) |
Convert an Euler parameter representation to matrix. | |
fVec3 | epddot2angacc (const fEulerPara &e, const fEulerPara &de, const fEulerPara &dde) |
Convert Euler parameter acceleration to angular acceleration. | |
fVec3 | epdot2angvel (const fEulerPara &epara, const fEulerPara &edot) |
Convert Euler parameter velocity to angular velocity. | |
fEulerPara | mat2ep (const fMat33 &) |
Convert an orientation matrix to Euler parameters. | |
fEulerPara | operator* (double, const fEulerPara &) |
Multiply with a scalar. | |
fEulerPara | operator- (const fEulerPara &) |
Convert to the negative vector (represents the same orientation). | |
fEulerPara | unit (const fEulerPara &) |
Convert to unit vector. |
Euler parameter class.
Euler parameter class, based on 4-element vector class.
Definition at line 28 of file fEulerPara.h.
fEulerPara::fEulerPara | ( | ) | [inline] |
Default constructor.
Definition at line 33 of file fEulerPara.h.
fEulerPara::~fEulerPara | ( | ) | [inline] |
Definition at line 35 of file fEulerPara.h.
fEulerPara::fEulerPara | ( | const fVec3 & | v, |
double | s | ||
) | [inline] |
Constructor specifying vector and scalar parts.
Definition at line 38 of file fEulerPara.h.
fEulerPara::fEulerPara | ( | double | s1, |
double | s2, | ||
double | s3, | ||
double | s4 | ||
) | [inline] |
Constructor specifying the four elements; scalar part is s4
.
Definition at line 42 of file fEulerPara.h.
double& fEulerPara::Ang | ( | ) | [inline] |
Access the scalar part (cos(theta/2))
Definition at line 51 of file fEulerPara.h.
double fEulerPara::Ang | ( | ) | const [inline] |
Access the scalar part (cos(theta/2))
Definition at line 55 of file fEulerPara.h.
void fEulerPara::angvel2epdot | ( | const fEulerPara & | _ep, |
const fVec3 & | _omega | ||
) |
Convert angular velocity to Euler parameter veclotiy.
Convert angular velocity to Euler parameter veclotiy.
[in] | _ep | current orientation |
[in] | _omega | angular velocity |
Definition at line 106 of file fEulerPara.cpp.
fVec3& fEulerPara::Axis | ( | ) | [inline] |
Access the vector part (a*sin(theta/2))
Definition at line 63 of file fEulerPara.h.
const fVec3& fEulerPara::Axis | ( | ) | const [inline] |
Access the vector part (a*sin(theta/2))
Definition at line 67 of file fEulerPara.h.
void fEulerPara::identity | ( | ) | [inline] |
Set identity (no rotation).
Definition at line 90 of file fEulerPara.h.
void fEulerPara::interpolate | ( | const fEulerPara & | ep1, |
const fEulerPara & | ep2, | ||
double | t | ||
) |
SLERP interpolation: interpolates ep1
and ep2
into t:(1-t)
Definition at line 19 of file fEulerPara.cpp.
fEulerPara fEulerPara::operator= | ( | const fEulerPara & | ep | ) |
Assignment operator.
Definition at line 245 of file fEulerPara.cpp.
fEulerPara fEulerPara::operator= | ( | const fMat33 & | mat | ) |
Assignment operator.
Definition at line 252 of file fEulerPara.cpp.
double fEulerPara::rotation | ( | const fEulerPara & | ep0, |
const fVec3 & | s | ||
) |
returns the rotation angle that makes the orientation closest to ep0 by rotating around axis s
Definition at line 318 of file fEulerPara.cpp.
void fEulerPara::set | ( | const fVec3 & | v, |
double | s | ||
) | [inline] |
void fEulerPara::set | ( | double | s1, |
double | s2, | ||
double | s3, | ||
double | s4 | ||
) | [inline] |
Set the elements; scalar part is s4
.
Reimplemented from fVec4.
Definition at line 80 of file fEulerPara.h.
void fEulerPara::set | ( | const fEulerPara & | _ep | ) |
Copy from a reference.
Definition at line 50 of file fEulerPara.cpp.
void fEulerPara::set | ( | const class fMat33 & | ) |
Set from an orientation matrix.
void fEulerPara::unit | ( | ) |
Convert to unit vector.
Definition at line 297 of file fEulerPara.cpp.
double& Ang | ( | fEulerPara & | ep | ) | [friend] |
Access the scalar part (cos(theta/2))
Definition at line 47 of file fEulerPara.h.
fEulerPara angvel2epdot | ( | const fEulerPara & | epara, |
const fVec3 & | vel | ||
) | [friend] |
Convert angular velocity to Euler parameter veclotiy.
Definition at line 269 of file fEulerPara.cpp.
fVec3& Axis | ( | fEulerPara & | ep | ) | [friend] |
Access the vector part (a*sin(theta/2))
Definition at line 59 of file fEulerPara.h.
fMat33 ep2mat | ( | const fEulerPara & | _epara | ) | [friend] |
Convert an Euler parameter representation to matrix.
Definition at line 225 of file fEulerPara.cpp.
fVec3 epddot2angacc | ( | const fEulerPara & | e, |
const fEulerPara & | de, | ||
const fEulerPara & | dde | ||
) | [friend] |
Convert Euler parameter acceleration to angular acceleration.
Convert Euler parameter acceleration to angular acceleration.
[in] | e | current orientation (Euler parameters) |
[in] | de | current Euler parameter velocity |
[in] | dde | current Euler parameter acceleration |
Definition at line 287 of file fEulerPara.cpp.
fVec3 epdot2angvel | ( | const fEulerPara & | epara, |
const fEulerPara & | edot | ||
) | [friend] |
Convert Euler parameter velocity to angular velocity.
Definition at line 278 of file fEulerPara.cpp.
fEulerPara mat2ep | ( | const fMat33 & | _mat | ) | [friend] |
Convert an orientation matrix to Euler parameters.
Definition at line 119 of file fEulerPara.cpp.
fEulerPara operator* | ( | double | d, |
const fEulerPara & | ep | ||
) | [friend] |
Multiply with a scalar.
Definition at line 261 of file fEulerPara.cpp.
fEulerPara operator- | ( | const fEulerPara & | _ep | ) | [friend] |
Convert to the negative vector (represents the same orientation).
Definition at line 310 of file fEulerPara.cpp.
fEulerPara unit | ( | const fEulerPara & | ep | ) | [friend] |
Convert to unit vector.
Definition at line 303 of file fEulerPara.cpp.