diff --git a/wasm/codegen/generated/bindings.cc b/wasm/codegen/generated/bindings.cc index 2dcc0132..c7939ede 100644 --- a/wasm/codegen/generated/bindings.cc +++ b/wasm/codegen/generated/bindings.cc @@ -105,13 +105,12 @@ std::vector InitWrapperArray(ArrayType* array, SizeType size) { return result; } -// Create the types for anonymous structs using mjVisualGlobal = decltype(::mjVisual::global); -using mjVisualQuality = decltype(::mjVisual::quality); using mjVisualHeadlight = decltype(::mjVisual::headlight); using mjVisualMap = decltype(::mjVisual::map); -using mjVisualScale = decltype(::mjVisual::scale); +using mjVisualQuality = decltype(::mjVisual::quality); using mjVisualRgba = decltype(::mjVisual::rgba); +using mjVisualScale = decltype(::mjVisual::scale); struct MjContact { explicit MjContact(mjContact *ptr); diff --git a/wasm/codegen/generators/structs.py b/wasm/codegen/generators/structs.py index 5c09e8c7..aa1fe966 100644 --- a/wasm/codegen/generators/structs.py +++ b/wasm/codegen/generators/structs.py @@ -699,6 +699,17 @@ class Generator: autogenned_struct_definitions = [] markers_and_content = [] + typedefs = [] + for type_name in sorted(constants.ANONYMOUS_STRUCTS): + s = constants.ANONYMOUS_STRUCTS[type_name] + typedefs.append( + f"using {type_name} = decltype(::{s['parent']}::{s['field_name']});" + ) + markers_and_content.append(( + "// {{ ANONYMOUS_STRUCT_TYPEDEFS }}", + typedefs, + )) + # Sort by struct name by dependency to ensure deterministic output order sorted_struct_names = sort_structs_by_dependency(self.structs_to_bind_data) diff --git a/wasm/codegen/templates/bindings.cc b/wasm/codegen/templates/bindings.cc index 1de0922e..6e1494e9 100644 --- a/wasm/codegen/templates/bindings.cc +++ b/wasm/codegen/templates/bindings.cc @@ -105,13 +105,7 @@ std::vector InitWrapperArray(ArrayType* array, SizeType size) { return result; } -// Create the types for anonymous structs -using mjVisualGlobal = decltype(::mjVisual::global); -using mjVisualQuality = decltype(::mjVisual::quality); -using mjVisualHeadlight = decltype(::mjVisual::headlight); -using mjVisualMap = decltype(::mjVisual::map); -using mjVisualScale = decltype(::mjVisual::scale); -using mjVisualRgba = decltype(::mjVisual::rgba); +// {{ ANONYMOUS_STRUCT_TYPEDEFS }} // {{ AUTOGENNED_STRUCTS_HEADER }}