Commit Graph

13 Commits

Author SHA1 Message Date
Matija Kecman 7dfd92098f Simplified struct field handling in the WASM bindings
PiperOrigin-RevId: 829003969
Change-Id: I139f9c0dad96e1664b1bd054f09fcdf58aff260e
2025-11-06 10:10:18 -08:00
Matias Manevi 06ecdd6ba1 Refactor: Generate all struct bindings within the codegen.
PiperOrigin-RevId: 828973537
Change-Id: I3f371d2f88e1cd9b1bb5c0a9c6a5ace7a21673fb
2025-11-06 08:49:48 -08:00
Google DeepMind 3577c98f82 Refactor Emscripten bindings generation for MuJoCo structs.
PiperOrigin-RevId: 828550215
Change-Id: Iab0bf3a9fbaca4d7774f89a4d8977e762aa57629
2025-11-05 11:14:29 -08:00
Google DeepMind 8104235f8e Generate wrappers for anonymous structs within mjVisual.
PiperOrigin-RevId: 828548681
Change-Id: I07f8b407157b91ac24b38604b20826541e20e23e
2025-11-05 11:10:52 -08:00
Google DeepMind c3858f267a Change default values of WrappedFieldData string fields to empty strings.
PiperOrigin-RevId: 828547058
Change-Id: I0dc0f993cd93a8feab3f1a53b7ee6c47266093e0
2025-11-05 11:07:29 -08:00
Google DeepMind ff0ae09bc4 Remove debug printing functionality from WASM codegen.
PiperOrigin-RevId: 828545426
Change-Id: I136e6290c7ffdd4c2029aaf72cb90e0fc3cc7a9f
2025-11-05 11:03:28 -08:00
Google DeepMind fe1b6b7c80 Refactor: Group autogenerated structs source in bindings.cc
This change modifies the code generation for structs in `bindings.cc`. Instead of placing each struct's constructor and member functions under individual markers, all autogenerated struct source code is now grouped together under a single `// {{ AUTOGENNED_STRUCTS_SOURCE }}` marker. This improves the organization of the generated file and simplifies the template.

Future work would move the rest of the structs into this pattern

PiperOrigin-RevId: 828390272
Change-Id: Iee9d0e8766db86b2c1d4296a37ac7a8e6e05428b
2025-11-05 03:26:09 -08:00
Google DeepMind 5b00b033af Refactor struct dependency sorting to use wrapped field data.
The `sort_structs_by_dependency` function now takes a dictionary of `WrappedStructData` and uses the pre-computed `typename` within `WrappedFieldData` for dependency analysis, instead of re-introspecting the AST. This change also includes populating the `typename` in various `WrappedFieldData` generation methods.

PiperOrigin-RevId: 828389481
Change-Id: Ie97c1a66e5e69bd148a928fda26afdaa09f56687
2025-11-05 03:23:35 -08:00
Matija Kecman 29c1a3a0a5 Cleanup WASM bindings generators so they all have a similar interface
PiperOrigin-RevId: 827965451
Change-Id: I657fc4d3a480fbc62124c84fe9ddc0900a91183f
2025-11-04 07:32:32 -08:00
Matija Kecman 776fc32eb4 Cleanup WASM bindings struct generation
PiperOrigin-RevId: 827949686
Change-Id: I4115e397f64963244e3c30a7eaff5be7534aadf2
2025-11-04 06:44:02 -08:00
Matija Kecman 4b79a58fa0 Add convenience methods to CodeBuilder and cleanup some WASM bindings code generation
PiperOrigin-RevId: 827916844
Change-Id: Ie382f2a5af3d7e3ec2c81cde5d6b768835da2365
2025-11-04 05:02:59 -08:00
Matija Kecman 34e5eecba5 Autogenerate more of mjVFS and mjvGeom WASM bindings
PiperOrigin-RevId: 827898643
Change-Id: I95f9eaa129f663cbeb3606d286c2080c47cfbcc4
2025-11-04 04:00:13 -08:00
Matija Kecman 12a31674a3 Consolidate WASM bindings struct generator helper files into helpers/structs.py
PiperOrigin-RevId: 827889180
Change-Id: I5f8bf0e25d1af7b21b554672bd438bbcd04e62be
2025-11-04 03:23:24 -08:00