IMP Reference Guide
develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
|
Abstract class for all revolute joints. More...
#include <IMP/kinematics/revolute_joints.h>
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 |
KinematicForest * | get_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 =0 |
const IMP::algebra::Vector3D & | get_rot_axis_origin () const |
const IMP::algebra::Vector3D & | get_rot_axis_unit_vector () const |
IMP::algebra::Transformation3D | get_rotation_about_joint_in_parent_coordinates () const |
virtual void | update_axis_of_rotation_from_cartesian_witnesses ()=0 |
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 () |
Protected Attributes | |
double | angle_ |
double | last_updated_angle_ |
IMP::algebra::Vector3D | rot_axis_origin_ |
IMP::algebra::Vector3D | rot_axis_unit_vector_ |
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'.
parent,child | kinematic nodes upstream and downstream (resp.) of this joint |
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)
|
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).
Implemented in IMP::kinematics::BondAngleRevoluteJoint, and IMP::kinematics::DihedralAngleRevoluteJoint.
|
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.
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
|
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
Implemented in IMP::kinematics::BondAngleRevoluteJoint, and IMP::kinematics::DihedralAngleRevoluteJoint.
|
overrideprotectedvirtual |
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.
|
overrideprotectedvirtual |
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.