IMP Reference Guide  develop.1a04b19ae7,2021/11/27 The Integrative Modeling Platform
IMP::kinematics::RevoluteJoint Class Referenceabstract

Abstract class for all revolute joints. More...

#include <IMP/kinematics/revolute_joints.h>

Inheritance diagram for IMP::kinematics::RevoluteJoint:

## Detailed Description

Abstract class for all revolute joints.

Definition at line 47 of file revolute_joints.h.

## Public Member Functions

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

virtual ::IMP::VersionInfo get_version_info () const
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 =0

const IMP::algebra::Vector3Dget_rot_axis_origin () const

const IMP::algebra::Vector3Dget_rot_axis_unit_vector () const

virtual void update_axis_of_rotation_from_cartesian_witnesses ()=0

virtual void update_child_node_reference_frame () const

virtual void update_joint_from_cartesian_witnesses ()

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

## Protected Attributes

double angle_

double last_updated_angle_

IMP::algebra::Vector3D rot_axis_origin_

IMP::algebra::Vector3D rot_axis_unit_vector_

## Constructor & Destructor Documentation

 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'.

Parameters
 parent,child kinematic nodes upstream and downstream (resp.) of this joint

## Member Function Documentation

 double IMP::kinematics::RevoluteJoint::get_angle ( ) const

gets the angle of the revolute joint. This method is kinematically safe (it triggers an update to internal coordinates if needed)

 virtual double IMP::kinematics::RevoluteJoint::get_current_angle_from_cartesian_witnesses ( ) const
protectedpure virtual

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

Note
this method does not update the angle stored in this joint, which may be strictly different (if external or internal coords are outdated)
protected

Returns the transformation matrix for rotating a vector in parent coordinates about the axis of the joint, in a way that would bring the Cartesian witnesses to the correct joint angle (as measured by get_angle_from_cartesian_witnesses() ).

Definition at line 133 of file revolute_joints.h.

Here is the call graph for this function:

 void IMP::kinematics::RevoluteJoint::set_angle ( double angle )

sets the angle of the revolute joint and marks the internal coordinates as changed in the kinematic forest object

 virtual void IMP::kinematics::RevoluteJoint::update_axis_of_rotation_from_cartesian_witnesses ( )
protectedpure virtual

this protected method updates the rot_axis_unit_vector_ and rot_axis_origin_ variables based on the Cartesian witnesses appropriate for a specific implementation of this abstract class, using parent coordinates, assuming all Cartesian witnesses are updated

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

Updates the reference frame of the child node by this joint angle, assuming the parent reference frame and the witnesses that affect update_axis_of_rotation_from_cartesian_witnesses() are all updated already

Reimplemented from IMP::kinematics::Joint.

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

Update the joint internal parameters based on external reference frames of witnesses and rigid bodies, assuming external parameters are updated

Reimplemented from IMP::kinematics::Joint.

Definition at line 119 of file revolute_joints.h.

Here is the call graph for this function:

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