Fix missing autosmooth update when animated
authorSergey Sharybin <sergey.vfx@gmail.com>
Thu, 6 Jun 2019 10:27:28 +0000 (12:27 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Fri, 7 Jun 2019 07:13:51 +0000 (09:13 +0200)
Consists of few simple steps.

Don't tag object data's bounding box as dirty before re-evaluaiton

Most of the time this actually tags evaluated mesh which will be tossed
away few lines below anyway. And this causes issues if the evaluated
mesh is actually owned by the mesh datablock.

The bounding box now has clear separation between original object data
and object data after modifiers, so this should not be causing any
issues.

Free evaluated mesh when owner mesh changes

Ensures that evaluated mesh shares the same settings as its owner when
updates related on animation system happens.

Depsgraph: Update mesh when its geometry settings changes

Allows to have options like autosmooth animated.

Reviewers: brecht, mont29

Differential Revision: https://developer.blender.org/D5030

source/blender/depsgraph/intern/builder/deg_builder_rna.cc

index 5c7fa98ccf1cced2aba6367d9251ee0f5a9e6b6e..dc408351a1ad91c8f55bc56acb6afcb498d8145d 100644 (file)
@@ -277,7 +277,7 @@ RNANodeIdentifier RNANodeQuery::construct_node_identifier(const PointerRNA *ptr,
       return node_identifier;
     }
   }
-  else if (RNA_struct_is_a(ptr->type, &RNA_Modifier) ||
+  else if (RNA_struct_is_a(ptr->type, &RNA_Mesh) || RNA_struct_is_a(ptr->type, &RNA_Modifier) ||
            RNA_struct_is_a(ptr->type, &RNA_GpencilModifier) ||
            RNA_struct_is_a(ptr->type, &RNA_Spline)) {
     /* When modifier is used as FROM operation this is likely referencing to