IMP logo
IMP Reference Guide  develop.45c11de31d,2024/03/27
The Integrative Modeling Platform
IMP::kinematics::KinematicNode Class Reference

A rigid body that is connected by a joint to other rigid bodies. More...

#include <IMP/kinematics/KinematicNode.h>

+ Inheritance diagram for IMP::kinematics::KinematicNode:

Detailed Description

A rigid body that is connected by a joint to other rigid bodies.

Definition at line 26 of file KinematicNode.h.

Public Member Functions

 KinematicNode (::IMP::Model *m,::IMP::ParticleIndex id)
 
 KinematicNode (const IMP::ParticleAdaptor &d)
 
void show (std::ostream &out=std::cout) const
 
- Public Member Functions inherited from IMP::core::RigidBody
 RigidBody (::IMP::Model *m,::IMP::ParticleIndex id)
 
 RigidBody (const IMP::ParticleAdaptor &d)
 
 RigidBody (const RigidBody &)=default
 
void add_member (ParticleIndexAdaptor p)
 
void add_non_rigid_member (ParticleIndexAdaptor p)
 
void add_to_derivatives (const algebra::Vector3D &local_derivative, const algebra::Vector3D &local_location, DerivativeAccumulator &da)
 
void add_to_derivatives (const algebra::Vector3D &local_derivative, const algebra::Vector3D &global_derivative, const algebra::Vector3D &local_location, const algebra::Rotation3D &rot_local_to_global, DerivativeAccumulator &da)
 
void add_to_rotational_derivatives (const algebra::Vector4D &other_qderiv, const algebra::Rotation3D &rot_other_to_local, const algebra::Rotation3D &rot_local_to_global, DerivativeAccumulator &da)
 
void add_to_rotational_derivatives (const algebra::Vector4D &qderiv, DerivativeAccumulator &da)
 
void add_to_torque (const algebra::Vector3D &torque_local, DerivativeAccumulator &da)
 
const ParticleIndexesget_body_member_particle_indexes () const
 
algebra::Vector3D get_coordinates () const
 
bool get_coordinates_are_optimized () const
 
ParticleIndexes get_member_indexes () const
 
const ParticleIndexesget_member_particle_indexes () const
 
IMP::algebra::ReferenceFrame3D get_reference_frame () const
 
RigidMembers get_rigid_members () const
 
IMP::algebra::Rotation3D get_rotation () const
 
algebra::VectorD< 4 > get_rotational_derivatives () const
 Get the derivatives of the quaternion. More...
 
algebra::Vector3D get_torque () const
 
void normalize_rotation ()
 Normalize the quaternion. More...
 
RigidBodyoperator= (const RigidBody &)=default
 
void pull_back_body_member_adjoints (ParticleIndex pi, DerivativeAccumulator &da)
 Pull back global adjoints from member that is also a rigid body. More...
 
void pull_back_body_member_adjoints (ParticleIndex pi, const algebra::Transformation3D &TA, algebra::Transformation3D &TB, algebra::Transformation3DAdjoint &DTC, algebra::Transformation3DAdjoint &DTA, algebra::Transformation3DAdjoint &DTB, algebra::Vector3D &betatorque, DerivativeAccumulator &da)
 
void pull_back_member_adjoints (ParticleIndex pi, DerivativeAccumulator &da)
 Pull back global adjoints from member that is a point. More...
 
void pull_back_member_adjoints (ParticleIndex pi, const algebra::Transformation3D &T, algebra::Vector3D &x, algebra::Vector3D &Dy, algebra::Vector3D &Dx, algebra::Transformation3DAdjoint &DT, algebra::Vector3D &xtorque, DerivativeAccumulator &da)
 
void pull_back_members_adjoints (DerivativeAccumulator &da)
 Pull back global adjoints from members. More...
 
void remove_member (ParticleIndexAdaptor p)
 Remove the member from this rigid body. More...
 
void set_coordinates_are_optimized (bool tf)
 
void set_is_rigid_member (ParticleIndex pi, bool tf)
 
void set_reference_frame (const IMP::algebra::ReferenceFrame3D &tr)
 Set the current reference frame. More...
 
void set_reference_frame_from_members (const ParticleIndexes &members)
 
void set_reference_frame_lazy (const IMP::algebra::ReferenceFrame3D &tr)
 Change the reference, delay updating the members until evaluate. More...
 
void show (std::ostream &out=std::cout) const
 
void update_members ()
 
- Public Member Functions inherited from IMP::core::XYZ
 XYZ (::IMP::Model *m,::IMP::ParticleIndex id)
 
 XYZ (const IMP::ParticleAdaptor &d)
 
void add_to_derivative (int i, Float v, DerivativeAccumulator &d)
 
void add_to_derivatives (const algebra::Vector3D &v, DerivativeAccumulator &d)
 Add the vector v to the derivative vector of the x,y,z coordinates. More...
 
Float get_coordinate (int i) const
 Get the ith coordinate. More...
 
const algebra::Vector3Dget_coordinates () const
 Convert it to a vector. More...
 
bool get_coordinates_are_optimized () const
 Get whether the coordinates are optimized. More...
 
Float get_derivative (int i) const
 
algebra::Vector3D get_derivatives () const
 Get the vector of derivatives accumulated by add_to_derivatives(). More...
 
algebra::Vector3D get_vector_to (const XYZ &b) const
 Get the vector from this particle to another. More...
 
Float get_x () const
 
Float get_y () const
 
Float get_z () const
 
void set_coordinate (unsigned int i, Float v)
 set the ith coordinate More...
 
void set_coordinates (const algebra::Vector3D &v)
 set all coordinates from a vector More...
 
