fix: parent transform

fix: race  condition for COMMON objects

related to #180
This commit is contained in:
Swann 2021-03-13 18:32:20 +01:00
parent b66d0dd4ce
commit b965c80ba5
No known key found for this signature in database
GPG Key ID: E1D3641A7C43AACB
2 changed files with 13 additions and 5 deletions

View File

@ -363,6 +363,12 @@ class BlObject(BlDatablock):
for modifier in nodes_modifiers:
load_modifier_geometry_node_inputs(data['modifiers'][modifier.name], modifier)
transform = data.get('transforms', None)
if transform:
target.matrix_parent_inverse = mathutils.Matrix(transform['matrix_parent_inverse'])
target.matrix_basis = mathutils.Matrix(transform['matrix_basis'])
target.matrix_local = mathutils.Matrix(transform['matrix_local'])
def _dump_implementation(self, data, instance=None):
assert(instance)
@ -391,8 +397,6 @@ class BlObject(BlDatablock):
"color",
"instance_collection",
"instance_type",
"location",
"scale",
'lock_location',
'lock_rotation',
'lock_scale',
@ -406,12 +410,16 @@ class BlObject(BlDatablock):
'show_all_edges',
'show_texture_space',
'show_in_front',
'type',
'rotation_quaternion' if instance.rotation_mode == 'QUATERNION' else 'rotation_euler',
'type'
]
data = dumper.dump(instance)
dumper.include_filter = [
'matrix_parent_inverse',
'matrix_local',
'matrix_basis']
data['transforms'] = dumper.dump(instance)
dumper.include_filter = [
'show_shadows',
]

View File

@ -995,7 +995,7 @@ def depsgraph_evaluation(scene):
# - if its ours or ( under common and diff), launch the
# update process
# - if its to someone else, ignore the update
if node and node.owner in [session.id, RP_COMMON]:
if node and (node.owner == session.id or node.bl_check_common):
if node.state == UP:
try:
if node.has_changed():