Rosetta
|
Rigid body 3-D position/transform. More...
#include <BodyPosition.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 |
typedef xyzVector< T > | Point |
typedef xyzVector< T > | Vector |
typedef xyzVector< T > | Translation |
typedef xyzMatrix< T > | Rotation |
typedef numeric::Quaternion< T > | Quaternion |
Public Member Functions | |
BodyPosition () | |
Default constructor. More... | |
BodyPosition (Rotation const &R_a, Translation const &t_a) | |
Rotation + Translation constructor. More... | |
BodyPosition (Rotation const &R_a) | |
Rotation constructor. More... | |
BodyPosition (Quaternion const &q_a, Translation const &t_a) | |
Quaternion + Translation constructor. More... | |
BodyPosition (Quaternion const &q_a) | |
Quaternion constructor. More... | |
BodyPosition (Point const &, Vector const &x1, Vector const &u1, Point const &, Vector const &x2, Vector const &u2, Value const &cos, Value const &sin, Value const &csc) | |
Point + Vector constructor. More... | |
BodyPosition (BodyPosition const &bp) | |
Copy constructor. More... | |
~BodyPosition () | |
Destructor. More... | |
BodyPosition & | operator= (BodyPosition const &bp) |
Copy assignment. More... | |
Rotation const & | R () const |
Rotation. More... | |
Quaternion const & | q () const |
Quaternion. More... | |
Translation const & | t () const |
Translation. 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... | |
BodyPosition const & | operator() (Point &p) const |
Transform a Point. More... | |
BodyPosition const & | transform (Point &p) const |
Transform a Point. More... | |
BodyPosition const & | inverse_transform (Point &p) const |
Inverse transform a Point. More... | |
BodyPosition & | normalize () |
Normalize. More... | |
BodyPosition & | normalize_if_needed (Value const &tol=Traits::quaternion_tolerance()) |
Normalize if magnitude squared error exceeds tolerance. More... | |
BodyPosition & | to_identity () |
Identity. More... | |
BodyPosition & | invert () |
Invert. More... | |
BodyPosition & | apply (BodyPosition const &p, bool const precise=true) |
Apply a successive BodyPosition transformation. More... | |
BodyPosition & | left_transform_by (BodyPosition const &p, bool const precise=true) |
Left transform by a BodyPosition. More... | |
BodyPosition & | right_transform_by (BodyPosition const &p, bool const precise=true) |
Right transform by a BodyPosition. More... | |
BodyPosition & | left_transform_by_inverse_of (BodyPosition const &p, bool const precise=true) |
Left transform by the inverse of a BodyPosition. More... | |
BodyPosition & | right_transform_by_inverse_of (BodyPosition const &p, bool const precise=true) |
Right transform by the inverse of a BodyPosition. More... | |
BodyPosition | inverse () const |
Inverse. More... | |
Point | transformed (Point const &p) const |
Transformed Point. More... | |
Point | inverse_transformed (Point const &p) const |
Inverse transformed Point. More... | |
Translation | inverse_translation () const |
Inverse translation. More... | |
Static Public Member Functions | |
static BodyPosition | identity () |
Identity named constructor. More... | |
static BodyPosition const & | I () |
Identity BodyPosition for expressions. More... | |
Private Member Functions | |
BodyPosition const & | R_refresh (bool const precise=true) const |
Refresh rotation matrix from Quaternion. More... | |
BodyPosition const & | q_refresh (bool const precise=true) const |
Refresh Quaternion from rotation matrix. More... | |
Private Attributes | |
Rotation | R_ |
Rotation matrix. More... | |
bool | R_fresh_ |
Rotation matrix status. More... | |
Quaternion | q_ |
Quaternion. More... | |
bool | q_fresh_ |
Quaternion status. More... | |
Translation | t_ |
Translation. More... | |
Friends | |
bool | operator== (BodyPosition const &p1, BodyPosition const &p2) |
BodyPosition == BodyPosition. More... | |
bool | operator!= (BodyPosition const &p1, BodyPosition const &p2) |
BodyPosition != BodyPosition. More... | |
Rigid body 3-D position/transform.
typedef xyzVector< T > numeric::BodyPosition< T >::Axis |
typedef T const* numeric::BodyPosition< T >::const_pointer |
typedef T const& numeric::BodyPosition< T >::const_reference |
typedef T const* numeric::BodyPosition< T >::ConstPointer |
typedef T const& numeric::BodyPosition< T >::ConstReference |
typedef xyzVector< T > numeric::BodyPosition< T >::Point |
typedef T* numeric::BodyPosition< T >::Pointer |
typedef T* numeric::BodyPosition< T >::pointer |
typedef numeric::Quaternion< T > numeric::BodyPosition< T >::Quaternion |
typedef T& numeric::BodyPosition< T >::Reference |
typedef T& numeric::BodyPosition< T >::reference |
typedef xyzMatrix< T > numeric::BodyPosition< T >::Rotation |
typedef NumericTraits< T > numeric::BodyPosition< T >::Traits |
typedef xyzVector< T > numeric::BodyPosition< T >::Translation |
typedef T numeric::BodyPosition< T >::Value |
typedef T numeric::BodyPosition< T >::value_type |
typedef xyzVector< T > numeric::BodyPosition< T >::Vector |
|
inline |
Default constructor.
Referenced by numeric::BodyPosition< T >::identity(), and numeric::BodyPosition< T >::inverse().
|
inline |
Rotation + Translation constructor.
|
inline |
Rotation constructor.
|
inline |
Quaternion + Translation constructor.
|
inline |
Quaternion constructor.
|
inline |
Point + Vector constructor.
References numeric::csc(), pyrosetta.distributed.cluster.exceptions::T, and y1.
|
inline |
Copy constructor.
|
inline |
Destructor.
|
inline |
Principal angle of rotation (on [0,2*pi])
References numeric::Quaternion< T >::angle(), numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, and numeric::BodyPosition< T >::q_refresh().
|
inline |
Apply a successive BodyPosition transformation.
References numeric::BodyPosition< T >::left_transform_by(), and kmeans_adaptive_kernel_density_bb_dependent_rotlib::p.
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 >::axis(), numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, and numeric::BodyPosition< T >::q_refresh().
|
inline |
Axis of rotation unit vector: Passed vector (direction for angle on [0,2*pi])
References numeric::Quaternion< T >::axis(), numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, numeric::BodyPosition< T >::q_refresh(), and kmeans_adaptive_kernel_density_bb_dependent_rotlib::u.
|
inlinestatic |
Identity BodyPosition for expressions.
|
inlinestatic |
Identity named constructor.
References numeric::BodyPosition< T >::BodyPosition().
|
inline |
Inverse.
References numeric::BodyPosition< T >::BodyPosition().
|
inline |
|
inline |
|
inline |
Inverse translation.
References numeric::BodyPosition< T >::R_, numeric::BodyPosition< T >::R_fresh_, numeric::BodyPosition< T >::R_refresh(), numeric::BodyPosition< T >::t_, and numeric::transpose_product().
|
inline |
Invert.
References numeric::inplace_product(), numeric::Quaternion< T >::invert(), numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, numeric::BodyPosition< T >::R_, numeric::BodyPosition< T >::R_fresh_, numeric::BodyPosition< T >::R_refresh(), pyrosetta.distributed.cluster.exceptions::T, and numeric::BodyPosition< T >::t_.
|
inline |
Left transform by a BodyPosition.
References numeric::Quaternion< T >::left_multiply_by(), kmeans_adaptive_kernel_density_bb_dependent_rotlib::p, numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, numeric::BodyPosition< T >::q_refresh(), numeric::BodyPosition< T >::R_fresh_, and numeric::BodyPosition< T >::t_.
Referenced by numeric::BodyPosition< T >::apply().
|
inline |
Left transform by the inverse of a BodyPosition.
References numeric::Quaternion< T >::left_multiply_by_inverse_of(), kmeans_adaptive_kernel_density_bb_dependent_rotlib::p, numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, numeric::BodyPosition< T >::q_refresh(), numeric::BodyPosition< T >::R_fresh_, and numeric::BodyPosition< T >::t_.
|
inline |
|
inline |
Normalize if magnitude squared error exceeds tolerance.
References numeric::Quaternion< T >::normalize_if_needed(), numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, numeric::BodyPosition< T >::q_refresh(), numeric::BodyPosition< T >::R_fresh_, and loops_kic::tol.
|
inline |
|
inline |
Copy assignment.
References numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, numeric::BodyPosition< T >::R_, numeric::BodyPosition< T >::R_fresh_, and numeric::BodyPosition< T >::t_.
|
inline |
|
inlineprivate |
Refresh Quaternion from rotation matrix.
References numeric::Quaternion< T >::normalize(), numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, numeric::BodyPosition< T >::R_, numeric::BodyPosition< T >::R_fresh_, numeric::BodyPosition< T >::R_refresh(), docking::s, 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 >::angle(), numeric::BodyPosition< T >::axis(), numeric::BodyPosition< T >::left_transform_by(), numeric::BodyPosition< T >::left_transform_by_inverse_of(), numeric::BodyPosition< T >::normalize(), numeric::BodyPosition< T >::normalize_if_needed(), numeric::BodyPosition< T >::q(), numeric::BodyPosition< T >::right_transform_by(), and numeric::BodyPosition< T >::right_transform_by_inverse_of().
|
inline |
Rotation.
References numeric::BodyPosition< T >::R_, numeric::BodyPosition< T >::R_fresh_, and numeric::BodyPosition< T >::R_refresh().
|
inlineprivate |
Refresh rotation matrix from Quaternion.
References numeric::Quaternion< T >::normalize(), numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, numeric::BodyPosition< T >::R_, numeric::BodyPosition< T >::R_fresh_, 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 >::inverse_transform(), numeric::BodyPosition< T >::inverse_transformed(), numeric::BodyPosition< T >::inverse_translation(), numeric::BodyPosition< T >::invert(), numeric::BodyPosition< T >::operator()(), numeric::BodyPosition< T >::q_refresh(), numeric::BodyPosition< T >::R(), numeric::BodyPosition< T >::transform(), and numeric::BodyPosition< T >::transformed().
|
inline |
Right transform by a BodyPosition.
References kmeans_adaptive_kernel_density_bb_dependent_rotlib::p, numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, numeric::BodyPosition< T >::q_refresh(), numeric::BodyPosition< T >::R_fresh_, numeric::Quaternion< T >::right_multiply_by(), numeric::BodyPosition< T >::t_, and numeric::BodyPosition< T >::transformed().
|
inline |
Right transform by the inverse of a BodyPosition.
References kmeans_adaptive_kernel_density_bb_dependent_rotlib::p, numeric::BodyPosition< T >::q_, numeric::BodyPosition< T >::q_fresh_, numeric::BodyPosition< T >::q_refresh(), numeric::BodyPosition< T >::R_fresh_, numeric::Quaternion< T >::right_multiply_by_inverse_of(), numeric::BodyPosition< T >::t_, and numeric::BodyPosition< T >::transform().
|
inline |
Translation.
References numeric::BodyPosition< T >::t_.
|
inline |
|
inline |
Transform a Point.
References numeric::inplace_product(), kmeans_adaptive_kernel_density_bb_dependent_rotlib::p, numeric::BodyPosition< T >::R_, numeric::BodyPosition< T >::R_fresh_, numeric::BodyPosition< T >::R_refresh(), and numeric::BodyPosition< T >::t_.
Referenced by numeric::BodyPosition< T >::right_transform_by_inverse_of().
|
inline |
Transformed Point.
References kmeans_adaptive_kernel_density_bb_dependent_rotlib::p, numeric::product(), numeric::BodyPosition< T >::R_, numeric::BodyPosition< T >::R_fresh_, numeric::BodyPosition< T >::R_refresh(), and numeric::BodyPosition< T >::t_.
Referenced by numeric::BodyPosition< T >::right_transform_by().
|
friend |
|
friend |
|
mutableprivate |
Referenced by numeric::BodyPosition< T >::angle(), numeric::BodyPosition< T >::axis(), numeric::BodyPosition< T >::invert(), numeric::BodyPosition< T >::left_transform_by(), numeric::BodyPosition< T >::left_transform_by_inverse_of(), numeric::BodyPosition< T >::normalize(), numeric::BodyPosition< T >::normalize_if_needed(), numeric::BodyPosition< T >::operator=(), numeric::BodyPosition< T >::q(), numeric::BodyPosition< T >::q_refresh(), numeric::BodyPosition< T >::R_refresh(), numeric::BodyPosition< T >::right_transform_by(), numeric::BodyPosition< T >::right_transform_by_inverse_of(), and numeric::BodyPosition< T >::to_identity().
|
mutableprivate |
Quaternion status.
Referenced by numeric::BodyPosition< T >::angle(), numeric::BodyPosition< T >::axis(), numeric::BodyPosition< T >::invert(), numeric::BodyPosition< T >::left_transform_by(), numeric::BodyPosition< T >::left_transform_by_inverse_of(), numeric::BodyPosition< T >::normalize(), numeric::BodyPosition< T >::normalize_if_needed(), numeric::BodyPosition< T >::operator=(), numeric::BodyPosition< T >::q(), numeric::BodyPosition< T >::q_refresh(), numeric::BodyPosition< T >::R_refresh(), numeric::BodyPosition< T >::right_transform_by(), numeric::BodyPosition< T >::right_transform_by_inverse_of(), and numeric::BodyPosition< T >::to_identity().
|
mutableprivate |
Rotation matrix.
Referenced by numeric::BodyPosition< T >::inverse_transform(), numeric::BodyPosition< T >::inverse_transformed(), numeric::BodyPosition< T >::inverse_translation(), numeric::BodyPosition< T >::invert(), numeric::BodyPosition< T >::operator()(), numeric::BodyPosition< T >::operator=(), numeric::BodyPosition< T >::q_refresh(), numeric::BodyPosition< T >::R(), numeric::BodyPosition< T >::R_refresh(), numeric::BodyPosition< T >::to_identity(), numeric::BodyPosition< T >::transform(), and numeric::BodyPosition< T >::transformed().
|
mutableprivate |
Rotation matrix status.
Referenced by numeric::BodyPosition< T >::inverse_transform(), numeric::BodyPosition< T >::inverse_transformed(), numeric::BodyPosition< T >::inverse_translation(), numeric::BodyPosition< T >::invert(), numeric::BodyPosition< T >::left_transform_by(), numeric::BodyPosition< T >::left_transform_by_inverse_of(), numeric::BodyPosition< T >::normalize(), numeric::BodyPosition< T >::normalize_if_needed(), numeric::BodyPosition< T >::operator()(), numeric::BodyPosition< T >::operator=(), numeric::BodyPosition< T >::q_refresh(), numeric::BodyPosition< T >::R(), numeric::BodyPosition< T >::R_refresh(), numeric::BodyPosition< T >::right_transform_by(), numeric::BodyPosition< T >::right_transform_by_inverse_of(), numeric::BodyPosition< T >::to_identity(), numeric::BodyPosition< T >::transform(), and numeric::BodyPosition< T >::transformed().
|
private |
Translation.
Referenced by numeric::BodyPosition< T >::inverse_transform(), numeric::BodyPosition< T >::inverse_transformed(), numeric::BodyPosition< T >::inverse_translation(), numeric::BodyPosition< T >::invert(), numeric::BodyPosition< T >::left_transform_by(), numeric::BodyPosition< T >::left_transform_by_inverse_of(), numeric::BodyPosition< T >::operator()(), numeric::BodyPosition< T >::operator=(), numeric::BodyPosition< T >::right_transform_by(), numeric::BodyPosition< T >::right_transform_by_inverse_of(), numeric::BodyPosition< T >::t(), numeric::BodyPosition< T >::to_identity(), numeric::BodyPosition< T >::transform(), and numeric::BodyPosition< T >::transformed().