void set_coordinates_are_optimized (bool tf) const
 Set whether the coordinates are optimized. More...
 
void set_x (Float t)
 
void set_y (Float t)
 
void set_z (Float t)
 
void show (std::ostream &out=std::cout) const
 
- Public Member Functions inherited from IMP::Decorator
bool get_is_valid () const
 Returns true if constructed with a non-default constructor. More...
 
Modelget_model () const
 Returns the Model containing the particle. More...
 
Particleget_particle () const
 Returns the particle decorated by this decorator. More...
 
ParticleIndex get_particle_index () const
 Returns the particle index decorated by this decorator. More...
 
 operator Particle * () const
 
 operator ParticleIndex () const
 
Particleoperator-> () const
 

Static Public Member Functions

static bool get_is_setup (const IMP::ParticleAdaptor &p)
 
static bool get_is_setup (Model *m, ParticleIndex pi)
 Return true if the particle is a kinematic node. More...
 
static KinematicNode setup_particle (Model *m, ParticleIndex pi, KinematicForest *owner)
 
static KinematicNode setup_particle (IMP::ParticleAdaptor pa, KinematicForest *owner)
 
static KinematicNode setup_particle (IMP::ParticleAdaptor pa, KinematicForest *owner, Joint *in_joint)
 
static KinematicNode setup_particle (Model *m, ParticleIndex pi, KinematicForest *owner, Joint *in_joint)
 
static KinematicNode setup_particle (Model *m, ParticleIndex pi, KinematicForest *owner, Joint *in_joint, Joints out_joints)
 
static KinematicNode setup_particle (IMP::ParticleAdaptor pa, KinematicForest *owner, Joint *in_joint, Joints out_joints)
 
- Static Public Member Functions inherited from IMP::core::RigidBody
static bool get_is_setup (const IMP::ParticleAdaptor &p)
 
static bool get_is_setup (Model *m, ParticleIndex pi)
 Return true if the particle is a rigid body. More...
 
static FloatKeys get_rotation_keys ()
 Get keys for rotation quaternion. More...
 
static RigidBody setup_particle (IMP::ParticleAdaptor pa, ParticleIndexesAdaptor ps)
 
static RigidBody setup_particle (Model *m, ParticleIndex pi, ParticleIndexesAdaptor ps)
 
static RigidBody setup_particle (IMP::ParticleAdaptor pa, algebra::ReferenceFrame3D rf)
 
static RigidBody setup_particle (Model *m, ParticleIndex pi, algebra::ReferenceFrame3D rf)
 
static void teardown_particle (RigidBody rb)
 Make the rigid body no longer rigid. More...
 
- Static Public Member Functions inherited from IMP::core::XYZ
static FloatKey get_coordinate_key (unsigned int i)
 
static bool get_is_setup (const IMP::ParticleAdaptor &p)
 
static bool get_is_setup (Model *m, ParticleIndex pi)
 
static const FloatKeysget_xyz_keys ()
 Get a vector containing the keys for x,y,z. More...
 
static XYZ setup_particle (IMP::ParticleAdaptor pa)
 
static XYZ setup_particle (Model *m, ParticleIndex pi)
 
static XYZ setup_particle (IMP::ParticleAdaptor pa, algebra::Vector3D v)
 
static XYZ setup_particle (Model *m, ParticleIndex pi, algebra::Vector3D v)
 

Additional Inherited Members

- Protected Member Functions inherited from IMP::Decorator
 Decorator (Model *m, ParticleIndex pi)
 
 Decorator (ParticleAdaptor p)
 

Member Function Documentation

bool IMP::kinematics::KinematicNode::get_is_setup ( Model m,
ParticleIndex  pi 
)
static

Return true if the particle is a kinematic node.

Definition at line 79 of file KinematicNode.h.

+ Here is the call graph for this function:

static KinematicNode IMP::kinematics::KinematicNode::setup_particle ( IMP::ParticleAdaptor  pa,
KinematicForest owner 
)
static
Returns
a KinematicNode object that decorates the particle specified by pa
See Also
setup_particle(m, pi, owner )

Definition at line 36 of file KinematicNode.h.

static KinematicNode IMP::kinematics::KinematicNode::setup_particle ( Model m,
ParticleIndex  pi,
KinematicForest owner 
)
static
Returns
a KinematicNode object that decorates particle pi

Definition at line 36 of file KinematicNode.h.

static KinematicNode IMP::kinematics::KinematicNode::setup_particle ( Model m,
ParticleIndex  pi,
KinematicForest owner,
Joint in_joint 
)
static
Returns
a KinematicNode object that decorates particle pi

Definition at line 38 of file KinematicNode.h.

static KinematicNode IMP::kinematics::KinematicNode::setup_particle ( IMP::ParticleAdaptor  pa,
KinematicForest owner,
Joint in_joint 
)
static
Returns
a KinematicNode object that decorates the particle specified by pa
See Also
setup_particle(m, p, owner , in_joint )

Definition at line 38 of file KinematicNode.h.

static KinematicNode IMP::kinematics::KinematicNode::setup_particle ( IMP::ParticleAdaptor  pa,
KinematicForest owner,
Joint in_joint,
Joints  out_joints 
)
static
Returns
a KinematicNode object that decorates the particle specified by pa
See Also
setup_particle(m, pi, owner , in_joint , out_joints )

Definition at line 40 of file KinematicNode.h.

static KinematicNode IMP::kinematics::KinematicNode::setup_particle ( Model m,
ParticleIndex  pi,
KinematicForest owner,
Joint in_joint,
Joints  out_joints 
)
static
Returns
a KinematicNode object that decorates particle pi

Definition at line 40 of file KinematicNode.h.


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