Files
workinf_Blender_Wasm/tools/web/generate-topology-fixture.py
2026-08-12 04:47:48 -04:00

27 lines
1006 B
Python

import sys
import bpy
def add_mesh(name, vertices, faces):
mesh = bpy.data.meshes.new(name)
mesh.from_pydata(vertices, [], faces)
mesh.update()
obj = bpy.data.objects.new(name + "Object", mesh)
bpy.context.collection.objects.link(obj)
return obj
def main(output_path: str) -> None:
bpy.ops.wm.read_factory_settings(use_empty=True)
add_mesh("OpenQuad", [(-1, -1, 0), (1, -1, 0), (1, 1, 0), (-1, 1, 0)], [(0, 1, 2, 3)])
add_mesh("OpenNgon", [(0, 1, 0), (1, 0.3, 0), (0.6, -1, 0), (-0.6, -1, 0), (-1, 0.3, 0)], [(0, 1, 2, 3, 4)])
add_mesh("NonManifold", [(0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1), (0, -1, 0)], [(0, 1, 2), (0, 3, 1), (0, 1, 4)])
bpy.ops.wm.save_as_mainfile(filepath=output_path, compress=True)
if __name__ == "__main__":
if "--" not in sys.argv or len(sys.argv) <= sys.argv.index("--") + 1:
raise SystemExit("usage: blender -b --python generate-topology-fixture.py -- output.blend")
main(sys.argv[sys.argv.index("--") + 1])