9 #ifndef IMPKINEMATICS_KINEMATIC_NODE_H
10 #define IMPKINEMATICS_KINEMATIC_NODE_H
12 #include "kinematics_config.h"
18 IMPKINEMATICS_BEGIN_NAMESPACE
20 class KinematicForest;
35 Joint* in_joint =
nullptr,
57 inline Joint* get_in_joint();
62 void set_out_joints(
Joints in);
64 void add_out_joint(
Joint* j);
66 void set_in_joint(
Joint* j);
70 static ObjectKey k(
"kinematics__kinematic_node_owner");
76 static ObjectKey k(
"kinematics__kinematic_node_in_joint");
82 static ObjectsKey k(
"kinematics__kinematic_node_out_joint");
95 m->get_has_attribute( get_owner_key(), pi);
101 KinematicNode::get_in_joint() {
102 if( !get_model()->get_has_attribute
103 ( get_in_joint_key(), get_particle_index() ) )
108 ( get_in_joint_key(), get_particle_index() );
109 return static_cast<Joint*
>(obj);
115 KinematicNode::get_out_joints() {
117 if(! get_model()->get_has_attribute
118 ( get_out_joints_key(), get_particle_index() ) ) {
122 ( get_out_joints_key(), get_particle_index() );
123 for(
unsigned int i = 0; i < objs.size(); i++){
124 base::Object * o = objs[i];
125 Joint* j =
static_cast<Joint*
>(o);
135 IMPKINEMATICS_END_NAMESPACE
#define IMP_DECORATOR_SETUP_2(Name, FirstArgumentType, first_argument_name,SecondArgumentType, second_argument_name)
IMP::base::Vector< IMP::base::Pointer< Object > > Objects
A list of objects.
IMP::base::Vector< IMP::base::WeakPointer< Joint > > JointsTemp
#define IMP_DECORATOR_METHODS(Name, Parent)
functionality for defining a kinematic joint between rigid bodies as part of a kinematic tree ...
functionality for defining rigid bodies
Key< 7, true > ObjectsKey
The type used to identify a particle attribute in the Particles.
IMP::base::Vector< IMP::base::Pointer< Joint > > Joints
Common base class for heavy weight IMP objects.
Exception definitions and assertions.
#define IMP_DECORATOR_SETUP_3(Name, FirstArgumentType, first_argument_name,SecondArgumentType, second_argument_name,ThirdArgumentType, third_argument_name)
A decorator for a rigid body.
#define IMP_DECORATOR_SETUP_1(Name, FirstArgumentType, first_argument_name)
#define IMP_DECORATORS(Name, PluralName, Parent)
Define the types for storing sets of decorators.
Class for storing model, its restraints, constraints, and particles.