![]()  | 
  
    Rosetta
    2015.38
    
   | 
 
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 (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.
| typedef xyzVector< T > numeric::Quaternion< typename >::Axis | 
| typedef T const* numeric::Quaternion< typename >::const_pointer | 
| typedef T const& numeric::Quaternion< typename >::const_reference | 
| typedef T const* numeric::Quaternion< typename >::ConstPointer | 
| typedef T const& numeric::Quaternion< typename >::ConstReference | 
| typedef T* numeric::Quaternion< typename >::Pointer | 
| typedef T* numeric::Quaternion< typename >::pointer | 
| typedef T& numeric::Quaternion< typename >::Reference | 
| typedef T& numeric::Quaternion< typename >::reference | 
| typedef NumericTraits< T > numeric::Quaternion< typename >::Traits | 
| typedef T numeric::Quaternion< typename >::Value | 
| typedef T numeric::Quaternion< typename >::value_type | 
      
  | 
  inline | 
Default constructor.
Referenced by numeric::Quaternion< T >::conjugated(), numeric::Quaternion< T >::identity(), and numeric::Quaternion< T >::inverse().
      
  | 
  inline | 
Coordinate constructor.
      
  | 
  inline | 
Copy constructor.
      
  | 
  inline | 
Destructor.
      
  | 
  inline | 
Principal angle of rotation (on [0,2*pi])
Referenced by numeric::BodyPosition< typename >::angle().
      
  | 
  inline | 
Apply a successive Quaternion.
Referenced by src.protocols.jd2.RosettaScriptWrapper::apply_to_failure().
      
  | 
  inline | 
Axis of Rotation unit vector (direction for angle on [0,2*pi])
Referenced by numeric::BodyPosition< typename >::axis().
      
  | 
  inline | 
Axis of rotation unit vector: Passed vector (direction for angle on [0,2*pi])
      
  | 
  inline | 
Conjugate.
      
  | 
  inline | 
Conjugated.
      
  | 
  inline | 
Dot product.
      
  | 
  inline | 
Dot product.
      
  | 
  inlinestatic | 
Identity Quaternion for expressions.
      
  | 
  inlinestatic | 
Identity named constructor.
      
  | 
  inline | 
Inverse.
      
  | 
  inline | 
Invert.
Referenced by numeric::BodyPosition< typename >::invert().
      
  | 
  inline | 
Magnitude squared error within tolerance?
Referenced by numeric::Quaternion< T >::Quaternion().
      
  | 
  inline | 
Left multiply by a Quaternion.
Referenced by numeric::Quaternion< T >::apply(), and numeric::BodyPosition< typename >::left_transform_by().
      
  | 
  inline | 
Left multiply by the inverse of a Quaternion.
Referenced by numeric::BodyPosition< typename >::left_transform_by_inverse_of().
      
  | 
  inline | 
Magnitude: Should be one.
Referenced by numeric::Quaternion< T >::magnitude_error().
      
  | 
  inline | 
Magnitude error.
      
  | 
  inline | 
Magnitude squared: Should be one.
Referenced by numeric::Quaternion< T >::magnitude_squared_error().
      
  | 
  inline | 
Magnitude squared error.
      
  | 
  inline | 
Norm: Should be one.
Referenced by numeric::Quaternion< T >::norm_error().
      
  | 
  inline | 
Norm error.
      
  | 
  inline | 
Norm squared: Should be one.
Referenced by numeric::Quaternion< T >::norm_squared_error(), numeric::Quaternion< T >::normalize(), and numeric::Quaternion< T >::normalize_if_needed().
      
  | 
  inline | 
Norm squared error.
Referenced by numeric::Quaternion< T >::is_normalized(), and numeric::Quaternion< T >::not_normalized().
      
  | 
  inline | 
Normalize.
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.
Referenced by numeric::BodyPosition< typename >::normalize_if_needed().
      
  | 
  inline | 
Magnitude squared error exceeds tolerance?
      
  | 
  inline | 
      
  | 
  inline | 
Right multiply by a Quaternion.
Referenced by numeric::BodyPosition< typename >::right_transform_by().
      
  | 
  inline | 
Right multiply by the inverse of a Quaternion.
Referenced by numeric::BodyPosition< typename >::right_transform_by_inverse_of().
      
  | 
  inline | 
Swap.
      
  | 
  inline | 
Identity.
Referenced by numeric::BodyPosition< typename >::to_identity().
      
  | 
  inline | 
w
Referenced by numeric::operator>>(), and numeric::random::random_rotation().
      
  | 
  inline | 
w squared
      
  | 
  inline | 
x
Referenced by numeric::operator>>(), and numeric::random::random_rotation().
      
  | 
  inline | 
x squared
      
  | 
  inline | 
y
Referenced by numeric::operator>>(), and numeric::random::random_rotation().
      
  | 
  inline | 
y squared
      
  | 
  inline | 
z
Referenced by numeric::operator>>(), and numeric::random::random_rotation().
      
  | 
  inline | 
z squared
      
  | 
  friend | 
      
  | 
  friend | 
Dot product.
      
  | 
  friend | 
Dot product.
      
  | 
  friend | 
Quaternion != Quaternion.
      
  | 
  friend | 
      
  | 
  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< 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
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
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
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().
 1.8.7