Rosetta
|
Unit quaternion 3-D orientation representation. More...
#include <Quaternion.fwd.hh>
Public Types | |
typedef T | Value |
typedef T & | Reference |
typedef T const & | ConstReference |
typedef T * | Pointer |
typedef T const * | ConstPointer |
typedef T | value_type |
typedef T & | reference |
typedef T const & | const_reference |
typedef T * | pointer |
typedef T const * | const_pointer |
typedef NumericTraits< T > | Traits |
typedef xyzVector< T > | Axis |
Public Member Functions | |
Quaternion () | |
Default constructor. More... | |
Quaternion (Value const &w_a, Value const &x_a, Value const &y_a, Value const &z_a, bool const precise=true) | |
Coordinate constructor. More... | |
Quaternion (Quaternion const &q) | |
Copy constructor. More... | |
~Quaternion () | |
Destructor. More... | |
Quaternion & | operator= (Quaternion const &q) |
Value const & | w () const |
w More... | |
Value const & | x () const |
x More... | |
Value const & | y () const |
y More... | |
Value const & | z () const |
z More... | |
Value | w_squared () const |
w squared More... | |
Value | x_squared () const |
x squared More... | |
Value | y_squared () const |
y squared More... | |
Value | z_squared () const |
z squared More... | |
Value | norm () const |
Norm: Should be one. More... | |
Value | norm_squared () const |
Norm squared: Should be one. More... | |
Value | norm_error () const |
Norm error. More... | |
Value | norm_squared_error () const |
Norm squared error. More... | |
Value | magnitude () const |
Magnitude: Should be one. More... | |
Value | magnitude_squared () const |
Magnitude squared: Should be one. More... | |
Value | magnitude_error () const |
Magnitude error. More... | |
Value | magnitude_squared_error () const |
Magnitude squared error. More... | |
bool | is_normalized (Value const &tol=Traits::quaternion_tolerance()) const |
Magnitude squared error within tolerance? More... | |
bool | not_normalized (Value const &tol=Traits::quaternion_tolerance()) const |
Magnitude squared error exceeds tolerance? More... | |
Value | angle () const |
Principal angle of rotation (on [0,2*pi]) More... | |
Axis | axis () const |
Axis of Rotation unit vector (direction for angle on [0,2*pi]) More... | |
Axis & | axis (Axis &u) const |
Axis of rotation unit vector: Passed vector (direction for angle on [0,2*pi]) More... | |
Value | dot (Quaternion const &q) const |
Dot product. More... | |
Value | dot_product (Quaternion const &q) const |
Dot product. More... | |
Quaternion & | normalize () |
Normalize. More... | |
Quaternion & | normalize_if_needed (Value const &tol=Traits::quaternion_tolerance()) |
Normalize if magnitude squared error exceeds tolerance. More... | |
Quaternion & | to_identity () |
Identity. More... | |
Quaternion & | conjugate () |
Conjugate. More... | |
Quaternion & | invert () |
Invert. More... | |
Quaternion & | apply (Quaternion const &q, bool const precise=true) |
Apply a successive Quaternion. More... | |
Quaternion & | left_multiply_by (Quaternion const &q, bool const precise=true) |
Left multiply by a Quaternion. More... | |
Quaternion & | right_multiply_by (Quaternion const &q, bool const precise=true) |
Right multiply by a Quaternion. More... | |
Quaternion & | left_multiply_by_inverse_of (Quaternion const &q, bool const precise=true) |
Left multiply by the inverse of a Quaternion. More... | |
Quaternion & | right_multiply_by_inverse_of (Quaternion const &q, bool const precise=true) |
Right multiply by the inverse of a Quaternion. More... | |
void | swap (Quaternion &q) |
Swap. More... | |
Quaternion | conjugated () const |
Conjugated. More... | |
Quaternion | inverse () const |
Inverse. More... | |
Static Public Member Functions | |
static Quaternion | identity () |
Identity named constructor. More... | |
static Quaternion const & | I () |
Identity Quaternion for expressions. More... | |
Private Attributes | |
Value | w_ |
w coordinate More... | |
Value | x_ |
x coordinate More... | |
Value | y_ |
y coordinate More... | |
Value | z_ |
z coordinate More... | |
Friends | |
class | BodyPosition< T > |
Quaternion | operator* (Quaternion const &q2, Quaternion const &q1) |
Quaternion * Quaternion. More... | |
Quaternion | product (Quaternion const &q2, Quaternion const &q1, bool const precise=true) |
Product: Quaternion * Quaternion. More... | |
bool | operator== (Quaternion const &q1, Quaternion const &q2) |
Quaternion == Quaternion. More... | |
bool | operator!= (Quaternion const &q1, Quaternion const &q2) |
Quaternion != Quaternion. More... | |
Value | dot (Quaternion const &q1, Quaternion const &q2) |
Dot product. More... | |
Value | dot_product (Quaternion const &q1, Quaternion const &q2) |
Dot product. More... | |
Unit quaternion 3-D orientation representation.
Definition at line 23 of file Quaternion.fwd.hh.
typedef xyzVector< T > numeric::Quaternion< typename >::Axis |
Definition at line 75 of file Quaternion.hh.
typedef T const* numeric::Quaternion< typename >::const_pointer |
Definition at line 69 of file Quaternion.hh.
typedef T const& numeric::Quaternion< typename >::const_reference |
Definition at line 67 of file Quaternion.hh.
typedef T const* numeric::Quaternion< typename >::ConstPointer |
Definition at line 62 of file Quaternion.hh.
typedef T const& numeric::Quaternion< typename >::ConstReference |
Definition at line 60 of file Quaternion.hh.
typedef T* numeric::Quaternion< typename >::Pointer |
Definition at line 61 of file Quaternion.hh.
typedef T* numeric::Quaternion< typename >::pointer |
Definition at line 68 of file Quaternion.hh.
typedef T& numeric::Quaternion< typename >::Reference |
Definition at line 59 of file Quaternion.hh.
typedef T& numeric::Quaternion< typename >::reference |
Definition at line 66 of file Quaternion.hh.
typedef NumericTraits< T > numeric::Quaternion< typename >::Traits |
Definition at line 72 of file Quaternion.hh.
typedef T numeric::Quaternion< typename >::Value |
Definition at line 58 of file Quaternion.hh.
typedef T numeric::Quaternion< typename >::value_type |
Definition at line 65 of file Quaternion.hh.
|
inline |
Default constructor.
Definition at line 83 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::conjugated(), numeric::Quaternion< T >::identity(), and numeric::Quaternion< T >::inverse().
|
inline |
Coordinate constructor.
Definition at line 93 of file Quaternion.hh.
|
inline |
Copy constructor.
Definition at line 122 of file Quaternion.hh.
|
inline |
Destructor.
Definition at line 132 of file Quaternion.hh.
|
inline |
Principal angle of rotation (on [0,2*pi])
Definition at line 320 of file Quaternion.hh.
Referenced by numeric::BodyPosition< typename >::angle().
|
inline |
Apply a successive Quaternion.
Definition at line 444 of file Quaternion.hh.
Referenced by src.protocols.jd2.RosettaScriptWrapper::apply_to_failure().
|
inline |
Axis of Rotation unit vector (direction for angle on [0,2*pi])
Definition at line 329 of file Quaternion.hh.
Referenced by numeric::BodyPosition< typename >::axis().
|
inline |
Axis of rotation unit vector: Passed vector (direction for angle on [0,2*pi])
Definition at line 338 of file Quaternion.hh.
|
inline |
Conjugate.
Definition at line 420 of file Quaternion.hh.
|
inline |
Conjugated.
Definition at line 537 of file Quaternion.hh.
|
inline |
Dot product.
Definition at line 350 of file Quaternion.hh.
|
inline |
Dot product.
Definition at line 359 of file Quaternion.hh.
|
inlinestatic |
Identity Quaternion for expressions.
Definition at line 597 of file Quaternion.hh.
|
inlinestatic |
Identity named constructor.
Definition at line 114 of file Quaternion.hh.
|
inline |
Inverse.
Definition at line 546 of file Quaternion.hh.
|
inline |
Invert.
Definition at line 432 of file Quaternion.hh.
Referenced by numeric::BodyPosition< typename >::invert().
|
inline |
Magnitude squared error within tolerance?
Definition at line 302 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::Quaternion().
|
inline |
Left multiply by a Quaternion.
Definition at line 453 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::apply(), and numeric::BodyPosition< typename >::left_transform_by().
|
inline |
Left multiply by the inverse of a Quaternion.
Definition at line 487 of file Quaternion.hh.
Referenced by numeric::BodyPosition< typename >::left_transform_by_inverse_of().
|
inline |
Magnitude: Should be one.
Definition at line 266 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::magnitude_error().
|
inline |
Magnitude error.
Definition at line 284 of file Quaternion.hh.
|
inline |
Magnitude squared: Should be one.
Definition at line 275 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::magnitude_squared_error().
|
inline |
Magnitude squared error.
Definition at line 293 of file Quaternion.hh.
|
inline |
Norm: Should be one.
Definition at line 230 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::norm_error().
|
inline |
Norm error.
Definition at line 248 of file Quaternion.hh.
|
inline |
Norm squared: Should be one.
Definition at line 239 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::norm_squared_error(), numeric::Quaternion< T >::normalize(), and numeric::Quaternion< T >::normalize_if_needed().
|
inline |
Norm squared error.
Definition at line 257 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::is_normalized(), and numeric::Quaternion< T >::not_normalized().
|
inline |
Normalize.
Definition at line 371 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::left_multiply_by(), numeric::Quaternion< T >::left_multiply_by_inverse_of(), numeric::BodyPosition< typename >::normalize(), numeric::BodyPosition< typename >::q_refresh(), numeric::Quaternion< T >::Quaternion(), numeric::BodyPosition< typename >::R_refresh(), numeric::Quaternion< T >::right_multiply_by(), and numeric::Quaternion< T >::right_multiply_by_inverse_of().
|
inline |
Normalize if magnitude squared error exceeds tolerance.
Definition at line 389 of file Quaternion.hh.
Referenced by numeric::BodyPosition< typename >::normalize_if_needed().
|
inline |
Magnitude squared error exceeds tolerance?
Definition at line 311 of file Quaternion.hh.
|
inline |
Definition at line 140 of file Quaternion.hh.
|
inline |
Right multiply by a Quaternion.
Definition at line 470 of file Quaternion.hh.
Referenced by numeric::BodyPosition< typename >::right_transform_by().
|
inline |
Right multiply by the inverse of a Quaternion.
Definition at line 504 of file Quaternion.hh.
Referenced by numeric::BodyPosition< typename >::right_transform_by_inverse_of().
|
inline |
Swap.
Definition at line 521 of file Quaternion.hh.
|
inline |
Identity.
Definition at line 407 of file Quaternion.hh.
Referenced by numeric::BodyPosition< typename >::to_identity().
|
inline |
w
Definition at line 158 of file Quaternion.hh.
Referenced by numeric::operator>>(), and numeric::random::random_rotation().
|
inline |
w squared
Definition at line 194 of file Quaternion.hh.
|
inline |
x
Definition at line 167 of file Quaternion.hh.
Referenced by numeric::operator>>(), and numeric::random::random_rotation().
|
inline |
x squared
Definition at line 203 of file Quaternion.hh.
|
inline |
y
Definition at line 176 of file Quaternion.hh.
Referenced by numeric::operator>>(), and numeric::random::random_rotation().
|
inline |
y squared
Definition at line 212 of file Quaternion.hh.
|
inline |
z
Definition at line 185 of file Quaternion.hh.
Referenced by numeric::operator>>(), and numeric::random::random_rotation().
|
inline |
z squared
Definition at line 221 of file Quaternion.hh.
|
friend |
Definition at line 51 of file Quaternion.hh.
|
friend |
Dot product.
Definition at line 631 of file Quaternion.hh.
|
friend |
Dot product.
Definition at line 641 of file Quaternion.hh.
|
friend |
Quaternion != Quaternion.
Definition at line 621 of file Quaternion.hh.
|
friend |
Definition at line 556 of file Quaternion.hh.
|
friend |
Quaternion == Quaternion.
Definition at line 611 of file Quaternion.hh.
|
friend |
Product: Quaternion * Quaternion.
Definition at line 571 of file Quaternion.hh.
|
private |
w coordinate
Definition at line 651 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::angle(), numeric::Quaternion< T >::conjugated(), numeric::Quaternion< T >::dot(), numeric::Quaternion< T >::dot_product(), numeric::Quaternion< T >::inverse(), numeric::Quaternion< T >::left_multiply_by(), numeric::Quaternion< T >::left_multiply_by_inverse_of(), numeric::Quaternion< T >::magnitude(), numeric::Quaternion< T >::magnitude_squared(), numeric::Quaternion< T >::norm(), numeric::Quaternion< T >::norm_squared(), numeric::Quaternion< T >::normalize(), numeric::Quaternion< T >::normalize_if_needed(), numeric::Quaternion< T >::operator=(), numeric::BodyPosition< typename >::q_refresh(), numeric::BodyPosition< typename >::R_refresh(), numeric::Quaternion< T >::right_multiply_by(), numeric::Quaternion< T >::right_multiply_by_inverse_of(), numeric::Quaternion< T >::swap(), numeric::Quaternion< T >::to_identity(), numeric::Quaternion< T >::w(), and numeric::Quaternion< T >::w_squared().
|
private |
x coordinate
Definition at line 654 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::axis(), numeric::Quaternion< T >::conjugate(), numeric::Quaternion< T >::conjugated(), numeric::Quaternion< T >::dot(), numeric::Quaternion< T >::dot_product(), numeric::Quaternion< T >::inverse(), numeric::Quaternion< T >::invert(), numeric::Quaternion< T >::left_multiply_by(), numeric::Quaternion< T >::left_multiply_by_inverse_of(), numeric::Quaternion< T >::magnitude(), numeric::Quaternion< T >::magnitude_squared(), numeric::Quaternion< T >::norm(), numeric::Quaternion< T >::norm_squared(), numeric::Quaternion< T >::normalize(), numeric::Quaternion< T >::normalize_if_needed(), numeric::Quaternion< T >::operator=(), numeric::BodyPosition< typename >::q_refresh(), numeric::BodyPosition< typename >::R_refresh(), numeric::Quaternion< T >::right_multiply_by(), numeric::Quaternion< T >::right_multiply_by_inverse_of(), numeric::Quaternion< T >::swap(), numeric::Quaternion< T >::to_identity(), numeric::Quaternion< T >::x(), and numeric::Quaternion< T >::x_squared().
|
private |
y coordinate
Definition at line 657 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::axis(), numeric::Quaternion< T >::conjugate(), numeric::Quaternion< T >::conjugated(), numeric::Quaternion< T >::dot(), numeric::Quaternion< T >::dot_product(), numeric::Quaternion< T >::inverse(), numeric::Quaternion< T >::invert(), numeric::Quaternion< T >::left_multiply_by(), numeric::Quaternion< T >::left_multiply_by_inverse_of(), numeric::Quaternion< T >::magnitude(), numeric::Quaternion< T >::magnitude_squared(), numeric::Quaternion< T >::norm(), numeric::Quaternion< T >::norm_squared(), numeric::Quaternion< T >::normalize(), numeric::Quaternion< T >::normalize_if_needed(), numeric::Quaternion< T >::operator=(), numeric::BodyPosition< typename >::q_refresh(), numeric::BodyPosition< typename >::R_refresh(), numeric::Quaternion< T >::right_multiply_by(), numeric::Quaternion< T >::right_multiply_by_inverse_of(), numeric::Quaternion< T >::swap(), numeric::Quaternion< T >::to_identity(), numeric::Quaternion< T >::y(), and numeric::Quaternion< T >::y_squared().
|
private |
z coordinate
Definition at line 660 of file Quaternion.hh.
Referenced by numeric::Quaternion< T >::axis(), numeric::Quaternion< T >::conjugate(), numeric::Quaternion< T >::conjugated(), numeric::Quaternion< T >::dot(), numeric::Quaternion< T >::dot_product(), numeric::Quaternion< T >::inverse(), numeric::Quaternion< T >::invert(), numeric::Quaternion< T >::left_multiply_by(), numeric::Quaternion< T >::left_multiply_by_inverse_of(), numeric::Quaternion< T >::magnitude(), numeric::Quaternion< T >::magnitude_squared(), numeric::Quaternion< T >::norm(), numeric::Quaternion< T >::norm_squared(), numeric::Quaternion< T >::normalize(), numeric::Quaternion< T >::normalize_if_needed(), numeric::Quaternion< T >::operator=(), numeric::BodyPosition< typename >::q_refresh(), numeric::BodyPosition< typename >::R_refresh(), numeric::Quaternion< T >::right_multiply_by(), numeric::Quaternion< T >::right_multiply_by_inverse_of(), numeric::Quaternion< T >::swap(), numeric::Quaternion< T >::to_identity(), numeric::Quaternion< T >::z(), and numeric::Quaternion< T >::z_squared().