IMP logo
IMP Reference Guide  develop.a3ebfe92e8,2023/01/27
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
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
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

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)
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

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 ( )

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

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: