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

Joint that is parameterized as a dihedral angle between two planes. More...

#include <IMP/kinematics/revolute_joints.h>

+ Inheritance diagram for IMP::kinematics::DihedralAngleRevoluteJoint:

Detailed Description

Joint that is parameterized as a dihedral angle between two planes.

Definition at line 171 of file revolute_joints.h.

Public Member Functions

 DihedralAngleRevoluteJoint (IMP::core::RigidBody parent, IMP::core::RigidBody child, IMP::core::XYZ a, IMP::core::XYZ b, IMP::core::XYZ c, IMP::core::XYZ d)
 
IMP::core::XYZ get_a () const
 
IMP::core::XYZ get_b () const
 
IMP::core::XYZ get_c () const
 
IMP::core::XYZ get_d () const
 
- 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::DihedralAngleRevoluteJoint::DihedralAngleRevoluteJoint ( IMP::core::RigidBody  parent,
IMP::core::RigidBody  child,
IMP::core::XYZ  a,
IMP::core::XYZ  b,
IMP::core::XYZ  c,
IMP::core::XYZ  d 
)

constructs a dihedral angle that revolves around the axis b-c, using a,b,c,d as witnesses for the dihedral angle

Parameters
parent,childkinematic nodes upstream and downstream (resp.) of this joint
a,b,c,d'witnesses' whose coordinates define the dihedral angle between the planes containing a-b-c and b-c-d)
Note
It is assumed that neither a, b and c are downstream of child, and also that d is not upstream of it

Member Function Documentation

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

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

Implements IMP::kinematics::RevoluteJoint.

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

updates the rot_axis_unit_vector_ and rot_axis_origin_ variables in parent coordinates based on the witnesses b_ and c_, using b_-c_ as the axis of rotation

Note
it is assumed b_ and c_ have update Cartesian coordinates

Implements IMP::kinematics::RevoluteJoint.

Definition at line 203 of file revolute_joints.h.

+ Here is the call graph for this function:


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