Add realtime support!!!!!

pull/279/head
DJLevel3 2025-01-21 17:17:31 -05:00
rodzic 73f7bf6f22
commit 12233f7954
1 zmienionych plików z 28 dodań i 19 usunięć

Wyświetl plik

@ -134,22 +134,27 @@ def append_matrix(object_info, obj):
def get_frame_info(): def get_frame_info():
frame_info = {"objects": []} frame_info = {"objects": []}
if (bpy.app.version[0] > 4) or (bpy.app.version[0] == 4 and bpy.app.version[1] >= 3): if (bpy.app.version[0] > 4) or (bpy.app.version[0] == 4 and bpy.app.version[1] >= 3):
for obj in bpy.data.objects: for object in bpy.data.objects:
if obj.visible_get() and obj.type == 'GREASEPENCIL': if object.visible_get() and object.type == 'GREASEPENCIL':
object_info = {"name": obj.name} dg = bpy.context.evaluated_depsgraph_get()
strokes = obj.data.layers.active.frames.data.current_frame().drawing.strokes obj = object.evaluated_get(dg)
object_info["vertices"] = [] object_info = {"name": object.name}
for stroke in strokes: for layer in obj.data.layers:
object_info["vertices"].append([{ strokes = layer.frames.data.current_frame().drawing.strokes
"x": vert.position.x, object_info["vertices"] = []
"y": vert.position.y, for stroke in strokes:
"z": vert.position.z, object_info["vertices"].append([{
} for vert in stroke.points]) "x": vert.position.x,
frame_info["objects"].append(append_matrix(object_info, obj)) "y": vert.position.y,
"z": vert.position.z,
} for vert in stroke.points])
frame_info["objects"].append(append_matrix(object_info, object))
else: else:
for obj in bpy.data.objects: for object in bpy.data.objects:
if obj.visible_get() and obj.type == 'GPENCIL': if object.visible_get() and object.type == 'GPENCIL':
object_info = {"name": obj.name} dg = bpy.context.evaluated_depsgraph_get()
obj = object.evaluated_get(dg)
object_info = {"name": object.name}
strokes = obj.data.layers.active.frames.data.active_frame.strokes strokes = obj.data.layers.active.frames.data.active_frame.strokes
object_info["vertices"] = [] object_info["vertices"] = []
for stroke in strokes: for stroke in strokes:
@ -208,8 +213,10 @@ def get_frame_info_binary():
frame_info.extend(("OBJECTS ").encode("utf8")) frame_info.extend(("OBJECTS ").encode("utf8"))
if (bpy.app.version[0] > 4) or (bpy.app.version[0] == 4 and bpy.app.version[1] >= 3): if (bpy.app.version[0] > 4) or (bpy.app.version[0] == 4 and bpy.app.version[1] >= 3):
for obj in bpy.data.objects: for object in bpy.data.objects:
if obj.visible_get() and obj.type == 'GREASEPENCIL': if object.visible_get() and object.type == 'GREASEPENCIL':
dg = bpy.context.evaluated_depsgraph_get()
obj = object.evaluated_get(dg)
frame_info.extend(("OBJECT ").encode("utf8")) frame_info.extend(("OBJECT ").encode("utf8"))
# matrix # matrix
@ -246,8 +253,10 @@ def get_frame_info_binary():
# OBJECT # OBJECT
frame_info.extend(("DONE ").encode("utf8")) frame_info.extend(("DONE ").encode("utf8"))
else: else:
for obj in bpy.data.objects: for object in bpy.data.objects:
if obj.visible_get() and obj.type == 'GPENCIL': if object.visible_get() and obj.type == 'GPENCIL':
dg = bpy.context.evaluated_depsgraph_get()
obj = object.evaluated_get(dg)
frame_info.extend(("OBJECT ").encode("utf8")) frame_info.extend(("OBJECT ").encode("utf8"))
# matrix # matrix