35 template<
typename KeyType>
39 return node !=
nullptr ?
node->get_exit_operation() :
nullptr;
42 template<
typename KeyFrom,
typename KeyTo>
45 const char *description,
52 if (op_from && op_to) {
59 "add_relation(%s) - Could not find op_from (%s)\n",
61 key_from.identifier().c_str());
65 "add_relation(%s) - Failed, but op_from (%s) was ok\n",
67 key_from.identifier().c_str());
72 "add_relation(%s) - Could not find op_to (%s)\n",
74 key_to.identifier().c_str());
78 "add_relation(%s) - Failed, but op_to (%s) was ok\n",
80 key_to.identifier().c_str());
86 template<
typename KeyTo>
89 const char *description,
95 if (time_from !=
nullptr && op_to !=
nullptr) {
101 template<
typename KeyType>
104 const char *description,
110 if (op_from !=
nullptr && op_to !=
nullptr) {
116 "add_node_handle_relation(%s) - Could not find op_from (%s)\n",
118 key_from.identifier().c_str());
122 "add_node_handle_relation(%s) - Could not find op_to (%s)\n",
124 key_from.identifier().c_str());
132 if (rbo ==
nullptr) {
143 template<
typename KeyTo>
146 const char *description,
153 return add_relation(transform_key, key_to, description, flags);
157 return add_relation(transform_key, key_to, description, flags);
160 template<
typename KeyType>
162 const char *default_name)
171 template<
typename KeyFrom,
typename KeyTo>
178 if (node_from ==
nullptr || node_to ==
nullptr) {
183 if (op_from ==
nullptr || op_to ==
nullptr) {
202 template<
typename KeyFrom,
typename KeyTo>
209 if (node_from ==
nullptr || node_to ==
nullptr) {
214 if (op_from ==
nullptr || op_to ==
nullptr) {
ID and Library types, which are fundamental for sdna.
Object is a sort of wrapper for general info.
Types and defines for representing Rigid Body entities.
Relation * add_depends_on_transform_relation(ID *id, const KeyTo &key_to, const char *description, int flags=0)
TimeSourceNode * get_node(const TimeSourceKey &key) const
bool is_same_nodetree_node_dependency(const KeyFrom &key_from, const KeyTo &key_to)
bool is_same_bone_dependency(const KeyFrom &key_from, const KeyTo &key_to)
Relation * add_node_handle_relation(const KeyType &key_from, const DepsNodeHandle *handle, const char *description, int flags=0)
Relation * add_relation(const KeyFrom &key_from, const KeyTo &key_to, const char *description, int flags=0)
Relation * add_operation_relation(OperationNode *node_from, OperationNode *node_to, const char *description, int flags=0)
OperationNode * find_operation_node(const KeyType &key)
DepsNodeHandle create_node_handle(const KeyType &key, const char *default_name="")
Relation * add_time_relation(TimeSourceNode *timesrc, Node *node_to, const char *description, int flags=0)
static bool rigidbody_object_depends_on_evaluated_geometry(const RigidBodyOb *rbo)
struct RigidBodyOb * rigidbody_object
virtual OperationNode * get_exit_operation()
virtual OperationNode * get_entry_operation()
virtual OperationNode * get_entry_operation() override