|
Rosetta
|
Unit quaternion 3-D orientation representation. More...
#include <Quaternion.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 (Axis const &u, Value const &angle, bool const precise=true) | |
| Quaternion (Quaternion const &q) | |
| Copy constructor. More... | |
| ~Quaternion () | |
| Destructor. More... | |
| Quaternion & | operator= (Quaternion const &q) |
| void | w (Value newval) |
| w More... | |
| void | x (Value newval) |
| x More... | |
| void | y (Value newval) |
| y More... | |
| void | z (Value newval) |
| z More... | |
| 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... | |
| std::string | to_string () const |
| to_string, useful for utility exits 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 > |
| template<class U > | |
| Quaternion< U > | operator* (Quaternion< U > const &q2, Quaternion< U > const &q1) |
| Quaternion * Quaternion (always normalizes return value) More... | |
| template<class U > | |
| Quaternion< U > | product (Quaternion< U > const &q2, Quaternion< U > const &q1, bool const precise=true) |
| Product: Quaternion * Quaternion. More... | |
| template<class U > | |
| bool | operator== (Quaternion< U > const &q1, Quaternion< U > const &q2) |
| Quaternion == Quaternion. More... | |
| template<class U > | |
| bool | operator!= (Quaternion< U > const &q1, Quaternion< U > const &q2) |
| Quaternion != Quaternion. More... | |
| template<class U > | |
| Value | dot (Quaternion< U > const &q1, Quaternion< U > const &q2) |
| Dot product. More... | |
| template<class U > | |
| Value | dot_product (Quaternion< U > const &q1, Quaternion< U > const &q2) |
| Dot product. More... | |
Unit quaternion 3-D orientation representation.
| typedef xyzVector< T > numeric::Quaternion< T >::Axis |
| typedef T const* numeric::Quaternion< T >::const_pointer |
| typedef T const& numeric::Quaternion< T >::const_reference |
| typedef T const* numeric::Quaternion< T >::ConstPointer |
| typedef T const& numeric::Quaternion< T >::ConstReference |
| typedef T* numeric::Quaternion< T >::Pointer |
| typedef T* numeric::Quaternion< T >::pointer |
| typedef T& numeric::Quaternion< T >::Reference |
| typedef T& numeric::Quaternion< T >::reference |
| typedef NumericTraits< T > numeric::Quaternion< T >::Traits |
| typedef T numeric::Quaternion< T >::Value |
| typedef T numeric::Quaternion< T >::value_type |
|
inline |
Default constructor.
Referenced by numeric::Quaternion< T >::conjugated(), numeric::Quaternion< T >::identity(), and numeric::Quaternion< T >::inverse().
|
inline |
Coordinate constructor.
References numeric::Quaternion< T >::is_normalized(), and numeric::Quaternion< T >::normalize().
|
inline |
|
inline |
Copy constructor.
|
inline |
Destructor.
|
inline |
Principal angle of rotation (on [0,2*pi])
References pyrosetta.distributed.cluster.exceptions::T, and numeric::Quaternion< T >::w_.
Referenced by numeric::BodyPosition< T >::angle().
|
inline |
Apply a successive Quaternion.
References numeric::Quaternion< T >::left_multiply_by(), and enumerate_junctions::q.
Referenced by pyrosetta.distributed.tasks.rosetta_scripts.BaseRosettaScriptsTask::execute().
|
inline |
Axis of Rotation unit vector (direction for angle on [0,2*pi])
References numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::BodyPosition< T >::axis().
|
inline |
Axis of rotation unit vector: Passed vector (direction for angle on [0,2*pi])
References kmeans_adaptive_kernel_density_bb_dependent_rotlib::u, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
|
inline |
Conjugate.
References numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
|
inline |
|
inline |
Dot product.
References enumerate_junctions::q, numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
|
inline |
Dot product.
References enumerate_junctions::q, numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
|
inlinestatic |
Identity Quaternion for expressions.
References pyrosetta.distributed.cluster.exceptions::T.
|
inlinestatic |
Identity named constructor.
References numeric::Quaternion< T >::Quaternion(), and pyrosetta.distributed.cluster.exceptions::T.
|
inline |
|
inline |
Invert.
References numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::BodyPosition< T >::invert().
|
inline |
Magnitude squared error within tolerance?
References numeric::Quaternion< T >::norm_squared_error(), and loops_kic::tol.
Referenced by numeric::Quaternion< T >::Quaternion().
|
inline |
Left multiply by a Quaternion.
References numeric::Quaternion< T >::normalize(), enumerate_junctions::q, numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::Quaternion< T >::apply(), and numeric::BodyPosition< T >::left_transform_by().
|
inline |
Left multiply by the inverse of a Quaternion.
References numeric::Quaternion< T >::normalize(), enumerate_junctions::q, numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::BodyPosition< T >::left_transform_by_inverse_of().
|
inline |
Magnitude: Should be one.
References numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::Quaternion< T >::magnitude_error().
|
inline |
Magnitude error.
References ObjexxFCL::abs(), numeric::Quaternion< T >::magnitude(), and pyrosetta.distributed.cluster.exceptions::T.
|
inline |
Magnitude squared: Should be one.
References numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::Quaternion< T >::magnitude_squared_error().
|
inline |
Magnitude squared error.
References ObjexxFCL::abs(), numeric::Quaternion< T >::magnitude_squared(), and pyrosetta.distributed.cluster.exceptions::T.
|
inline |
Norm: Should be one.
References numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::Quaternion< T >::norm_error().
|
inline |
Norm error.
References ObjexxFCL::abs(), numeric::Quaternion< T >::norm(), and pyrosetta.distributed.cluster.exceptions::T.
|
inline |
Norm squared: Should be one.
References numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::Quaternion< T >::norm_squared_error(), numeric::Quaternion< T >::normalize(), and numeric::Quaternion< T >::normalize_if_needed().
|
inline |
Norm squared error.
References ObjexxFCL::abs(), numeric::Quaternion< T >::norm_squared(), and pyrosetta.distributed.cluster.exceptions::T.
Referenced by numeric::Quaternion< T >::is_normalized(), and numeric::Quaternion< T >::not_normalized().
|
inline |
Normalize.
References numeric::Quaternion< T >::norm_squared(), pyrosetta.distributed.cluster.exceptions::T, numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::Quaternion< T >::left_multiply_by(), numeric::Quaternion< T >::left_multiply_by_inverse_of(), numeric::BodyPosition< T >::normalize(), numeric::BodyPosition< T >::q_refresh(), numeric::Quaternion< T >::Quaternion(), numeric::BodyPosition< T >::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.
References ObjexxFCL::abs(), numeric::Quaternion< T >::norm_squared(), pyrosetta.distributed.cluster.exceptions::T, loops_kic::tol, numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::BodyPosition< T >::normalize_if_needed().
|
inline |
Magnitude squared error exceeds tolerance?
References numeric::Quaternion< T >::norm_squared_error(), and loops_kic::tol.
|
inline |
|
inline |
Right multiply by a Quaternion.
References numeric::Quaternion< T >::normalize(), enumerate_junctions::q, numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::BodyPosition< T >::right_transform_by().
|
inline |
Right multiply by the inverse of a Quaternion.
References numeric::Quaternion< T >::normalize(), enumerate_junctions::q, numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::BodyPosition< T >::right_transform_by_inverse_of().
|
inline |
|
inline |
Identity.
References pyrosetta.distributed.cluster.exceptions::T, numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
Referenced by numeric::BodyPosition< T >::to_identity().
|
inline |
to_string, useful for utility exits
References numeric::interpolation::to_string(), numeric::Quaternion< T >::w_, numeric::Quaternion< T >::x_, numeric::Quaternion< T >::y_, and numeric::Quaternion< T >::z_.
|
inline |
w
References numeric::Quaternion< T >::w_.
|
inline |
w
References numeric::Quaternion< T >::w_.
|
inline |
w squared
References numeric::Quaternion< T >::w_.
|
inline |
|
inline |
|
inline |
x squared
References numeric::Quaternion< T >::x_.
|
inline |
|
inline |
|
inline |
y squared
References numeric::Quaternion< T >::y_.
|
inline |
|
inline |
|
inline |
z squared
References numeric::Quaternion< T >::z_.
|
friend |
|
friend |
Dot product.
|
friend |
Dot product.
|
friend |
Quaternion != Quaternion.
|
friend |
Quaternion * Quaternion (always normalizes return value)
|
friend |
Quaternion == Quaternion.
|
friend |
Product: Quaternion * Quaternion.
|
private |
w coordinate
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< T >::q_refresh(), numeric::BodyPosition< T >::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 >::to_string(), numeric::Quaternion< T >::w(), and numeric::Quaternion< T >::w_squared().
|
private |
x coordinate
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< T >::q_refresh(), numeric::BodyPosition< T >::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 >::to_string(), numeric::Quaternion< T >::x(), and numeric::Quaternion< T >::x_squared().
|
private |
y coordinate
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< T >::q_refresh(), numeric::BodyPosition< T >::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 >::to_string(), numeric::Quaternion< T >::y(), and numeric::Quaternion< T >::y_squared().
|
private |
z coordinate
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< T >::q_refresh(), numeric::BodyPosition< T >::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 >::to_string(), numeric::Quaternion< T >::z(), and numeric::Quaternion< T >::z_squared().