diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-03-20 17:14:27 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-03-20 17:18:47 +0300 |
commit | 3508ffc34c1f742e6a798814b80075ccbe1baa22 (patch) | |
tree | f6813a213983ab1ea8db761065534b63843168b3 /source/blender/depsgraph/intern/builder/deg_builder_relations_impl.h | |
parent | f08910e7b28722c76263c0017e81db4d7773337b (diff) |
Fix T59449: Particle system creates error in rigid body
Is a dependency cycle problem. Fix is similar to what is done in 024f5ba2bdb.
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder_relations_impl.h')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations_impl.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations_impl.h b/source/blender/depsgraph/intern/builder/deg_builder_relations_impl.h index 613e8f86baf..86a17ae4a47 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations_impl.h +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_impl.h @@ -27,6 +27,7 @@ extern "C" { #include "DNA_ID.h" +#include "DNA_object_types.h" } namespace DEG { @@ -117,6 +118,26 @@ Relation *DepsgraphRelationBuilder::add_node_handle_relation( return NULL; } +template <typename KeyTo> +Relation *DepsgraphRelationBuilder::add_depends_on_transform_relation( + ID *id, + const KeyTo& key_to, + const char *description, + int flags) +{ + if (GS(id->name) == ID_OB) { + Object *object = reinterpret_cast<Object *>(id); + if (object->rigidbody_object != NULL) { + OperationKey transform_key(&object->id, + NodeType::TRANSFORM, + OperationCode::TRANSFORM_EVAL); + return add_relation(transform_key, key_to, description, flags); + } + } + ComponentKey transform_key(id, NodeType::TRANSFORM); + return add_relation(transform_key, key_to, description, flags); +} + template <typename KeyType> DepsNodeHandle DepsgraphRelationBuilder::create_node_handle( const KeyType &key, |