#include "intern/nodes/deg_node.h"
#include "intern/nodes/deg_node_component.h"
+#include "intern/nodes/deg_node_id.h"
#include "intern/nodes/deg_node_operation.h"
+#include "intern/nodes/deg_node_time.h"
#include "intern/depsgraph_intern.h"
#include "intern/depsgraph_types.h"
/* Animation curves and NLA. */
build_animdata_curves(id);
/* Drivers. */
- build_animdata_drievrs(id);
+ build_animdata_drivers(id);
}
void DepsgraphRelationBuilder::build_animdata_curves(ID *id)
}
}
-void DepsgraphRelationBuilder::build_animdata_drievrs(ID *id)
+void DepsgraphRelationBuilder::build_animdata_drivers(ID *id)
{
AnimData *adt = BKE_animdata_from_id(id);
if (adt == NULL) {
continue;
}
OperationKey variable_key(dtar->id,
- DEG_NODE_TYPE_BONE,
- target_pchan->name,
- DEG_OPCODE_BONE_DONE);
+ DEG_NODE_TYPE_BONE,
+ target_pchan->name,
+ DEG_OPCODE_BONE_DONE);
if (is_same_bone_dependency(variable_key, self_key)) {
continue;
}
if (RNA_pointer_is_null(&variable_key.ptr)) {
continue;
}
- if (is_same_bone_dependency(variable_key, self_key)) {
+ if (is_same_bone_dependency(variable_key, self_key) ||
+ is_same_nodetree_node_dependency(variable_key, self_key) ||
+ is_same_shapekey_dependency(variable_key, self_key))
+ {
continue;
}
- add_relation(variable_key, driver_key, "RNA Bone -> Driver");
+ add_relation(variable_key, driver_key, "RNA Target -> Driver");
}
else {
if (dtar->id == id) {
if (part->dup_ob->type == OB_MBALL) {
ComponentKey dup_geometry_key(&part->dup_ob->id,
DEG_NODE_TYPE_GEOMETRY);
- add_relation(psys_key,
+ add_relation(obdata_ubereval_key,
dup_geometry_key,
"Particle MBall Visualization");
}
// TODO: parent object (when that feature is implemented)
}
-void DepsgraphRelationBuilder::build_cachefile(CacheFile *cache_file) {
+void DepsgraphRelationBuilder::build_cachefile(CacheFile *cache_file)
+{
/* Animation. */
build_animdata(&cache_file->id);
}