feat: object, light dump optimisation
This commit is contained in:
@ -16,7 +16,28 @@ class BlLight(BlDatablock):
|
||||
def dump(self, pointer=None):
|
||||
assert(pointer)
|
||||
|
||||
return utils.dump_datablock(pointer, 3)
|
||||
replicated_attributes = [
|
||||
"name",
|
||||
"type",
|
||||
"color",
|
||||
"energy",
|
||||
"specular_factor",
|
||||
"uuid",
|
||||
"shadow_soft_size",
|
||||
"use_custom_distance",
|
||||
"cutoff_distance",
|
||||
"use_shadow",
|
||||
"shadow_buffer_clip_start",
|
||||
"shadow_buffer_soft",
|
||||
"shadow_buffer_bias",
|
||||
"shadow_buffer_bleed_bias",
|
||||
"contact_shadow_distance",
|
||||
"contact_shadow_soft_size",
|
||||
"contact_shadow_bias",
|
||||
"contact_shadow_thickness"
|
||||
]
|
||||
data = { k:v for k,v in utils.dump_datablock(pointer, 3).items() if k in replicated_attributes }
|
||||
return data
|
||||
|
||||
def resolve(self):
|
||||
assert(self.buffer)
|
||||
|
@ -94,7 +94,7 @@ class BlMaterial(BlDatablock):
|
||||
def diff(self):
|
||||
diff_rev = diff(self.dump(pointer=self.pointer), self.buffer)
|
||||
return (self.bl_diff() or
|
||||
len(diff_rev.keys()) > 0)
|
||||
len(diff_rev.keys()) > 1)
|
||||
|
||||
def resolve_dependencies(self):
|
||||
deps = []
|
||||
|
@ -3,6 +3,7 @@ import mathutils
|
||||
|
||||
from .. import utils
|
||||
from .bl_datablock import BlDatablock
|
||||
from jsondiff import diff
|
||||
|
||||
|
||||
class BlObject(BlDatablock):
|
||||
@ -59,6 +60,19 @@ class BlObject(BlDatablock):
|
||||
def dump(self, pointer=None):
|
||||
assert(pointer)
|
||||
data = utils.dump_datablock(pointer, 1)
|
||||
replicated_attributes = [
|
||||
"name",
|
||||
"matrix_world",
|
||||
"rotation_mode",
|
||||
"parent",
|
||||
"data",
|
||||
"uuid",
|
||||
"children",
|
||||
"library"
|
||||
]
|
||||
data = { k:v for k,v in data.items() if k in replicated_attributes }
|
||||
# data = {value in data for key, value in data.items() if key in replicated_attributes}
|
||||
# data = utils.dump_datablock_attibutes(pointer, replicated_attributes)
|
||||
|
||||
if self.is_library:
|
||||
return data
|
||||
@ -77,8 +91,9 @@ class BlObject(BlDatablock):
|
||||
pass
|
||||
|
||||
def diff(self):
|
||||
diff_rev = diff(self.dump(pointer=self.pointer), self.buffer)
|
||||
return (self.bl_diff() or
|
||||
self.dump(pointer=self.pointer)['matrix_world'] != self.buffer['matrix_world'])
|
||||
len(diff_rev.keys()))
|
||||
|
||||
def resolve_dependencies(self):
|
||||
deps = super().resolve_dependencies()
|
||||
|
Reference in New Issue
Block a user