diff --git a/render_model.py b/render_model.py index 6ac1851..30460d7 100644 --- a/render_model.py +++ b/render_model.py @@ -42,9 +42,9 @@ def unit_vector(vec): z = vec.z.to_float() norm = math.sqrt(x ** 2 + y ** 2 + z ** 2) return type(vec)( - fixed_point.parse(str(x / norm)), - fixed_point.parse(str(y / norm)), - fixed_point.parse(str(z / norm)) + fixed_point.parse(f"{x / norm:f}"), + fixed_point.parse(f"{y / norm:f}"), + fixed_point.parse(f"{z / norm:f}") ) def xyz(vec): @@ -70,7 +70,7 @@ def render_vertex(profile_item, vertex_tuple): def render_vertices(profile_item, prefix, name, vertices): yield f"// {profile_item.to_str()}" - yield f"vertex_{name} {prefix}_{name}[] = {{" + yield f"const vertex_{name} {prefix}_{name}[] = {{" for i, vertex in enumerate(vertices): yield from render_vertex(profile_item, vertex) yield "};" @@ -94,7 +94,7 @@ def render_vertex_texture(profile, prefix, vertex_textures): map(uv, vertex_textures)) def render_object(prefix, object_name, d, material): - yield f"struct object {prefix}_{object_name} = {{" + yield f"const struct object {prefix}_{object_name} = {{" triangle_count = len(d[Triangle]) if Triangle in d else 0 quadrilateral_count = len(d[Quadrilateral]) if Quadrilateral in d else 0 @@ -115,18 +115,18 @@ def render_object(prefix, object_name, d, material): if material is None: yield f".material = -1,", else: - yield f".material = {material.name}," + yield f".material = {prefix}_{material.name}," yield "};" def render_object_list(prefix, object_names): - yield f"struct object * {prefix}_object_list[] = {{" + yield f"const struct object * {prefix}_object_list[] = {{" for object_name in object_names: yield f"&{prefix}_{object_name}," yield "};" def render_model(prefix, object_count): - yield f"struct model {prefix}_model = {{" + yield f"const struct model {prefix}_model = {{" yield f".position = &{prefix}_position[0]," yield f".texture = &{prefix}_texture[0]," yield f".normal = &{prefix}_normal[0],"