|
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.bindings.scores.simple_metrics.SimpleMetricDataAccessorBase::__setitem__(), pyrosetta.bindings.scores.base.PoseCacheAccessorBase::_maybe_delete_keys_from_sm_data(), and 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().