IMP logo
IMP Reference Guide  develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
IMP::kinematics::BondAngleRevoluteJoint Class Reference

Joint that is parameterized as a bond angle between three particles. More...

#include <IMP/kinematics/revolute_joints.h>

+ Inheritance diagram for IMP::kinematics::BondAngleRevoluteJoint:

Detailed Description

Joint that is parameterized as a bond angle between three particles.

Definition at line 243 of file revolute_joints.h.

Public Member Functions

 BondAngleRevoluteJoint (IMP::core::RigidBody parent, IMP::core::RigidBody child, IMP::core::XYZ a, IMP::core::XYZ b, IMP::core::XYZ c)
 
- Public Member Functions inherited from IMP::kinematics::RevoluteJoint
 RevoluteJoint (IMP::core::RigidBody parent, IMP::core::RigidBody child)
 Construct on the line connecting a and b, with an initial angle 'angle'. More...
 
double get_angle () const
 
void set_angle (double angle)
 
- Public Member Functions inherited from IMP::kinematics::Joint
 Joint (IMP::core::RigidBody parent, IMP::core::RigidBody child)
 Constructor. More...
 
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 override
 
virtual ::IMP::VersionInfo get_version_info () const override
 Get information about the module and version of the object. More...
 
- Public Member Functions inherited from IMP::Object
virtual void clear_caches ()
 
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 double get_current_angle_from_cartesian_witnesses () const override
 
virtual void update_axis_of_rotation_from_cartesian_witnesses () override
 
- Protected Member Functions inherited from IMP::kinematics::RevoluteJoint
const IMP::algebra::Vector3Dget_rot_axis_origin () const
 
const IMP::algebra::Vector3Dget_rot_axis_unit_vector () const
 
IMP::algebra::Transformation3D get_rotation_about_joint_in_parent_coordinates () const
 
virtual void update_child_node_reference_frame () const override
 
virtual void update_joint_from_cartesian_witnesses () override
 
- Protected Member Functions inherited from IMP::kinematics::Joint
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)
 
- Protected Member Functions inherited from IMP::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 

Additional Inherited Members

- Protected Attributes inherited from IMP::kinematics::RevoluteJoint
double angle_
 
double last_updated_angle_
 
IMP::algebra::Vector3D rot_axis_origin_
 
IMP::algebra::Vector3D rot_axis_unit_vector_
 

Constructor & Destructor Documentation

IMP::kinematics::BondAngleRevoluteJoint::BondAngleRevoluteJoint ( IMP::core::RigidBody  parent,
IMP::core::RigidBody  child,
IMP::core::XYZ  a,
IMP::core::XYZ  b,
IMP::core::XYZ  c 
)

constructs a joint that controls the angle a-b-c. The joint revolves around the axis that passes through b, normal to the plane containing a, b and c. a,b and c are the witnesses for the bond angle.

Parameters
parent,childkinematic nodes upstream and downstream (resp.) of this joint
a,b,c'witnesses' whose coordinates define the joint angle a-b-c
Note
It is assumed that a and b are upstream of or inside this joint's child rigid body, and that c is downstream of it or inside it.

Member Function Documentation

virtual double IMP::kinematics::BondAngleRevoluteJoint::get_current_angle_from_cartesian_witnesses ( ) const
overrideprotectedvirtual

this protected method uses the Cartesian witnesses to compute the actual current bond angle of this joint (assuming external coordinates of required Cartesian witnesses are up to date)

Implements IMP::kinematics::RevoluteJoint.

virtual void IMP::kinematics::BondAngleRevoluteJoint::update_axis_of_rotation_from_cartesian_witnesses ( )
overrideprotectedvirtual

updates the rot_axis_unit_vector_ and rot_axis_origin_ variables using b_ as origin of rotation and a vector perpendicular to the plane containing a_,b_,c_ as axis of rotation, in global coordinates

Implements IMP::kinematics::RevoluteJoint.

Definition at line 278 of file revolute_joints.h.

+ Here is the call graph for this function:


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