11 #ifndef IMPKINEMATICS_COMPOSITE_JOINT_H
12 #define IMPKINEMATICS_COMPOSITE_JOINT_H
14 #include "kinematics_config.h"
19 #include <IMP/core/internal/dihedral_helpers.h>
23 IMPKINEMATICS_BEGIN_NAMESPACE
25 class KinematicForest;
59 j->get_child_node() == this->get_child_node(),
60 "inner joint within a composite joint must have"
61 "the same parent and child rigid body nodes",
74 j->get_child_node() == this->get_child_node(),
75 "inner joint within a composite joint must have"
76 <<
"the same parent and child rigid body nodes",
78 joints_.insert(joints_.begin(), j);
92 void set_joints(
Joints joints);
132 IMPKINEMATICS_END_NAMESPACE
void add_upstream_joint(Joint *j)
Exception definitions and assertions.
Joints & get_inner_joints()
virtual void update_joint_from_cartesian_witnesses()
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
virtual void update_child_node_reference_frame() const
IMP::Vector< IMP::Pointer< Joint > > Joints
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing sets of objects.
void add_downstream_joint(Joint *j)
Exception definitions and assertions.
A shared base class to help in debugging and things.
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.