Merge branch '180-parent-relation-have-doesn-t-keeps-transform' into 'develop'

Resolve "Parenting objects doesn't keeps transform"

See merge request slumber/multi-user!115
This commit is contained in:
Swann Martinez
2021-03-13 17:35:42 +00:00
2 changed files with 13 additions and 5 deletions

View File

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

View File

@ -995,7 +995,7 @@ def depsgraph_evaluation(scene):
# - if its ours or ( under common and diff), launch the # - if its ours or ( under common and diff), launch the
# update process # update process
# - if its to someone else, ignore the update # - 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: if node.state == UP:
try: try:
if node.has_changed(): if node.has_changed():