IMP  2.2.1
The Integrative Modeling Platform
IMP::kinematics::Joint Class Reference

#include <IMP/kinematics/Joint.h>

+ Inheritance diagram for IMP::kinematics::Joint:

Public Member Functions

 Joint (IMP::core::RigidBody parent, IMP::core::RigidBody child)
 
IMP::core::RigidBody get_child_node () const
 
KinematicForestget_owner_kf () const
 
IMP::core::RigidBody get_parent_node () const
 
virtual const
IMP::algebra::Transformation3D
get_transformation_child_to_parent () const
 
virtual std::string get_type_name () const
 
virtual ::IMP::base::VersionInfo get_version_info () const
 Get information about the module and version of the object.
 
- Public Member Functions inherited from IMP::base::Object
virtual void clear_caches ()
 
virtual void do_destroy ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
void set_check_level (CheckLevel l)
 
void set_log_level (LogLevel l)
 Set the logging level used in this object. More...
 
void set_was_used (bool tf) const
 
void show (std::ostream &out=std::cout) const
 
const std::string & get_name () const
 
void set_name (std::string name)
 

Protected Member Functions

virtual const
IMP::algebra::Transformation3D
get_transformation_child_to_parent_no_checks () const
 
void set_owner_kf (KinematicForest *kf)
 
void set_transformation_child_to_parent_no_checks (IMP::algebra::Transformation3D transformation)
 
virtual void update_child_node_reference_frame () const
 
virtual void update_joint_from_cartesian_witnesses ()
 
- Protected Member Functions inherited from IMP::base::Object
 Object (std::string name)
 Construct an object with the given name. More...
 

Detailed Description

Base class for joints between rigid bodies in a kinematic tree.

Definition at line 33 of file Joint.h.

Constructor & Destructor Documentation

IMP::kinematics::Joint::Joint ( IMP::core::RigidBody  parent,
IMP::core::RigidBody  child 
)

An abstract class for a joint between a parent and a child

Parameters
parentrigid body upstream of this joint
childrigid body downstream of this joint
Note
we currently assume that a parent cannot be switched

Member Function Documentation

virtual const IMP::algebra::Transformation3D& IMP::kinematics::Joint::get_transformation_child_to_parent ( ) const
virtual

returns the transformation of a vector from the child reference frame to the parent reference frame in a safe way (= after updating internal coordinates if needed)

virtual const IMP::algebra::Transformation3D& IMP::kinematics::Joint::get_transformation_child_to_parent_no_checks ( ) const
protectedvirtual

returns the transformation of a vector from the child reference frame to the parent reference frame, without any checks (= without updating internal coordinates even if needed)

Definition at line 79 of file Joint.h.

void IMP::kinematics::Joint::set_owner_kf ( KinematicForest kf)
protected

this sets the kinematic forest that manages this joint, and also declares it as used (

See Also
Object::set_was_used()

Definition at line 89 of file Joint.h.

+ Here is the call graph for this function:

void IMP::kinematics::Joint::set_transformation_child_to_parent_no_checks ( IMP::algebra::Transformation3D  transformation)
protected

Sets the transfromation from parent to child reference frame (without any checks that internal coords are updated, and without marking the owner internal coords as changed)

Definition at line 99 of file Joint.h.

virtual void IMP::kinematics::Joint::update_child_node_reference_frame ( ) const
protectedvirtual

Updates the reference frame of the rigid body directly downstream of this joint

Reimplemented in IMP::kinematics::CompositeJoint, and IMP::kinematics::RevoluteJoint.

virtual void IMP::kinematics::Joint::update_joint_from_cartesian_witnesses ( )
protectedvirtual

Updates the joint transformation based on external coordinates of 'witness' particles.

Note
It is assumed that external coordinates are updated before calling this function.
Witness particles do not necessarily belong to the child or parent rigid bodes.

Reimplemented in IMP::kinematics::CompositeJoint, IMP::kinematics::RevoluteJoint, and IMP::kinematics::PrismaticJoint.


The documentation for this class was generated from the following file: