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:
authorPhilipp Oeser <info@graphics-engineer.com>2021-09-03 13:17:00 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2021-09-03 18:15:05 +0300
commita45dd52cf0bbdc0ff362681a4836385c8154c70d (patch)
treebc02b546743745ddbea2da8036da7cd4a3211621
parentac97893dfc77fd77e0254a0a4692820c7dbc6967 (diff)
Depsgraph: skip parentbone relation if bone prop is empty
Clearing the Parent Bone field in relations would result in something like this: ``` add_relation(Bone Parent) - Could not find op_from (ComponentKey(OBArmature, BONE)) add_relation(Bone Parent) - Failed, but op_to (ComponentKey(OBEmpty, TRANSFORM)) was ok ERROR (bke.object): /source/blender/blenkernel/intern\object.c:3330 ob_parbone: Object Empty with Bone parent: bone doesn't exist ``` Now skip creation of a depsgraph relation if the Parent Bone field is empty (since this would be invalid anyways). ref. T91101 Maniphest Tasks: T91101 Differential Revision: https://developer.blender.org/D12389
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index ef1db8be933..28cfc5a9e1a 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -1006,11 +1006,13 @@ void DepsgraphRelationBuilder::build_object_parent(Object *object)
/* Bone Parent */
case PARBONE: {
- ComponentKey parent_bone_key(parent_id, NodeType::BONE, object->parsubstr);
- OperationKey parent_transform_key(
- parent_id, NodeType::TRANSFORM, OperationCode::TRANSFORM_FINAL);
- add_relation(parent_bone_key, object_transform_key, "Bone Parent");
- add_relation(parent_transform_key, object_transform_key, "Armature Parent");
+ if (object->parsubstr[0] != '\0') {
+ ComponentKey parent_bone_key(parent_id, NodeType::BONE, object->parsubstr);
+ OperationKey parent_transform_key(
+ parent_id, NodeType::TRANSFORM, OperationCode::TRANSFORM_FINAL);
+ add_relation(parent_bone_key, object_transform_key, "Bone Parent");
+ add_relation(parent_transform_key, object_transform_key, "Armature Parent");
+ }
break;
}