From 5c37fb26dcbc8add69b7b1c5ccc830613bc6d3d3 Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Tue, 13 Jan 2026 12:25:45 -0600 Subject: [PATCH] render_cpp.py: wrap models in namespaces --- render_cpp.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/render_cpp.py b/render_cpp.py index 81e4326..4eb059f 100644 --- a/render_cpp.py +++ b/render_cpp.py @@ -213,36 +213,44 @@ def render_animations(gltf): yield from render_animation_samplers(animation_ix, animation["samplers"]) yield from render_animation_channels(animation_ix, animation["channels"]) -def render_gltf_header(gltf): +def render_gltf_header(gltf, prefix): + yield f"#ifndef _{prefix.upper()}_HPP_" + yield f"#define _{prefix.upper()}_HPP_" + yield f"namespace {prefix} {{" yield from render_skins_extern(gltf) yield from render_accessors_extern(gltf) yield from render_nodes_extern(gltf) yield from render_animations_extern(gltf) + yield "}" + yield "#endif" -def render_gltf_source(gltf, filename_hpp): +def render_gltf_source(gltf, prefix, filename_hpp): header_name = path.split(filename_hpp)[1] yield "#include " yield '#include "gltf.hpp"' yield f'#include "{header_name}"' + yield f"namespace {prefix} {{" yield from render_accessors(gltf) yield from render_meshes(gltf) yield from render_nodes(gltf) yield from render_skins(gltf) yield from render_animations(gltf) + yield "}" filename = sys.argv[1] -filename_cpp = sys.argv[2] +prefix = sys.argv[2] +filename_cpp = sys.argv[3] assert filename_cpp.endswith(".cpp") -filename_hpp = sys.argv[3] +filename_hpp = sys.argv[4] assert filename_hpp.endswith(".hpp") gltf = decode_file(filename) with open(filename_cpp, "w") as f: render, out = renderer() - render(render_gltf_source(gltf, filename_hpp)) + render(render_gltf_source(gltf, prefix, filename_hpp)) f.write(out.getvalue()) with open(filename_hpp, "w") as f: render, out = renderer() - render(render_gltf_header(gltf)) + render(render_gltf_header(gltf, prefix)) f.write(out.getvalue())