Collaboration diagram for base::Orient:
Public Types | |
typedef Byte | Representation |
Public Member Functions | |
Orient () | |
construct a zero orientation. (like the identify transform - defaults to EulerRPY vector 0) | |
Orient (Representation representation) | |
construct a zero orientation. (like the identify transform) | |
Orient (const Quat4 &q) | |
construct from a quaternion (x,y,z,w) | |
Orient (Real roll, Real pitch, Real yaw) | |
construct from EulerRPY | |
Orient (const Vector &v, Representation representation=EulerRPY) | |
construct from a Vector. | |
Orient (const Matrix3 &m3) | |
construct from a 3x3 rotation transformation matrix | |
Orient (const Matrix &m) | |
construct from a 3x3 rotation transformation matrix | |
Orient (const Orient ©) | |
~Orient () | |
Representation | representation () const |
bool | isEuler () const |
Int | size () const |
Real & | operator[] (Int i) |
const Real & | operator[] (Int i) const |
Orient & | operator= (const Quat4 &q) |
Orient & | operator= (const Matrix3 &mt) |
Orient & | operator= (const Orient ©) throw () |
void | setIdentity (Representation representation=Quat) |
void | setFromRotationComponent (const Matrix4 &mt) |
bool | operator== (const Orient &o) const throw () |
equality. | |
bool | operator!= (const Orient &o) const throw () |
bool | equals (const Orient &o, Real epsilon=consts::epsilon) const throw () |
void | rotatePoint (Point3 &p) const |
Point3 | rotate (const Point3 &p) const |
void | rotatePoint (Point4 &p) const |
Point4 | rotate (const Point4 &p) const |
Orient & | invert () |
invert the rotation (i.e. switch to the reverse rotation) | |
Matrix | getRotationMatrix () const |
Matrix3 | getRotationMatrix3 () const |
Quat4 | getQuat4 () const |
Vector | getVector (Representation representation) const |
Vector3 | getVector3 (Representation representation) const |
operator Vector () const | |
automatic conversion to a Vector | |
operator Matrix3 () const | |
automatic conversion to a rotation matrix | |
operator Quat4 () const | |
automatic conversion to a Quat4 | |
void | changeRepresentation (Representation newRepresentation) |
request change the internal representation (which may or may not be honored) | |
Matrix | getBinv () const |
returns the inverse of B, such that omega = B(v)^-1 . dv/dt, where omega is angular velocity and v is this orientation | |
void | serialize (Serializer &s) |
read or write object state to Serializer | |
Static Public Member Functions | |
String | representationString (Representation rep) |
bool | isEuler (Representation rep) |
Int | size (Representation rep) |
Orient | interpolate (const Orient &lower, const Orient &upper, Real t) |
interpolate between the orientations lower and upper t:[0..1] | |
Static Public Attributes | |
const Representation | EulerXYZs |
const Representation | EulerXYXs |
const Representation | EulerXZYs |
const Representation | EulerXZXs |
const Representation | EulerYZXs |
const Representation | EulerYZYs |
const Representation | EulerYXZs |
const Representation | EulerYXYs |
const Representation | EulerZXYs |
const Representation | EulerZXZs |
const Representation | EulerZYXs |
const Representation | EulerZYZs |
const Representation | EulerZYXr |
const Representation | EulerXYXr |
const Representation | EulerYZXr |
const Representation | EulerXZXr |
const Representation | EulerXZYr |
const Representation | EulerYZYr |
const Representation | EulerZXYr |
const Representation | EulerYXYr |
const Representation | EulerYXZr |
const Representation | EulerZXZr |
const Representation | EulerXYZr |
const Representation | EulerZYZr |
const Representation | LastEuler = 23 |
const Representation | EulerRPY |
const Representation | Quat = 24 |
const Representation | Mat = 25 |
const Representation | Rodriguez = 26 |
const Representation | RepEnd = 27 |
Protected Types | |
typedef Matrix * | MatrixRef |
enum | Axis { X = 0, Y = 1, Z = 2, W = 3 } |
enum | Frame { Static = 0, Rotating = 1 } |
enum | Repetition { NonRepeating = 0, Repeating = 1 } |
enum | Parity { Even = 0, Odd = 1 } |
Protected Member Functions | |
void | changeRep (Representation newRep) const |
change the current internal representation to that specified. | |
Static Protected Member Functions | |
Representation | eulerRep (Axis axis, Parity parity, Repetition repetition, Frame frame) |
Frame | frame (Representation rep) |
Repetition | repetition (Representation rep) |
Parity | parity (Representation rep) |
Axis | axisI (Representation rep) |
Axis | axisJ (Representation rep) |
Axis | axisK (Representation rep) |
Axis | axisH (Representation rep) |
void | getRep (Representation rep, Axis &i, Axis &j, Axis &k, Axis &h, Parity &n, Repetition &s, Frame &f) |
Protected Attributes | |
Representation | rep |
Vector | v |
component of vector-based representations (Quat, Euler, etc.) | |
MatrixRef | m |
Matrix(3,3) ref if rep==Mat. | |
Static Protected Attributes | |
Byte | EulSafe [4] |
Byte | EulNext [4] |
Friends | |
std::ostream & | operator<< (std::ostream &out, const Orient &o) |
Represents an orientation in 3D using various internal representations.
There are many parameterizations and terms in use for rotations and orientation/attitude. Some of the more common are:
Definition at line 93 of file Orient.
|
|
|
Quat - Euler parameters expressed as a quaternion (v.x,v.y,v.z,w) Mat - 3x3 transformation matrix of direction cosines. EulerABC - Euler (possibly Cardan-Bryant) angles about the axes A, B & C in that order. EulerRPY - Euler (Cardan-Bryant) Roll, Pitch, Yaw angles (alpha,beta,gamma). This is equivelent to EulerXYZ and assumes that the x-axis points forward, y-axis points right and the z-axis up. (Aeronautical convention) Euler - alias for EulerZXZ Rodriguez - Rodriguez parameters (gamma1, gamma2, gamma3) Definition at line 108 of file Orient. Referenced by axisH(), axisI(), axisJ(), axisK(), changeRepresentation(), eulerRep(), frame(), getRep(), isEuler(), parity(), repetition(), representation(), and size(). |
|
Definition at line 314 of file Orient. Referenced by axisH(), axisI(), axisJ(), axisK(), and getRep(). |
|
|
|
|
|
Definition at line 316 of file Orient. Referenced by getRep(), and repetition(). |
|
construct a zero orientation. (like the identify transform - defaults to EulerRPY vector 0)
|
|
construct a zero orientation. (like the identify transform)
|
|
construct from a quaternion (x,y,z,w)
|
|
construct from EulerRPY
|
|
construct from a Vector.
|
|
construct from a 3x3 rotation transformation matrix
|
|
construct from a 3x3 rotation transformation matrix
|
|
|
|
|
|
Definition at line 329 of file Orient. References Axis, axisI(), axisK(), NonRepeating, repetition(), and Representation. |
|
Definition at line 326 of file Orient. References Axis, base::Byte, EulSafe, and Representation. |
|
Definition at line 327 of file Orient. References Axis, axisI(), base::Byte, EulNext, Odd, parity(), and Representation. |
|
Definition at line 328 of file Orient. References Axis, axisI(), base::Byte, EulNext, Odd, parity(), and Representation. Referenced by axisH(). |
|
change the current internal representation to that specified.
Referenced by changeRepresentation(). |
|
request change the internal representation (which may or may not be honored)
Definition at line 299 of file Orient. References changeRep(), and Representation. |
|
|
|
Definition at line 319 of file Orient. References base::Byte, and Representation. |
|
Definition at line 322 of file Orient. References base::Byte, Frame, and Representation. |
|
returns the inverse of B, such that omega = B(v)^-1 . dv/dt, where omega is angular velocity and v is this orientation
|
|
Referenced by operator Quat4(), rotate(), base::LineSegPathRep::rotate(), rotatePoint(), and base::LineSegPathRep::transform(). |
|
Definition at line 330 of file Orient. References Axis, base::Byte, EulNext, EulSafe, f, Frame, Parity, Repetition, and Representation. |
|
|
|
Referenced by operator Matrix3(). |
|
Referenced by operator Vector(). |
|
|
|
interpolate between the orientations lower and upper t:[0..1]
|
|
invert the rotation (i.e. switch to the reverse rotation)
|
|
|
|
Definition at line 178 of file Orient. References LastEuler, and Representation. |
|
automatic conversion to a rotation matrix
Definition at line 290 of file Orient. References getRotationMatrix3(). |
|
automatic conversion to a Quat4
Definition at line 294 of file Orient. References getQuat4(). |
|
automatic conversion to a Vector
Definition at line 286 of file Orient. References getVector(), Mat, and rep. |
|
Definition at line 239 of file Orient. References operator==(). |
|
|
|
|
|
Definition at line 216 of file Orient. References Mat, Quat, rep, base::vector< T >::resize(), base::Quat4::v, base::Quat4::w, base::Vector3::x, base::Vector3::y, and base::Vector3::z. |
|
equality. NB: expensive if representations are not the same (conversion attempted) Referenced by operator!=(). |
|
Definition at line 205 of file Orient. References base::Int, Mat, base::Real, and rep. |
|
Definition at line 194 of file Orient. References base::Int, Mat, base::Real, and rep. |
|
Definition at line 324 of file Orient. References base::Byte, Parity, and Representation. |
|
Definition at line 323 of file Orient. References base::Byte, Repetition, and Representation. Referenced by axisH(). |
|
Definition at line 174 of file Orient. References rep, and Representation. |
|
|
|
Definition at line 264 of file Orient. References getQuat4(), base::Point4, and base::Quat4::rotate(). |
|
Definition at line 252 of file Orient. References getQuat4(), base::Point3, and base::Quat4::rotate(). |
|
Definition at line 258 of file Orient. References getQuat4(), base::Point4, and base::Quat4::rotatePoint(). |
|
Definition at line 246 of file Orient. References getQuat4(), base::Point3, and base::Quat4::rotatePoint(). |
|
read or write object state to Serializer
Referenced by base::Serializer::operator()(). |
|
Referenced by base::Transform::getRotation(). |
|
Referenced by base::Transform::getRotation(). |
|
|
|
Definition at line 181 of file Orient. References base::Int, Mat, Quat, and Representation. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 138 of file Orient. Referenced by isEuler(). |
|
Matrix(3,3) ref if rep==Mat.
Definition at line 312 of file Orient. Referenced by base::operator<<(). |
|
Definition at line 143 of file Orient. Referenced by operator Vector(), operator=(), operator[](), and size(). |
|
Definition at line 142 of file Orient. Referenced by operator=(), and size(). |
|
Definition at line 309 of file Orient. Referenced by isEuler(), operator Vector(), base::operator<<(), operator=(), operator[](), representation(), and size(). |
|
|
|
|
|
component of vector-based representations (Quat, Euler, etc.)
Definition at line 310 of file Orient. Referenced by base::operator<<(). |