11 #ifndef IMPKINEMATICS_COMPOSITE_JOINT_H
12 #define IMPKINEMATICS_COMPOSITE_JOINT_H
14 #include <IMP/kinematics/kinematics_config.h>
19 #include <IMP/core/internal/dihedral_helpers.h>
23 IMPKINEMATICS_BEGIN_NAMESPACE
25 class KinematicForest;
53 j->get_child_node() == this->get_child_node(),
54 "inner joint within a composite joint must have"
55 "the same parent and child rigid body nodes",
66 j->get_child_node() == this->get_child_node(),
67 "inner joint within a composite joint must have"
68 <<
"the same parent and child rigid body nodes",
70 joints_.insert(joints_.begin(), j);
82 void set_joints(
Joints joints);
111 virtual
void update_joint_from_cartesian_witnesses()
IMP_OVERRIDE;
119 IMPKINEMATICS_END_NAMESPACE
void add_upstream_joint(Joint *j)
Adds a joint at the front of the list (closest to the parent rigid body)
Exception definitions and assertions.
Joints & get_inner_joints()
Returns the inner joints.
functionality for defining a kinematic joint between rigid bodies as part of a kinematic tree ...
functionality for defining nodes on a kinematic chain
const Joints & get_inner_joints() const
Returns the inner joints.
virtual void update_child_node_reference_frame() const
IMP::Vector< IMP::Pointer< Joint > > Joints
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
void add_downstream_joint(Joint *j)
Adds a joint at the end of the list (closest to the child rigid body)
Helper macros for throwing and handling exceptions.
Base class for joints between rigid bodies in a kinematic tree.
A shared base class to help in debugging and things.
Joint that combines several inner joints, acting on the same rigid body pair.
A decorator for a rigid body.
#define IMP_ALWAYS_CHECK(condition, message, exception_name)
Throw an exception if a check fails.
An exception for an invalid value being passed to IMP.
#define IMP_OVERRIDE
Cause a compile error if this method does not override a parent method.