feat(rcf): mesh upload simplification

This commit is contained in:
Swann Martinez
2019-03-28 18:04:21 +01:00
parent f5f825607b
commit 1e4f711fe7

View File

@ -156,13 +156,13 @@ def dump_datablock(datablock,depth):
client.push_update(key, datablock_type, data) client.push_update(key, datablock_type, data)
def dump_datablock_attibute(datablock,attributes): def dump_datablock_attibute(datablock,attributes,depth=1):
if datablock: if datablock:
print("sending {}".format(datablock.name)) print("sending {}".format(datablock.name))
dumper = dump_anything.Dumper() dumper = dump_anything.Dumper()
dumper.type_subset = dumper.match_subset_all dumper.type_subset = dumper.match_subset_all
dumper.depth = 1 dumper.depth = depth
datablock_type = datablock.bl_rna.name datablock_type = datablock.bl_rna.name
key = "{}/{}".format(datablock_type,datablock.name) key = "{}/{}".format(datablock_type,datablock.name)
@ -176,6 +176,10 @@ def dump_datablock_attibute(datablock,attributes):
client.push_update(key, datablock_type, data) client.push_update(key, datablock_type, data)
def upload_mesh(mesh):
if mesh.bl_rna.name == 'Mesh':
dump_datablock_attibute(mesh,['name','polygons','edges','vertices'],6)
def init_scene(): def init_scene():
for cam in bpy.data.cameras: for cam in bpy.data.cameras:
dump_datablock(cam,1) dump_datablock(cam,1)
@ -184,7 +188,7 @@ def init_scene():
for mat in bpy.data.materials: for mat in bpy.data.materials:
dump_datablock(mat,7) dump_datablock(mat,7)
for mesh in bpy.data.meshes: for mesh in bpy.data.meshes:
dump_datablock(mesh,6) upload_mesh(mesh)
for object in bpy.data.objects: for object in bpy.data.objects:
dump_datablock(object,1) dump_datablock(object,1)
for collection in bpy.data.collections: for collection in bpy.data.collections:
@ -192,7 +196,6 @@ def init_scene():
for scene in bpy.data.scenes: for scene in bpy.data.scenes:
dump_datablock(scene,4) dump_datablock(scene,4)
def load_mesh(target=None, data=None, create=False): def load_mesh(target=None, data=None, create=False):
import bmesh import bmesh
@ -351,6 +354,7 @@ def load_gpencil(target=None, data=None, create=False):
except: except:
print("default loading error") print("default loading error")
def load_light(target=None, data=None, create=False, type=None): def load_light(target=None, data=None, create=False, type=None):
try: try:
if target is None and create: if target is None and create:
@ -840,35 +844,33 @@ def update_loop():
return 0.5 return 0.5
def depsgraph_update(scene): def depsgraph_update(scene):
for c in bpy.context.depsgraph.updates.items(): for c in bpy.context.depsgraph.updates.items():
global client global client
if client:
if client.status == net_components.RCFStatus.CONNECTED:
if c[1].is_updated_geometry:
print("GEOMETRY UPDATE")
elif c[1].is_updated_transform:
print("TRANFORM UPDATE")
dump_datablock_attibute(bpy.data.objects[c[1].id.name],['matrix_world'])
else:
data_name = c[1].id.name
if data_name in bpy.data.objects.keys():
found = False
for k in client.property_map.keys():
if data_name in k:
found = True
break
if client.status == net_components.RCFStatus.CONNECTED: if not found:
if c[1].is_updated_geometry: client.property_map["Object/{}".format(data_name)] = net_components.RCFMessage("Object/{}".format(data_name), "Object", None)
pass upload_mesh(bpy.data.objects[data_name].data)
elif c[1].is_updated_transform: dump_datablock(bpy.data.objects[data_name],1)
print("TRANFORM UPDATE") dump_datablock(bpy.data.scenes[0],4)
dump_datablock_attibute(bpy.data.objects[c[1].id.name],['matrix_world'])
else: # dump_datablock(bpy.data.scenes[0],4)
data_name = c[1].id.name
if data_name in bpy.data.objects.keys():
found = False
for k in client.property_map.keys():
if data_name in k:
found = True
break
if not found:
client.property_map["Object/{}".format(data_name)] = net_components.RCFMessage("Object/{}".format(data_name), "Object", None)
dump_datablock(bpy.data.objects[data_name].data,4)
dump_datablock(bpy.data.objects[data_name],1)
dump_datablock(bpy.data.scenes[0],4)
time.sleep(0.5)
# dump_datablock(bpy.data.scenes[0],4)
def register(): def register():