Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-03-20 17:14:27 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-03-20 17:18:47 +0300
commit3508ffc34c1f742e6a798814b80075ccbe1baa22 (patch)
treef6813a213983ab1ea8db761065534b63843168b3 /source/blender/depsgraph/intern/builder/deg_builder_relations_impl.h
parentf08910e7b28722c76263c0017e81db4d7773337b (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.h21
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,