jolt-ruby 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. checksums.yaml +7 -0
  2. data/.gitmodules +3 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +228 -0
  5. data/Rakefile +180 -0
  6. data/examples/character_virtual.rb +35 -0
  7. data/examples/falling_sphere.rb +25 -0
  8. data/examples/stagecraft_binding.rb +29 -0
  9. data/ext/jolt_ruby/CMakeLists.txt +42 -0
  10. data/ext/jolt_ruby/character_helper.cpp +44 -0
  11. data/ext/jolt_ruby/constraint_helper.cpp +154 -0
  12. data/ext/jolt_ruby/extconf.rb +56 -0
  13. data/ext/jolt_ruby/helper.cpp +225 -0
  14. data/ext/jolt_ruby/helper.h +103 -0
  15. data/ext/joltc/.github/FUNDING.yml +1 -0
  16. data/ext/joltc/.github/workflows/build.yml +298 -0
  17. data/ext/joltc/.gitignore +272 -0
  18. data/ext/joltc/CMakeLists.txt +431 -0
  19. data/ext/joltc/LICENSE +21 -0
  20. data/ext/joltc/README.md +10 -0
  21. data/ext/joltc/build/cmake_vs2026_arm64.bat +3 -0
  22. data/ext/joltc/build/cmake_vs2026_clang.bat +10 -0
  23. data/ext/joltc/build/cmake_vs2026_x64.bat +3 -0
  24. data/ext/joltc/build/cmake_vs2026_x64_double.bat +3 -0
  25. data/ext/joltc/include/joltc.h +3166 -0
  26. data/ext/joltc/samples/01_HelloWorld/main.cpp +170 -0
  27. data/ext/joltc/samples/CMakeLists.txt +35 -0
  28. data/ext/joltc/src/joltc.c +4 -0
  29. data/ext/joltc/src/joltc.cpp +11812 -0
  30. data/ext/joltc/src/joltc_assert.cpp +271 -0
  31. data/ext/joltc/tests/CMakeLists.txt +77 -0
  32. data/ext/joltc/tests/test_character.cpp +149 -0
  33. data/ext/joltc/tests/test_collision.cpp +146 -0
  34. data/ext/joltc/tests/test_constraints.cpp +353 -0
  35. data/ext/joltc/tests/test_core.cpp +94 -0
  36. data/ext/joltc/tests/test_math.cpp +585 -0
  37. data/ext/joltc/tests/test_physics_system.cpp +465 -0
  38. data/ext/joltc/tests/test_shapes.cpp +789 -0
  39. data/ext/joltc/tests/test_skeleton.cpp +370 -0
  40. data/ext/joltc/tests/test_vehicle.cpp +319 -0
  41. data/generator/generate.rb +237 -0
  42. data/generator/layout_probe.cpp +489 -0
  43. data/generator/verify_layout.rb +32 -0
  44. data/lib/jolt/body.rb +147 -0
  45. data/lib/jolt/body_collection.rb +115 -0
  46. data/lib/jolt/body_dynamics.rb +93 -0
  47. data/lib/jolt/character_virtual.rb +162 -0
  48. data/lib/jolt/constraint.rb +136 -0
  49. data/lib/jolt/constraint_collection.rb +123 -0
  50. data/lib/jolt/contact_events.rb +19 -0
  51. data/lib/jolt/conversions.rb +76 -0
  52. data/lib/jolt/errors.rb +12 -0
  53. data/lib/jolt/fixed_stepper.rb +37 -0
  54. data/lib/jolt/hit.rb +5 -0
  55. data/lib/jolt/layers.rb +182 -0
  56. data/lib/jolt/native/character_functions.rb +16 -0
  57. data/lib/jolt/native/constraint_functions.rb +27 -0
  58. data/lib/jolt/native/core_functions.rb +17 -0
  59. data/lib/jolt/native/generated.rb +1995 -0
  60. data/lib/jolt/native/platform.rb +51 -0
  61. data/lib/jolt/native/query_functions.rb +43 -0
  62. data/lib/jolt/native/types.rb +28 -0
  63. data/lib/jolt/native.rb +94 -0
  64. data/lib/jolt/shape.rb +90 -0
  65. data/lib/jolt/shape_builders.rb +155 -0
  66. data/lib/jolt/system.rb +238 -0
  67. data/lib/jolt/system_characters.rb +25 -0
  68. data/lib/jolt/system_constraints.rb +36 -0
  69. data/lib/jolt/system_contacts.rb +57 -0
  70. data/lib/jolt/system_queries.rb +111 -0
  71. data/lib/jolt/transform.rb +5 -0
  72. data/lib/jolt/version.rb +5 -0
  73. data/lib/jolt.rb +83 -0
  74. data/script/smoke_gem.rb +29 -0
  75. data/script/verify_release.rb +36 -0
  76. metadata +147 -0
@@ -0,0 +1,489 @@
1
+ // Generated from ext/joltc/include/joltc.h by generator/generate.rb.
2
+ // Do not edit this file directly.
3
+ #include <cstddef>
4
+ #include <cstdio>
5
+ #include <joltc.h>
6
+
7
+ int main() {
8
+ std::printf("S\tJPH_BodyActivationListener_Procs\t%zu\n", sizeof(JPH_BodyActivationListener_Procs));
9
+ std::printf("F\tJPH_BodyActivationListener_Procs\ton_body_activated\t%zu\n", offsetof(JPH_BodyActivationListener_Procs, OnBodyActivated));
10
+ std::printf("F\tJPH_BodyActivationListener_Procs\ton_body_deactivated\t%zu\n", offsetof(JPH_BodyActivationListener_Procs, OnBodyDeactivated));
11
+ std::printf("S\tJPH_BodyDrawFilter_Procs\t%zu\n", sizeof(JPH_BodyDrawFilter_Procs));
12
+ std::printf("F\tJPH_BodyDrawFilter_Procs\tshould_draw\t%zu\n", offsetof(JPH_BodyDrawFilter_Procs, ShouldDraw));
13
+ std::printf("S\tJPH_BodyFilter_Procs\t%zu\n", sizeof(JPH_BodyFilter_Procs));
14
+ std::printf("F\tJPH_BodyFilter_Procs\tshould_collide\t%zu\n", offsetof(JPH_BodyFilter_Procs, ShouldCollide));
15
+ std::printf("F\tJPH_BodyFilter_Procs\tshould_collide_locked\t%zu\n", offsetof(JPH_BodyFilter_Procs, ShouldCollideLocked));
16
+ std::printf("S\tJPH_BodyLockRead\t%zu\n", sizeof(JPH_BodyLockRead));
17
+ std::printf("F\tJPH_BodyLockRead\tlock_interface\t%zu\n", offsetof(JPH_BodyLockRead, lockInterface));
18
+ std::printf("F\tJPH_BodyLockRead\tmutex\t%zu\n", offsetof(JPH_BodyLockRead, mutex));
19
+ std::printf("F\tJPH_BodyLockRead\tbody\t%zu\n", offsetof(JPH_BodyLockRead, body));
20
+ std::printf("S\tJPH_BodyLockWrite\t%zu\n", sizeof(JPH_BodyLockWrite));
21
+ std::printf("F\tJPH_BodyLockWrite\tlock_interface\t%zu\n", offsetof(JPH_BodyLockWrite, lockInterface));
22
+ std::printf("F\tJPH_BodyLockWrite\tmutex\t%zu\n", offsetof(JPH_BodyLockWrite, mutex));
23
+ std::printf("F\tJPH_BodyLockWrite\tbody\t%zu\n", offsetof(JPH_BodyLockWrite, body));
24
+ std::printf("S\tJPH_BroadPhaseCastResult\t%zu\n", sizeof(JPH_BroadPhaseCastResult));
25
+ std::printf("F\tJPH_BroadPhaseCastResult\tbody_id\t%zu\n", offsetof(JPH_BroadPhaseCastResult, bodyID));
26
+ std::printf("F\tJPH_BroadPhaseCastResult\tfraction\t%zu\n", offsetof(JPH_BroadPhaseCastResult, fraction));
27
+ std::printf("S\tJPH_BroadPhaseLayerFilter_Procs\t%zu\n", sizeof(JPH_BroadPhaseLayerFilter_Procs));
28
+ std::printf("F\tJPH_BroadPhaseLayerFilter_Procs\tshould_collide\t%zu\n", offsetof(JPH_BroadPhaseLayerFilter_Procs, ShouldCollide));
29
+ std::printf("S\tJPH_CharacterContactListener_Procs\t%zu\n", sizeof(JPH_CharacterContactListener_Procs));
30
+ std::printf("F\tJPH_CharacterContactListener_Procs\ton_adjust_body_velocity\t%zu\n", offsetof(JPH_CharacterContactListener_Procs, OnAdjustBodyVelocity));
31
+ std::printf("F\tJPH_CharacterContactListener_Procs\ton_contact_validate\t%zu\n", offsetof(JPH_CharacterContactListener_Procs, OnContactValidate));
32
+ std::printf("F\tJPH_CharacterContactListener_Procs\ton_character_contact_validate\t%zu\n", offsetof(JPH_CharacterContactListener_Procs, OnCharacterContactValidate));
33
+ std::printf("F\tJPH_CharacterContactListener_Procs\ton_contact_added\t%zu\n", offsetof(JPH_CharacterContactListener_Procs, OnContactAdded));
34
+ std::printf("F\tJPH_CharacterContactListener_Procs\ton_contact_persisted\t%zu\n", offsetof(JPH_CharacterContactListener_Procs, OnContactPersisted));
35
+ std::printf("F\tJPH_CharacterContactListener_Procs\ton_contact_removed\t%zu\n", offsetof(JPH_CharacterContactListener_Procs, OnContactRemoved));
36
+ std::printf("F\tJPH_CharacterContactListener_Procs\ton_character_contact_added\t%zu\n", offsetof(JPH_CharacterContactListener_Procs, OnCharacterContactAdded));
37
+ std::printf("F\tJPH_CharacterContactListener_Procs\ton_character_contact_persisted\t%zu\n", offsetof(JPH_CharacterContactListener_Procs, OnCharacterContactPersisted));
38
+ std::printf("F\tJPH_CharacterContactListener_Procs\ton_character_contact_removed\t%zu\n", offsetof(JPH_CharacterContactListener_Procs, OnCharacterContactRemoved));
39
+ std::printf("F\tJPH_CharacterContactListener_Procs\ton_contact_solve\t%zu\n", offsetof(JPH_CharacterContactListener_Procs, OnContactSolve));
40
+ std::printf("F\tJPH_CharacterContactListener_Procs\ton_character_contact_solve\t%zu\n", offsetof(JPH_CharacterContactListener_Procs, OnCharacterContactSolve));
41
+ std::printf("S\tJPH_CharacterContactSettings\t%zu\n", sizeof(JPH_CharacterContactSettings));
42
+ std::printf("F\tJPH_CharacterContactSettings\tcan_push_character\t%zu\n", offsetof(JPH_CharacterContactSettings, canPushCharacter));
43
+ std::printf("F\tJPH_CharacterContactSettings\tcan_receive_impulses\t%zu\n", offsetof(JPH_CharacterContactSettings, canReceiveImpulses));
44
+ std::printf("S\tJPH_CharacterVsCharacterCollision_Procs\t%zu\n", sizeof(JPH_CharacterVsCharacterCollision_Procs));
45
+ std::printf("F\tJPH_CharacterVsCharacterCollision_Procs\tcollide_character\t%zu\n", offsetof(JPH_CharacterVsCharacterCollision_Procs, CollideCharacter));
46
+ std::printf("F\tJPH_CharacterVsCharacterCollision_Procs\tcast_character\t%zu\n", offsetof(JPH_CharacterVsCharacterCollision_Procs, CastCharacter));
47
+ std::printf("S\tJPH_CollidePointResult\t%zu\n", sizeof(JPH_CollidePointResult));
48
+ std::printf("F\tJPH_CollidePointResult\tbody_id\t%zu\n", offsetof(JPH_CollidePointResult, bodyID));
49
+ std::printf("F\tJPH_CollidePointResult\tsub_shape_id2\t%zu\n", offsetof(JPH_CollidePointResult, subShapeID2));
50
+ std::printf("S\tJPH_CollisionGroup\t%zu\n", sizeof(JPH_CollisionGroup));
51
+ std::printf("F\tJPH_CollisionGroup\tgroup_filter\t%zu\n", offsetof(JPH_CollisionGroup, groupFilter));
52
+ std::printf("F\tJPH_CollisionGroup\tgroup_id\t%zu\n", offsetof(JPH_CollisionGroup, groupID));
53
+ std::printf("F\tJPH_CollisionGroup\tsub_group_id\t%zu\n", offsetof(JPH_CollisionGroup, subGroupID));
54
+ std::printf("S\tJPH_ConstraintSettings\t%zu\n", sizeof(JPH_ConstraintSettings));
55
+ std::printf("F\tJPH_ConstraintSettings\tenabled\t%zu\n", offsetof(JPH_ConstraintSettings, enabled));
56
+ std::printf("F\tJPH_ConstraintSettings\tconstraint_priority\t%zu\n", offsetof(JPH_ConstraintSettings, constraintPriority));
57
+ std::printf("F\tJPH_ConstraintSettings\tnum_velocity_steps_override\t%zu\n", offsetof(JPH_ConstraintSettings, numVelocityStepsOverride));
58
+ std::printf("F\tJPH_ConstraintSettings\tnum_position_steps_override\t%zu\n", offsetof(JPH_ConstraintSettings, numPositionStepsOverride));
59
+ std::printf("F\tJPH_ConstraintSettings\tdraw_constraint_size\t%zu\n", offsetof(JPH_ConstraintSettings, drawConstraintSize));
60
+ std::printf("F\tJPH_ConstraintSettings\tuser_data\t%zu\n", offsetof(JPH_ConstraintSettings, userData));
61
+ std::printf("S\tJPH_ContactListener_Procs\t%zu\n", sizeof(JPH_ContactListener_Procs));
62
+ std::printf("F\tJPH_ContactListener_Procs\ton_contact_validate\t%zu\n", offsetof(JPH_ContactListener_Procs, OnContactValidate));
63
+ std::printf("F\tJPH_ContactListener_Procs\ton_contact_added\t%zu\n", offsetof(JPH_ContactListener_Procs, OnContactAdded));
64
+ std::printf("F\tJPH_ContactListener_Procs\ton_contact_persisted\t%zu\n", offsetof(JPH_ContactListener_Procs, OnContactPersisted));
65
+ std::printf("F\tJPH_ContactListener_Procs\ton_contact_removed\t%zu\n", offsetof(JPH_ContactListener_Procs, OnContactRemoved));
66
+ std::printf("S\tJPH_DebugRenderer_Procs\t%zu\n", sizeof(JPH_DebugRenderer_Procs));
67
+ std::printf("F\tJPH_DebugRenderer_Procs\tdraw_line\t%zu\n", offsetof(JPH_DebugRenderer_Procs, DrawLine));
68
+ std::printf("F\tJPH_DebugRenderer_Procs\tdraw_triangle\t%zu\n", offsetof(JPH_DebugRenderer_Procs, DrawTriangle));
69
+ std::printf("F\tJPH_DebugRenderer_Procs\tdraw_text3_d\t%zu\n", offsetof(JPH_DebugRenderer_Procs, DrawText3D));
70
+ std::printf("S\tJPH_DrawSettings\t%zu\n", sizeof(JPH_DrawSettings));
71
+ std::printf("F\tJPH_DrawSettings\tdraw_get_support_function\t%zu\n", offsetof(JPH_DrawSettings, drawGetSupportFunction));
72
+ std::printf("F\tJPH_DrawSettings\tdraw_support_direction\t%zu\n", offsetof(JPH_DrawSettings, drawSupportDirection));
73
+ std::printf("F\tJPH_DrawSettings\tdraw_get_supporting_face\t%zu\n", offsetof(JPH_DrawSettings, drawGetSupportingFace));
74
+ std::printf("F\tJPH_DrawSettings\tdraw_shape\t%zu\n", offsetof(JPH_DrawSettings, drawShape));
75
+ std::printf("F\tJPH_DrawSettings\tdraw_shape_wireframe\t%zu\n", offsetof(JPH_DrawSettings, drawShapeWireframe));
76
+ std::printf("F\tJPH_DrawSettings\tdraw_shape_color\t%zu\n", offsetof(JPH_DrawSettings, drawShapeColor));
77
+ std::printf("F\tJPH_DrawSettings\tdraw_bounding_box\t%zu\n", offsetof(JPH_DrawSettings, drawBoundingBox));
78
+ std::printf("F\tJPH_DrawSettings\tdraw_center_of_mass_transform\t%zu\n", offsetof(JPH_DrawSettings, drawCenterOfMassTransform));
79
+ std::printf("F\tJPH_DrawSettings\tdraw_world_transform\t%zu\n", offsetof(JPH_DrawSettings, drawWorldTransform));
80
+ std::printf("F\tJPH_DrawSettings\tdraw_velocity\t%zu\n", offsetof(JPH_DrawSettings, drawVelocity));
81
+ std::printf("F\tJPH_DrawSettings\tdraw_mass_and_inertia\t%zu\n", offsetof(JPH_DrawSettings, drawMassAndInertia));
82
+ std::printf("F\tJPH_DrawSettings\tdraw_sleep_stats\t%zu\n", offsetof(JPH_DrawSettings, drawSleepStats));
83
+ std::printf("F\tJPH_DrawSettings\tdraw_soft_body_vertices\t%zu\n", offsetof(JPH_DrawSettings, drawSoftBodyVertices));
84
+ std::printf("F\tJPH_DrawSettings\tdraw_soft_body_vertex_velocities\t%zu\n", offsetof(JPH_DrawSettings, drawSoftBodyVertexVelocities));
85
+ std::printf("F\tJPH_DrawSettings\tdraw_soft_body_edge_constraints\t%zu\n", offsetof(JPH_DrawSettings, drawSoftBodyEdgeConstraints));
86
+ std::printf("F\tJPH_DrawSettings\tdraw_soft_body_bend_constraints\t%zu\n", offsetof(JPH_DrawSettings, drawSoftBodyBendConstraints));
87
+ std::printf("F\tJPH_DrawSettings\tdraw_soft_body_volume_constraints\t%zu\n", offsetof(JPH_DrawSettings, drawSoftBodyVolumeConstraints));
88
+ std::printf("F\tJPH_DrawSettings\tdraw_soft_body_skin_constraints\t%zu\n", offsetof(JPH_DrawSettings, drawSoftBodySkinConstraints));
89
+ std::printf("F\tJPH_DrawSettings\tdraw_soft_body_lra_constraints\t%zu\n", offsetof(JPH_DrawSettings, drawSoftBodyLRAConstraints));
90
+ std::printf("F\tJPH_DrawSettings\tdraw_soft_body_predicted_bounds\t%zu\n", offsetof(JPH_DrawSettings, drawSoftBodyPredictedBounds));
91
+ std::printf("F\tJPH_DrawSettings\tdraw_soft_body_constraint_color\t%zu\n", offsetof(JPH_DrawSettings, drawSoftBodyConstraintColor));
92
+ std::printf("S\tJPH_IndexedTriangle\t%zu\n", sizeof(JPH_IndexedTriangle));
93
+ std::printf("F\tJPH_IndexedTriangle\ti1\t%zu\n", offsetof(JPH_IndexedTriangle, i1));
94
+ std::printf("F\tJPH_IndexedTriangle\ti2\t%zu\n", offsetof(JPH_IndexedTriangle, i2));
95
+ std::printf("F\tJPH_IndexedTriangle\ti3\t%zu\n", offsetof(JPH_IndexedTriangle, i3));
96
+ std::printf("F\tJPH_IndexedTriangle\tmaterial_index\t%zu\n", offsetof(JPH_IndexedTriangle, materialIndex));
97
+ std::printf("F\tJPH_IndexedTriangle\tuser_data\t%zu\n", offsetof(JPH_IndexedTriangle, userData));
98
+ std::printf("S\tJPH_IndexedTriangleNoMaterial\t%zu\n", sizeof(JPH_IndexedTriangleNoMaterial));
99
+ std::printf("F\tJPH_IndexedTriangleNoMaterial\ti1\t%zu\n", offsetof(JPH_IndexedTriangleNoMaterial, i1));
100
+ std::printf("F\tJPH_IndexedTriangleNoMaterial\ti2\t%zu\n", offsetof(JPH_IndexedTriangleNoMaterial, i2));
101
+ std::printf("F\tJPH_IndexedTriangleNoMaterial\ti3\t%zu\n", offsetof(JPH_IndexedTriangleNoMaterial, i3));
102
+ std::printf("S\tJPH_JobSystemConfig\t%zu\n", sizeof(JPH_JobSystemConfig));
103
+ std::printf("F\tJPH_JobSystemConfig\tcontext\t%zu\n", offsetof(JPH_JobSystemConfig, context));
104
+ std::printf("F\tJPH_JobSystemConfig\tqueue_job\t%zu\n", offsetof(JPH_JobSystemConfig, queueJob));
105
+ std::printf("F\tJPH_JobSystemConfig\tqueue_jobs\t%zu\n", offsetof(JPH_JobSystemConfig, queueJobs));
106
+ std::printf("F\tJPH_JobSystemConfig\tmax_concurrency\t%zu\n", offsetof(JPH_JobSystemConfig, maxConcurrency));
107
+ std::printf("F\tJPH_JobSystemConfig\tmax_barriers\t%zu\n", offsetof(JPH_JobSystemConfig, maxBarriers));
108
+ std::printf("S\tJPH_ObjectLayerFilter_Procs\t%zu\n", sizeof(JPH_ObjectLayerFilter_Procs));
109
+ std::printf("F\tJPH_ObjectLayerFilter_Procs\tshould_collide\t%zu\n", offsetof(JPH_ObjectLayerFilter_Procs, ShouldCollide));
110
+ std::printf("S\tJPH_PhysicsSettings\t%zu\n", sizeof(JPH_PhysicsSettings));
111
+ std::printf("F\tJPH_PhysicsSettings\tmax_in_flight_body_pairs\t%zu\n", offsetof(JPH_PhysicsSettings, maxInFlightBodyPairs));
112
+ std::printf("F\tJPH_PhysicsSettings\tstep_listeners_batch_size\t%zu\n", offsetof(JPH_PhysicsSettings, stepListenersBatchSize));
113
+ std::printf("F\tJPH_PhysicsSettings\tstep_listener_batches_per_job\t%zu\n", offsetof(JPH_PhysicsSettings, stepListenerBatchesPerJob));
114
+ std::printf("F\tJPH_PhysicsSettings\tbaumgarte\t%zu\n", offsetof(JPH_PhysicsSettings, baumgarte));
115
+ std::printf("F\tJPH_PhysicsSettings\tspeculative_contact_distance\t%zu\n", offsetof(JPH_PhysicsSettings, speculativeContactDistance));
116
+ std::printf("F\tJPH_PhysicsSettings\tpenetration_slop\t%zu\n", offsetof(JPH_PhysicsSettings, penetrationSlop));
117
+ std::printf("F\tJPH_PhysicsSettings\tlinear_cast_threshold\t%zu\n", offsetof(JPH_PhysicsSettings, linearCastThreshold));
118
+ std::printf("F\tJPH_PhysicsSettings\tlinear_cast_max_penetration\t%zu\n", offsetof(JPH_PhysicsSettings, linearCastMaxPenetration));
119
+ std::printf("F\tJPH_PhysicsSettings\tmanifold_tolerance\t%zu\n", offsetof(JPH_PhysicsSettings, manifoldTolerance));
120
+ std::printf("F\tJPH_PhysicsSettings\tmax_penetration_distance\t%zu\n", offsetof(JPH_PhysicsSettings, maxPenetrationDistance));
121
+ std::printf("F\tJPH_PhysicsSettings\tbody_pair_cache_max_delta_position_sq\t%zu\n", offsetof(JPH_PhysicsSettings, bodyPairCacheMaxDeltaPositionSq));
122
+ std::printf("F\tJPH_PhysicsSettings\tbody_pair_cache_cos_max_delta_rotation_div2\t%zu\n", offsetof(JPH_PhysicsSettings, bodyPairCacheCosMaxDeltaRotationDiv2));
123
+ std::printf("F\tJPH_PhysicsSettings\tcontact_normal_cos_max_delta_rotation\t%zu\n", offsetof(JPH_PhysicsSettings, contactNormalCosMaxDeltaRotation));
124
+ std::printf("F\tJPH_PhysicsSettings\tcontact_point_preserve_lambda_max_dist_sq\t%zu\n", offsetof(JPH_PhysicsSettings, contactPointPreserveLambdaMaxDistSq));
125
+ std::printf("F\tJPH_PhysicsSettings\tnum_velocity_steps\t%zu\n", offsetof(JPH_PhysicsSettings, numVelocitySteps));
126
+ std::printf("F\tJPH_PhysicsSettings\tnum_position_steps\t%zu\n", offsetof(JPH_PhysicsSettings, numPositionSteps));
127
+ std::printf("F\tJPH_PhysicsSettings\tmin_velocity_for_restitution\t%zu\n", offsetof(JPH_PhysicsSettings, minVelocityForRestitution));
128
+ std::printf("F\tJPH_PhysicsSettings\ttime_before_sleep\t%zu\n", offsetof(JPH_PhysicsSettings, timeBeforeSleep));
129
+ std::printf("F\tJPH_PhysicsSettings\tpoint_velocity_sleep_threshold\t%zu\n", offsetof(JPH_PhysicsSettings, pointVelocitySleepThreshold));
130
+ std::printf("F\tJPH_PhysicsSettings\tdeterministic_simulation\t%zu\n", offsetof(JPH_PhysicsSettings, deterministicSimulation));
131
+ std::printf("F\tJPH_PhysicsSettings\tconstraint_warm_start\t%zu\n", offsetof(JPH_PhysicsSettings, constraintWarmStart));
132
+ std::printf("F\tJPH_PhysicsSettings\tuse_body_pair_contact_cache\t%zu\n", offsetof(JPH_PhysicsSettings, useBodyPairContactCache));
133
+ std::printf("F\tJPH_PhysicsSettings\tuse_manifold_reduction\t%zu\n", offsetof(JPH_PhysicsSettings, useManifoldReduction));
134
+ std::printf("F\tJPH_PhysicsSettings\tuse_large_island_splitter\t%zu\n", offsetof(JPH_PhysicsSettings, useLargeIslandSplitter));
135
+ std::printf("F\tJPH_PhysicsSettings\tallow_sleeping\t%zu\n", offsetof(JPH_PhysicsSettings, allowSleeping));
136
+ std::printf("F\tJPH_PhysicsSettings\tcheck_active_edges\t%zu\n", offsetof(JPH_PhysicsSettings, checkActiveEdges));
137
+ std::printf("S\tJPH_PhysicsStepListenerContext\t%zu\n", sizeof(JPH_PhysicsStepListenerContext));
138
+ std::printf("F\tJPH_PhysicsStepListenerContext\tdelta_time\t%zu\n", offsetof(JPH_PhysicsStepListenerContext, deltaTime));
139
+ std::printf("F\tJPH_PhysicsStepListenerContext\tis_first_step\t%zu\n", offsetof(JPH_PhysicsStepListenerContext, isFirstStep));
140
+ std::printf("F\tJPH_PhysicsStepListenerContext\tis_last_step\t%zu\n", offsetof(JPH_PhysicsStepListenerContext, isLastStep));
141
+ std::printf("F\tJPH_PhysicsStepListenerContext\tphysics_system\t%zu\n", offsetof(JPH_PhysicsStepListenerContext, physicsSystem));
142
+ std::printf("S\tJPH_PhysicsStepListener_Procs\t%zu\n", sizeof(JPH_PhysicsStepListener_Procs));
143
+ std::printf("F\tJPH_PhysicsStepListener_Procs\ton_step\t%zu\n", offsetof(JPH_PhysicsStepListener_Procs, OnStep));
144
+ std::printf("S\tJPH_PhysicsSystemSettings\t%zu\n", sizeof(JPH_PhysicsSystemSettings));
145
+ std::printf("F\tJPH_PhysicsSystemSettings\tmax_bodies\t%zu\n", offsetof(JPH_PhysicsSystemSettings, maxBodies));
146
+ std::printf("F\tJPH_PhysicsSystemSettings\tnum_body_mutexes\t%zu\n", offsetof(JPH_PhysicsSystemSettings, numBodyMutexes));
147
+ std::printf("F\tJPH_PhysicsSystemSettings\tmax_body_pairs\t%zu\n", offsetof(JPH_PhysicsSystemSettings, maxBodyPairs));
148
+ std::printf("F\tJPH_PhysicsSystemSettings\tmax_contact_constraints\t%zu\n", offsetof(JPH_PhysicsSystemSettings, maxContactConstraints));
149
+ std::printf("F\tJPH_PhysicsSystemSettings\tpadding\t%zu\n", offsetof(JPH_PhysicsSystemSettings, _padding));
150
+ std::printf("F\tJPH_PhysicsSystemSettings\tbroad_phase_layer_interface\t%zu\n", offsetof(JPH_PhysicsSystemSettings, broadPhaseLayerInterface));
151
+ std::printf("F\tJPH_PhysicsSystemSettings\tobject_layer_pair_filter\t%zu\n", offsetof(JPH_PhysicsSystemSettings, objectLayerPairFilter));
152
+ std::printf("F\tJPH_PhysicsSystemSettings\tobject_vs_broad_phase_layer_filter\t%zu\n", offsetof(JPH_PhysicsSystemSettings, objectVsBroadPhaseLayerFilter));
153
+ std::printf("S\tJPH_Point\t%zu\n", sizeof(JPH_Point));
154
+ std::printf("F\tJPH_Point\tx\t%zu\n", offsetof(JPH_Point, x));
155
+ std::printf("F\tJPH_Point\ty\t%zu\n", offsetof(JPH_Point, y));
156
+ std::printf("S\tJPH_Quat\t%zu\n", sizeof(JPH_Quat));
157
+ std::printf("F\tJPH_Quat\tx\t%zu\n", offsetof(JPH_Quat, x));
158
+ std::printf("F\tJPH_Quat\ty\t%zu\n", offsetof(JPH_Quat, y));
159
+ std::printf("F\tJPH_Quat\tz\t%zu\n", offsetof(JPH_Quat, z));
160
+ std::printf("F\tJPH_Quat\tw\t%zu\n", offsetof(JPH_Quat, w));
161
+ std::printf("S\tJPH_RayCastResult\t%zu\n", sizeof(JPH_RayCastResult));
162
+ std::printf("F\tJPH_RayCastResult\tbody_id\t%zu\n", offsetof(JPH_RayCastResult, bodyID));
163
+ std::printf("F\tJPH_RayCastResult\tfraction\t%zu\n", offsetof(JPH_RayCastResult, fraction));
164
+ std::printf("F\tJPH_RayCastResult\tsub_shape_id2\t%zu\n", offsetof(JPH_RayCastResult, subShapeID2));
165
+ std::printf("S\tJPH_RayCastSettings\t%zu\n", sizeof(JPH_RayCastSettings));
166
+ std::printf("F\tJPH_RayCastSettings\tback_face_mode_triangles\t%zu\n", offsetof(JPH_RayCastSettings, backFaceModeTriangles));
167
+ std::printf("F\tJPH_RayCastSettings\tback_face_mode_convex\t%zu\n", offsetof(JPH_RayCastSettings, backFaceModeConvex));
168
+ std::printf("F\tJPH_RayCastSettings\ttreat_convex_as_solid\t%zu\n", offsetof(JPH_RayCastSettings, treatConvexAsSolid));
169
+ std::printf("S\tJPH_ShapeFilter_Procs\t%zu\n", sizeof(JPH_ShapeFilter_Procs));
170
+ std::printf("F\tJPH_ShapeFilter_Procs\tshould_collide\t%zu\n", offsetof(JPH_ShapeFilter_Procs, ShouldCollide));
171
+ std::printf("F\tJPH_ShapeFilter_Procs\tshould_collide2\t%zu\n", offsetof(JPH_ShapeFilter_Procs, ShouldCollide2));
172
+ std::printf("S\tJPH_SimShapeFilter_Procs\t%zu\n", sizeof(JPH_SimShapeFilter_Procs));
173
+ std::printf("F\tJPH_SimShapeFilter_Procs\tshould_collide\t%zu\n", offsetof(JPH_SimShapeFilter_Procs, ShouldCollide));
174
+ std::printf("S\tJPH_SkeletonJoint\t%zu\n", sizeof(JPH_SkeletonJoint));
175
+ std::printf("F\tJPH_SkeletonJoint\tname\t%zu\n", offsetof(JPH_SkeletonJoint, name));
176
+ std::printf("F\tJPH_SkeletonJoint\tparent_name\t%zu\n", offsetof(JPH_SkeletonJoint, parentName));
177
+ std::printf("F\tJPH_SkeletonJoint\tparent_joint_index\t%zu\n", offsetof(JPH_SkeletonJoint, parentJointIndex));
178
+ std::printf("S\tJPH_SoftFace\t%zu\n", sizeof(JPH_SoftFace));
179
+ std::printf("F\tJPH_SoftFace\tvertex1\t%zu\n", offsetof(JPH_SoftFace, vertex1));
180
+ std::printf("F\tJPH_SoftFace\tvertex2\t%zu\n", offsetof(JPH_SoftFace, vertex2));
181
+ std::printf("F\tJPH_SoftFace\tvertex3\t%zu\n", offsetof(JPH_SoftFace, vertex3));
182
+ std::printf("F\tJPH_SoftFace\tmaterial_index\t%zu\n", offsetof(JPH_SoftFace, materialIndex));
183
+ std::printf("S\tJPH_SpringSettings\t%zu\n", sizeof(JPH_SpringSettings));
184
+ std::printf("F\tJPH_SpringSettings\tmode\t%zu\n", offsetof(JPH_SpringSettings, mode));
185
+ std::printf("F\tJPH_SpringSettings\tfrequency_or_stiffness\t%zu\n", offsetof(JPH_SpringSettings, frequencyOrStiffness));
186
+ std::printf("F\tJPH_SpringSettings\tdamping\t%zu\n", offsetof(JPH_SpringSettings, damping));
187
+ std::printf("S\tJPH_SubShapeIDPair\t%zu\n", sizeof(JPH_SubShapeIDPair));
188
+ std::printf("F\tJPH_SubShapeIDPair\tbody1_id\t%zu\n", offsetof(JPH_SubShapeIDPair, Body1ID));
189
+ std::printf("F\tJPH_SubShapeIDPair\tsub_shape_id1\t%zu\n", offsetof(JPH_SubShapeIDPair, subShapeID1));
190
+ std::printf("F\tJPH_SubShapeIDPair\tbody2_id\t%zu\n", offsetof(JPH_SubShapeIDPair, Body2ID));
191
+ std::printf("F\tJPH_SubShapeIDPair\tsub_shape_id2\t%zu\n", offsetof(JPH_SubShapeIDPair, subShapeID2));
192
+ std::printf("S\tJPH_Vec3\t%zu\n", sizeof(JPH_Vec3));
193
+ std::printf("F\tJPH_Vec3\tx\t%zu\n", offsetof(JPH_Vec3, x));
194
+ std::printf("F\tJPH_Vec3\ty\t%zu\n", offsetof(JPH_Vec3, y));
195
+ std::printf("F\tJPH_Vec3\tz\t%zu\n", offsetof(JPH_Vec3, z));
196
+ std::printf("S\tJPH_Vec4\t%zu\n", sizeof(JPH_Vec4));
197
+ std::printf("F\tJPH_Vec4\tx\t%zu\n", offsetof(JPH_Vec4, x));
198
+ std::printf("F\tJPH_Vec4\ty\t%zu\n", offsetof(JPH_Vec4, y));
199
+ std::printf("F\tJPH_Vec4\tz\t%zu\n", offsetof(JPH_Vec4, z));
200
+ std::printf("F\tJPH_Vec4\tw\t%zu\n", offsetof(JPH_Vec4, w));
201
+ std::printf("S\tJPH_VehicleAntiRollBar\t%zu\n", sizeof(JPH_VehicleAntiRollBar));
202
+ std::printf("F\tJPH_VehicleAntiRollBar\tleft_wheel\t%zu\n", offsetof(JPH_VehicleAntiRollBar, leftWheel));
203
+ std::printf("F\tJPH_VehicleAntiRollBar\tright_wheel\t%zu\n", offsetof(JPH_VehicleAntiRollBar, rightWheel));
204
+ std::printf("F\tJPH_VehicleAntiRollBar\tstiffness\t%zu\n", offsetof(JPH_VehicleAntiRollBar, stiffness));
205
+ std::printf("S\tJPH_VehicleDifferentialSettings\t%zu\n", sizeof(JPH_VehicleDifferentialSettings));
206
+ std::printf("F\tJPH_VehicleDifferentialSettings\tleft_wheel\t%zu\n", offsetof(JPH_VehicleDifferentialSettings, leftWheel));
207
+ std::printf("F\tJPH_VehicleDifferentialSettings\tright_wheel\t%zu\n", offsetof(JPH_VehicleDifferentialSettings, rightWheel));
208
+ std::printf("F\tJPH_VehicleDifferentialSettings\tdifferential_ratio\t%zu\n", offsetof(JPH_VehicleDifferentialSettings, differentialRatio));
209
+ std::printf("F\tJPH_VehicleDifferentialSettings\tleft_right_split\t%zu\n", offsetof(JPH_VehicleDifferentialSettings, leftRightSplit));
210
+ std::printf("F\tJPH_VehicleDifferentialSettings\tlimited_slip_ratio\t%zu\n", offsetof(JPH_VehicleDifferentialSettings, limitedSlipRatio));
211
+ std::printf("F\tJPH_VehicleDifferentialSettings\tengine_torque_ratio\t%zu\n", offsetof(JPH_VehicleDifferentialSettings, engineTorqueRatio));
212
+ std::printf("S\tJPH_VehicleEngineSettings\t%zu\n", sizeof(JPH_VehicleEngineSettings));
213
+ std::printf("F\tJPH_VehicleEngineSettings\tmax_torque\t%zu\n", offsetof(JPH_VehicleEngineSettings, maxTorque));
214
+ std::printf("F\tJPH_VehicleEngineSettings\tmin_rpm\t%zu\n", offsetof(JPH_VehicleEngineSettings, minRPM));
215
+ std::printf("F\tJPH_VehicleEngineSettings\tmax_rpm\t%zu\n", offsetof(JPH_VehicleEngineSettings, maxRPM));
216
+ std::printf("F\tJPH_VehicleEngineSettings\tnormalized_torque\t%zu\n", offsetof(JPH_VehicleEngineSettings, normalizedTorque));
217
+ std::printf("F\tJPH_VehicleEngineSettings\tinertia\t%zu\n", offsetof(JPH_VehicleEngineSettings, inertia));
218
+ std::printf("F\tJPH_VehicleEngineSettings\tangular_damping\t%zu\n", offsetof(JPH_VehicleEngineSettings, angularDamping));
219
+ std::printf("S\tJPH_VehicleTrackSettings\t%zu\n", sizeof(JPH_VehicleTrackSettings));
220
+ std::printf("F\tJPH_VehicleTrackSettings\tdriven_wheel\t%zu\n", offsetof(JPH_VehicleTrackSettings, drivenWheel));
221
+ std::printf("F\tJPH_VehicleTrackSettings\twheels\t%zu\n", offsetof(JPH_VehicleTrackSettings, wheels));
222
+ std::printf("F\tJPH_VehicleTrackSettings\twheels_count\t%zu\n", offsetof(JPH_VehicleTrackSettings, wheelsCount));
223
+ std::printf("F\tJPH_VehicleTrackSettings\tinertia\t%zu\n", offsetof(JPH_VehicleTrackSettings, inertia));
224
+ std::printf("F\tJPH_VehicleTrackSettings\tangular_damping\t%zu\n", offsetof(JPH_VehicleTrackSettings, angularDamping));
225
+ std::printf("F\tJPH_VehicleTrackSettings\tmax_brake_torque\t%zu\n", offsetof(JPH_VehicleTrackSettings, maxBrakeTorque));
226
+ std::printf("F\tJPH_VehicleTrackSettings\tdifferential_ratio\t%zu\n", offsetof(JPH_VehicleTrackSettings, differentialRatio));
227
+ std::printf("S\tJobSystemThreadPoolConfig\t%zu\n", sizeof(JobSystemThreadPoolConfig));
228
+ std::printf("F\tJobSystemThreadPoolConfig\tmax_jobs\t%zu\n", offsetof(JobSystemThreadPoolConfig, maxJobs));
229
+ std::printf("F\tJobSystemThreadPoolConfig\tmax_barriers\t%zu\n", offsetof(JobSystemThreadPoolConfig, maxBarriers));
230
+ std::printf("F\tJobSystemThreadPoolConfig\tnum_threads\t%zu\n", offsetof(JobSystemThreadPoolConfig, numThreads));
231
+ std::printf("S\tJPH_AABox\t%zu\n", sizeof(JPH_AABox));
232
+ std::printf("F\tJPH_AABox\tmin\t%zu\n", offsetof(JPH_AABox, min));
233
+ std::printf("F\tJPH_AABox\tmax\t%zu\n", offsetof(JPH_AABox, max));
234
+ std::printf("S\tJPH_CharacterContact\t%zu\n", sizeof(JPH_CharacterContact));
235
+ std::printf("F\tJPH_CharacterContact\thash\t%zu\n", offsetof(JPH_CharacterContact, hash));
236
+ std::printf("F\tJPH_CharacterContact\tbody_b\t%zu\n", offsetof(JPH_CharacterContact, bodyB));
237
+ std::printf("F\tJPH_CharacterContact\tcharacter_idb\t%zu\n", offsetof(JPH_CharacterContact, characterIDB));
238
+ std::printf("F\tJPH_CharacterContact\tsub_shape_idb\t%zu\n", offsetof(JPH_CharacterContact, subShapeIDB));
239
+ std::printf("F\tJPH_CharacterContact\tposition\t%zu\n", offsetof(JPH_CharacterContact, position));
240
+ std::printf("F\tJPH_CharacterContact\tlinear_velocity\t%zu\n", offsetof(JPH_CharacterContact, linearVelocity));
241
+ std::printf("F\tJPH_CharacterContact\tcontact_normal\t%zu\n", offsetof(JPH_CharacterContact, contactNormal));
242
+ std::printf("F\tJPH_CharacterContact\tsurface_normal\t%zu\n", offsetof(JPH_CharacterContact, surfaceNormal));
243
+ std::printf("F\tJPH_CharacterContact\tdistance\t%zu\n", offsetof(JPH_CharacterContact, distance));
244
+ std::printf("F\tJPH_CharacterContact\tfraction\t%zu\n", offsetof(JPH_CharacterContact, fraction));
245
+ std::printf("F\tJPH_CharacterContact\tmotion_type_b\t%zu\n", offsetof(JPH_CharacterContact, motionTypeB));
246
+ std::printf("F\tJPH_CharacterContact\tis_sensor_b\t%zu\n", offsetof(JPH_CharacterContact, isSensorB));
247
+ std::printf("F\tJPH_CharacterContact\tcharacter_b\t%zu\n", offsetof(JPH_CharacterContact, characterB));
248
+ std::printf("F\tJPH_CharacterContact\tuser_data\t%zu\n", offsetof(JPH_CharacterContact, userData));
249
+ std::printf("F\tJPH_CharacterContact\tmaterial\t%zu\n", offsetof(JPH_CharacterContact, material));
250
+ std::printf("F\tJPH_CharacterContact\thad_collision\t%zu\n", offsetof(JPH_CharacterContact, hadCollision));
251
+ std::printf("F\tJPH_CharacterContact\twas_discarded\t%zu\n", offsetof(JPH_CharacterContact, wasDiscarded));
252
+ std::printf("F\tJPH_CharacterContact\tcan_push_character\t%zu\n", offsetof(JPH_CharacterContact, canPushCharacter));
253
+ std::printf("F\tJPH_CharacterContact\tis_back_facing_contact\t%zu\n", offsetof(JPH_CharacterContact, isBackFacingContact));
254
+ std::printf("S\tJPH_CollideSettingsBase\t%zu\n", sizeof(JPH_CollideSettingsBase));
255
+ std::printf("F\tJPH_CollideSettingsBase\tactive_edge_mode\t%zu\n", offsetof(JPH_CollideSettingsBase, activeEdgeMode));
256
+ std::printf("F\tJPH_CollideSettingsBase\tcollect_faces_mode\t%zu\n", offsetof(JPH_CollideSettingsBase, collectFacesMode));
257
+ std::printf("F\tJPH_CollideSettingsBase\tcollision_tolerance\t%zu\n", offsetof(JPH_CollideSettingsBase, collisionTolerance));
258
+ std::printf("F\tJPH_CollideSettingsBase\tpenetration_tolerance\t%zu\n", offsetof(JPH_CollideSettingsBase, penetrationTolerance));
259
+ std::printf("F\tJPH_CollideSettingsBase\tactive_edge_movement_direction\t%zu\n", offsetof(JPH_CollideSettingsBase, activeEdgeMovementDirection));
260
+ std::printf("S\tJPH_CollideShapeResult\t%zu\n", sizeof(JPH_CollideShapeResult));
261
+ std::printf("F\tJPH_CollideShapeResult\tcontact_point_on1\t%zu\n", offsetof(JPH_CollideShapeResult, contactPointOn1));
262
+ std::printf("F\tJPH_CollideShapeResult\tcontact_point_on2\t%zu\n", offsetof(JPH_CollideShapeResult, contactPointOn2));
263
+ std::printf("F\tJPH_CollideShapeResult\tpenetration_axis\t%zu\n", offsetof(JPH_CollideShapeResult, penetrationAxis));
264
+ std::printf("F\tJPH_CollideShapeResult\tpenetration_depth\t%zu\n", offsetof(JPH_CollideShapeResult, penetrationDepth));
265
+ std::printf("F\tJPH_CollideShapeResult\tsub_shape_id1\t%zu\n", offsetof(JPH_CollideShapeResult, subShapeID1));
266
+ std::printf("F\tJPH_CollideShapeResult\tsub_shape_id2\t%zu\n", offsetof(JPH_CollideShapeResult, subShapeID2));
267
+ std::printf("F\tJPH_CollideShapeResult\tbody_id2\t%zu\n", offsetof(JPH_CollideShapeResult, bodyID2));
268
+ std::printf("F\tJPH_CollideShapeResult\tshape1_face_count\t%zu\n", offsetof(JPH_CollideShapeResult, shape1FaceCount));
269
+ std::printf("F\tJPH_CollideShapeResult\tshape1_faces\t%zu\n", offsetof(JPH_CollideShapeResult, shape1Faces));
270
+ std::printf("F\tJPH_CollideShapeResult\tshape2_face_count\t%zu\n", offsetof(JPH_CollideShapeResult, shape2FaceCount));
271
+ std::printf("F\tJPH_CollideShapeResult\tshape2_faces\t%zu\n", offsetof(JPH_CollideShapeResult, shape2Faces));
272
+ std::printf("S\tJPH_CollisionEstimationResult\t%zu\n", sizeof(JPH_CollisionEstimationResult));
273
+ std::printf("F\tJPH_CollisionEstimationResult\tlinear_velocity1\t%zu\n", offsetof(JPH_CollisionEstimationResult, linearVelocity1));
274
+ std::printf("F\tJPH_CollisionEstimationResult\tangular_velocity1\t%zu\n", offsetof(JPH_CollisionEstimationResult, angularVelocity1));
275
+ std::printf("F\tJPH_CollisionEstimationResult\tlinear_velocity2\t%zu\n", offsetof(JPH_CollisionEstimationResult, linearVelocity2));
276
+ std::printf("F\tJPH_CollisionEstimationResult\tangular_velocity2\t%zu\n", offsetof(JPH_CollisionEstimationResult, angularVelocity2));
277
+ std::printf("F\tJPH_CollisionEstimationResult\tfriction_point\t%zu\n", offsetof(JPH_CollisionEstimationResult, frictionPoint));
278
+ std::printf("F\tJPH_CollisionEstimationResult\ttangent1\t%zu\n", offsetof(JPH_CollisionEstimationResult, tangent1));
279
+ std::printf("F\tJPH_CollisionEstimationResult\ttangent2\t%zu\n", offsetof(JPH_CollisionEstimationResult, tangent2));
280
+ std::printf("F\tJPH_CollisionEstimationResult\tfriction_impulse1\t%zu\n", offsetof(JPH_CollisionEstimationResult, frictionImpulse1));
281
+ std::printf("F\tJPH_CollisionEstimationResult\tfriction_impulse2\t%zu\n", offsetof(JPH_CollisionEstimationResult, frictionImpulse2));
282
+ std::printf("F\tJPH_CollisionEstimationResult\tangular_friction_impulse\t%zu\n", offsetof(JPH_CollisionEstimationResult, angularFrictionImpulse));
283
+ std::printf("F\tJPH_CollisionEstimationResult\tcontact_impulse_count\t%zu\n", offsetof(JPH_CollisionEstimationResult, contactImpulseCount));
284
+ std::printf("F\tJPH_CollisionEstimationResult\tcontact_impulses\t%zu\n", offsetof(JPH_CollisionEstimationResult, contactImpulses));
285
+ std::printf("S\tJPH_ConeConstraintSettings\t%zu\n", sizeof(JPH_ConeConstraintSettings));
286
+ std::printf("F\tJPH_ConeConstraintSettings\tbase\t%zu\n", offsetof(JPH_ConeConstraintSettings, base));
287
+ std::printf("F\tJPH_ConeConstraintSettings\tspace\t%zu\n", offsetof(JPH_ConeConstraintSettings, space));
288
+ std::printf("F\tJPH_ConeConstraintSettings\tpoint1\t%zu\n", offsetof(JPH_ConeConstraintSettings, point1));
289
+ std::printf("F\tJPH_ConeConstraintSettings\ttwist_axis1\t%zu\n", offsetof(JPH_ConeConstraintSettings, twistAxis1));
290
+ std::printf("F\tJPH_ConeConstraintSettings\tpoint2\t%zu\n", offsetof(JPH_ConeConstraintSettings, point2));
291
+ std::printf("F\tJPH_ConeConstraintSettings\ttwist_axis2\t%zu\n", offsetof(JPH_ConeConstraintSettings, twistAxis2));
292
+ std::printf("F\tJPH_ConeConstraintSettings\thalf_cone_angle\t%zu\n", offsetof(JPH_ConeConstraintSettings, halfConeAngle));
293
+ std::printf("S\tJPH_ContactSettings\t%zu\n", sizeof(JPH_ContactSettings));
294
+ std::printf("F\tJPH_ContactSettings\tcombined_friction\t%zu\n", offsetof(JPH_ContactSettings, combinedFriction));
295
+ std::printf("F\tJPH_ContactSettings\tcombined_restitution\t%zu\n", offsetof(JPH_ContactSettings, combinedRestitution));
296
+ std::printf("F\tJPH_ContactSettings\tinv_mass_scale1\t%zu\n", offsetof(JPH_ContactSettings, invMassScale1));
297
+ std::printf("F\tJPH_ContactSettings\tinv_inertia_scale1\t%zu\n", offsetof(JPH_ContactSettings, invInertiaScale1));
298
+ std::printf("F\tJPH_ContactSettings\tinv_mass_scale2\t%zu\n", offsetof(JPH_ContactSettings, invMassScale2));
299
+ std::printf("F\tJPH_ContactSettings\tinv_inertia_scale2\t%zu\n", offsetof(JPH_ContactSettings, invInertiaScale2));
300
+ std::printf("F\tJPH_ContactSettings\tis_sensor\t%zu\n", offsetof(JPH_ContactSettings, isSensor));
301
+ std::printf("F\tJPH_ContactSettings\trelative_linear_surface_velocity\t%zu\n", offsetof(JPH_ContactSettings, relativeLinearSurfaceVelocity));
302
+ std::printf("F\tJPH_ContactSettings\trelative_angular_surface_velocity\t%zu\n", offsetof(JPH_ContactSettings, relativeAngularSurfaceVelocity));
303
+ std::printf("S\tJPH_DistanceConstraintSettings\t%zu\n", sizeof(JPH_DistanceConstraintSettings));
304
+ std::printf("F\tJPH_DistanceConstraintSettings\tbase\t%zu\n", offsetof(JPH_DistanceConstraintSettings, base));
305
+ std::printf("F\tJPH_DistanceConstraintSettings\tspace\t%zu\n", offsetof(JPH_DistanceConstraintSettings, space));
306
+ std::printf("F\tJPH_DistanceConstraintSettings\tpoint1\t%zu\n", offsetof(JPH_DistanceConstraintSettings, point1));
307
+ std::printf("F\tJPH_DistanceConstraintSettings\tpoint2\t%zu\n", offsetof(JPH_DistanceConstraintSettings, point2));
308
+ std::printf("F\tJPH_DistanceConstraintSettings\tmin_distance\t%zu\n", offsetof(JPH_DistanceConstraintSettings, minDistance));
309
+ std::printf("F\tJPH_DistanceConstraintSettings\tmax_distance\t%zu\n", offsetof(JPH_DistanceConstraintSettings, maxDistance));
310
+ std::printf("F\tJPH_DistanceConstraintSettings\tlimits_spring_settings\t%zu\n", offsetof(JPH_DistanceConstraintSettings, limitsSpringSettings));
311
+ std::printf("S\tJPH_ExtendedUpdateSettings\t%zu\n", sizeof(JPH_ExtendedUpdateSettings));
312
+ std::printf("F\tJPH_ExtendedUpdateSettings\tstick_to_floor_step_down\t%zu\n", offsetof(JPH_ExtendedUpdateSettings, stickToFloorStepDown));
313
+ std::printf("F\tJPH_ExtendedUpdateSettings\twalk_stairs_step_up\t%zu\n", offsetof(JPH_ExtendedUpdateSettings, walkStairsStepUp));
314
+ std::printf("F\tJPH_ExtendedUpdateSettings\twalk_stairs_min_step_forward\t%zu\n", offsetof(JPH_ExtendedUpdateSettings, walkStairsMinStepForward));
315
+ std::printf("F\tJPH_ExtendedUpdateSettings\twalk_stairs_step_forward_test\t%zu\n", offsetof(JPH_ExtendedUpdateSettings, walkStairsStepForwardTest));
316
+ std::printf("F\tJPH_ExtendedUpdateSettings\twalk_stairs_cos_angle_forward_contact\t%zu\n", offsetof(JPH_ExtendedUpdateSettings, walkStairsCosAngleForwardContact));
317
+ std::printf("F\tJPH_ExtendedUpdateSettings\twalk_stairs_step_down_extra\t%zu\n", offsetof(JPH_ExtendedUpdateSettings, walkStairsStepDownExtra));
318
+ std::printf("S\tJPH_FixedConstraintSettings\t%zu\n", sizeof(JPH_FixedConstraintSettings));
319
+ std::printf("F\tJPH_FixedConstraintSettings\tbase\t%zu\n", offsetof(JPH_FixedConstraintSettings, base));
320
+ std::printf("F\tJPH_FixedConstraintSettings\tspace\t%zu\n", offsetof(JPH_FixedConstraintSettings, space));
321
+ std::printf("F\tJPH_FixedConstraintSettings\tauto_detect_point\t%zu\n", offsetof(JPH_FixedConstraintSettings, autoDetectPoint));
322
+ std::printf("F\tJPH_FixedConstraintSettings\tpoint1\t%zu\n", offsetof(JPH_FixedConstraintSettings, point1));
323
+ std::printf("F\tJPH_FixedConstraintSettings\taxis_x1\t%zu\n", offsetof(JPH_FixedConstraintSettings, axisX1));
324
+ std::printf("F\tJPH_FixedConstraintSettings\taxis_y1\t%zu\n", offsetof(JPH_FixedConstraintSettings, axisY1));
325
+ std::printf("F\tJPH_FixedConstraintSettings\tpoint2\t%zu\n", offsetof(JPH_FixedConstraintSettings, point2));
326
+ std::printf("F\tJPH_FixedConstraintSettings\taxis_x2\t%zu\n", offsetof(JPH_FixedConstraintSettings, axisX2));
327
+ std::printf("F\tJPH_FixedConstraintSettings\taxis_y2\t%zu\n", offsetof(JPH_FixedConstraintSettings, axisY2));
328
+ std::printf("S\tJPH_GearConstraintSettings\t%zu\n", sizeof(JPH_GearConstraintSettings));
329
+ std::printf("F\tJPH_GearConstraintSettings\tbase\t%zu\n", offsetof(JPH_GearConstraintSettings, base));
330
+ std::printf("F\tJPH_GearConstraintSettings\tspace\t%zu\n", offsetof(JPH_GearConstraintSettings, space));
331
+ std::printf("F\tJPH_GearConstraintSettings\thinge_axis1\t%zu\n", offsetof(JPH_GearConstraintSettings, hingeAxis1));
332
+ std::printf("F\tJPH_GearConstraintSettings\thinge_axis2\t%zu\n", offsetof(JPH_GearConstraintSettings, hingeAxis2));
333
+ std::printf("F\tJPH_GearConstraintSettings\tratio\t%zu\n", offsetof(JPH_GearConstraintSettings, ratio));
334
+ std::printf("S\tJPH_Mat4\t%zu\n", sizeof(JPH_Mat4));
335
+ std::printf("F\tJPH_Mat4\tcolumn\t%zu\n", offsetof(JPH_Mat4, column));
336
+ std::printf("S\tJPH_MotorSettings\t%zu\n", sizeof(JPH_MotorSettings));
337
+ std::printf("F\tJPH_MotorSettings\tspring_settings\t%zu\n", offsetof(JPH_MotorSettings, springSettings));
338
+ std::printf("F\tJPH_MotorSettings\tmin_force_limit\t%zu\n", offsetof(JPH_MotorSettings, minForceLimit));
339
+ std::printf("F\tJPH_MotorSettings\tmax_force_limit\t%zu\n", offsetof(JPH_MotorSettings, maxForceLimit));
340
+ std::printf("F\tJPH_MotorSettings\tmin_torque_limit\t%zu\n", offsetof(JPH_MotorSettings, minTorqueLimit));
341
+ std::printf("F\tJPH_MotorSettings\tmax_torque_limit\t%zu\n", offsetof(JPH_MotorSettings, maxTorqueLimit));
342
+ std::printf("S\tJPH_Plane\t%zu\n", sizeof(JPH_Plane));
343
+ std::printf("F\tJPH_Plane\tnormal\t%zu\n", offsetof(JPH_Plane, normal));
344
+ std::printf("F\tJPH_Plane\tdistance\t%zu\n", offsetof(JPH_Plane, distance));
345
+ std::printf("S\tJPH_PointConstraintSettings\t%zu\n", sizeof(JPH_PointConstraintSettings));
346
+ std::printf("F\tJPH_PointConstraintSettings\tbase\t%zu\n", offsetof(JPH_PointConstraintSettings, base));
347
+ std::printf("F\tJPH_PointConstraintSettings\tspace\t%zu\n", offsetof(JPH_PointConstraintSettings, space));
348
+ std::printf("F\tJPH_PointConstraintSettings\tpoint1\t%zu\n", offsetof(JPH_PointConstraintSettings, point1));
349
+ std::printf("F\tJPH_PointConstraintSettings\tpoint2\t%zu\n", offsetof(JPH_PointConstraintSettings, point2));
350
+ std::printf("S\tJPH_ShapeCastResult\t%zu\n", sizeof(JPH_ShapeCastResult));
351
+ std::printf("F\tJPH_ShapeCastResult\tcontact_point_on1\t%zu\n", offsetof(JPH_ShapeCastResult, contactPointOn1));
352
+ std::printf("F\tJPH_ShapeCastResult\tcontact_point_on2\t%zu\n", offsetof(JPH_ShapeCastResult, contactPointOn2));
353
+ std::printf("F\tJPH_ShapeCastResult\tpenetration_axis\t%zu\n", offsetof(JPH_ShapeCastResult, penetrationAxis));
354
+ std::printf("F\tJPH_ShapeCastResult\tpenetration_depth\t%zu\n", offsetof(JPH_ShapeCastResult, penetrationDepth));
355
+ std::printf("F\tJPH_ShapeCastResult\tsub_shape_id1\t%zu\n", offsetof(JPH_ShapeCastResult, subShapeID1));
356
+ std::printf("F\tJPH_ShapeCastResult\tsub_shape_id2\t%zu\n", offsetof(JPH_ShapeCastResult, subShapeID2));
357
+ std::printf("F\tJPH_ShapeCastResult\tbody_id2\t%zu\n", offsetof(JPH_ShapeCastResult, bodyID2));
358
+ std::printf("F\tJPH_ShapeCastResult\tfraction\t%zu\n", offsetof(JPH_ShapeCastResult, fraction));
359
+ std::printf("F\tJPH_ShapeCastResult\tis_back_face_hit\t%zu\n", offsetof(JPH_ShapeCastResult, isBackFaceHit));
360
+ std::printf("S\tJPH_SoftVertex\t%zu\n", sizeof(JPH_SoftVertex));
361
+ std::printf("F\tJPH_SoftVertex\tposition\t%zu\n", offsetof(JPH_SoftVertex, position));
362
+ std::printf("F\tJPH_SoftVertex\tvelocity\t%zu\n", offsetof(JPH_SoftVertex, velocity));
363
+ std::printf("F\tJPH_SoftVertex\tinv_mass\t%zu\n", offsetof(JPH_SoftVertex, invMass));
364
+ std::printf("S\tJPH_SupportingFace\t%zu\n", sizeof(JPH_SupportingFace));
365
+ std::printf("F\tJPH_SupportingFace\tcount\t%zu\n", offsetof(JPH_SupportingFace, count));
366
+ std::printf("F\tJPH_SupportingFace\tvertices\t%zu\n", offsetof(JPH_SupportingFace, vertices));
367
+ std::printf("S\tJPH_Triangle\t%zu\n", sizeof(JPH_Triangle));
368
+ std::printf("F\tJPH_Triangle\tv1\t%zu\n", offsetof(JPH_Triangle, v1));
369
+ std::printf("F\tJPH_Triangle\tv2\t%zu\n", offsetof(JPH_Triangle, v2));
370
+ std::printf("F\tJPH_Triangle\tv3\t%zu\n", offsetof(JPH_Triangle, v3));
371
+ std::printf("F\tJPH_Triangle\tmaterial_index\t%zu\n", offsetof(JPH_Triangle, materialIndex));
372
+ std::printf("S\tJPH_VehicleConstraintSettings\t%zu\n", sizeof(JPH_VehicleConstraintSettings));
373
+ std::printf("F\tJPH_VehicleConstraintSettings\tbase\t%zu\n", offsetof(JPH_VehicleConstraintSettings, base));
374
+ std::printf("F\tJPH_VehicleConstraintSettings\tup\t%zu\n", offsetof(JPH_VehicleConstraintSettings, up));
375
+ std::printf("F\tJPH_VehicleConstraintSettings\tforward\t%zu\n", offsetof(JPH_VehicleConstraintSettings, forward));
376
+ std::printf("F\tJPH_VehicleConstraintSettings\tmax_pitch_roll_angle\t%zu\n", offsetof(JPH_VehicleConstraintSettings, maxPitchRollAngle));
377
+ std::printf("F\tJPH_VehicleConstraintSettings\twheels_count\t%zu\n", offsetof(JPH_VehicleConstraintSettings, wheelsCount));
378
+ std::printf("F\tJPH_VehicleConstraintSettings\twheels\t%zu\n", offsetof(JPH_VehicleConstraintSettings, wheels));
379
+ std::printf("F\tJPH_VehicleConstraintSettings\tanti_roll_bars_count\t%zu\n", offsetof(JPH_VehicleConstraintSettings, antiRollBarsCount));
380
+ std::printf("F\tJPH_VehicleConstraintSettings\tanti_roll_bars\t%zu\n", offsetof(JPH_VehicleConstraintSettings, antiRollBars));
381
+ std::printf("F\tJPH_VehicleConstraintSettings\tcontroller\t%zu\n", offsetof(JPH_VehicleConstraintSettings, controller));
382
+ std::printf("S\tJPH_CharacterBaseSettings\t%zu\n", sizeof(JPH_CharacterBaseSettings));
383
+ std::printf("F\tJPH_CharacterBaseSettings\tup\t%zu\n", offsetof(JPH_CharacterBaseSettings, up));
384
+ std::printf("F\tJPH_CharacterBaseSettings\tsupporting_volume\t%zu\n", offsetof(JPH_CharacterBaseSettings, supportingVolume));
385
+ std::printf("F\tJPH_CharacterBaseSettings\tmax_slope_angle\t%zu\n", offsetof(JPH_CharacterBaseSettings, maxSlopeAngle));
386
+ std::printf("F\tJPH_CharacterBaseSettings\tenhanced_internal_edge_removal\t%zu\n", offsetof(JPH_CharacterBaseSettings, enhancedInternalEdgeRemoval));
387
+ std::printf("F\tJPH_CharacterBaseSettings\tshape\t%zu\n", offsetof(JPH_CharacterBaseSettings, shape));
388
+ std::printf("S\tJPH_CollideShapeSettings\t%zu\n", sizeof(JPH_CollideShapeSettings));
389
+ std::printf("F\tJPH_CollideShapeSettings\tbase\t%zu\n", offsetof(JPH_CollideShapeSettings, base));
390
+ std::printf("F\tJPH_CollideShapeSettings\tmax_separation_distance\t%zu\n", offsetof(JPH_CollideShapeSettings, maxSeparationDistance));
391
+ std::printf("F\tJPH_CollideShapeSettings\tback_face_mode\t%zu\n", offsetof(JPH_CollideShapeSettings, backFaceMode));
392
+ std::printf("S\tJPH_HingeConstraintSettings\t%zu\n", sizeof(JPH_HingeConstraintSettings));
393
+ std::printf("F\tJPH_HingeConstraintSettings\tbase\t%zu\n", offsetof(JPH_HingeConstraintSettings, base));
394
+ std::printf("F\tJPH_HingeConstraintSettings\tspace\t%zu\n", offsetof(JPH_HingeConstraintSettings, space));
395
+ std::printf("F\tJPH_HingeConstraintSettings\tpoint1\t%zu\n", offsetof(JPH_HingeConstraintSettings, point1));
396
+ std::printf("F\tJPH_HingeConstraintSettings\thinge_axis1\t%zu\n", offsetof(JPH_HingeConstraintSettings, hingeAxis1));
397
+ std::printf("F\tJPH_HingeConstraintSettings\tnormal_axis1\t%zu\n", offsetof(JPH_HingeConstraintSettings, normalAxis1));
398
+ std::printf("F\tJPH_HingeConstraintSettings\tpoint2\t%zu\n", offsetof(JPH_HingeConstraintSettings, point2));
399
+ std::printf("F\tJPH_HingeConstraintSettings\thinge_axis2\t%zu\n", offsetof(JPH_HingeConstraintSettings, hingeAxis2));
400
+ std::printf("F\tJPH_HingeConstraintSettings\tnormal_axis2\t%zu\n", offsetof(JPH_HingeConstraintSettings, normalAxis2));
401
+ std::printf("F\tJPH_HingeConstraintSettings\tlimits_min\t%zu\n", offsetof(JPH_HingeConstraintSettings, limitsMin));
402
+ std::printf("F\tJPH_HingeConstraintSettings\tlimits_max\t%zu\n", offsetof(JPH_HingeConstraintSettings, limitsMax));
403
+ std::printf("F\tJPH_HingeConstraintSettings\tlimits_spring_settings\t%zu\n", offsetof(JPH_HingeConstraintSettings, limitsSpringSettings));
404
+ std::printf("F\tJPH_HingeConstraintSettings\tmax_friction_torque\t%zu\n", offsetof(JPH_HingeConstraintSettings, maxFrictionTorque));
405
+ std::printf("F\tJPH_HingeConstraintSettings\tmotor_settings\t%zu\n", offsetof(JPH_HingeConstraintSettings, motorSettings));
406
+ std::printf("S\tJPH_MassProperties\t%zu\n", sizeof(JPH_MassProperties));
407
+ std::printf("F\tJPH_MassProperties\tmass\t%zu\n", offsetof(JPH_MassProperties, mass));
408
+ std::printf("F\tJPH_MassProperties\tinertia\t%zu\n", offsetof(JPH_MassProperties, inertia));
409
+ std::printf("S\tJPH_ShapeCastSettings\t%zu\n", sizeof(JPH_ShapeCastSettings));
410
+ std::printf("F\tJPH_ShapeCastSettings\tbase\t%zu\n", offsetof(JPH_ShapeCastSettings, base));
411
+ std::printf("F\tJPH_ShapeCastSettings\tback_face_mode_triangles\t%zu\n", offsetof(JPH_ShapeCastSettings, backFaceModeTriangles));
412
+ std::printf("F\tJPH_ShapeCastSettings\tback_face_mode_convex\t%zu\n", offsetof(JPH_ShapeCastSettings, backFaceModeConvex));
413
+ std::printf("F\tJPH_ShapeCastSettings\tuse_shrunken_shape_and_convex_radius\t%zu\n", offsetof(JPH_ShapeCastSettings, useShrunkenShapeAndConvexRadius));
414
+ std::printf("F\tJPH_ShapeCastSettings\treturn_deepest_point\t%zu\n", offsetof(JPH_ShapeCastSettings, returnDeepestPoint));
415
+ std::printf("S\tJPH_SixDOFConstraintSettings\t%zu\n", sizeof(JPH_SixDOFConstraintSettings));
416
+ std::printf("F\tJPH_SixDOFConstraintSettings\tbase\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, base));
417
+ std::printf("F\tJPH_SixDOFConstraintSettings\tspace\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, space));
418
+ std::printf("F\tJPH_SixDOFConstraintSettings\tposition1\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, position1));
419
+ std::printf("F\tJPH_SixDOFConstraintSettings\taxis_x1\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, axisX1));
420
+ std::printf("F\tJPH_SixDOFConstraintSettings\taxis_y1\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, axisY1));
421
+ std::printf("F\tJPH_SixDOFConstraintSettings\tposition2\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, position2));
422
+ std::printf("F\tJPH_SixDOFConstraintSettings\taxis_x2\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, axisX2));
423
+ std::printf("F\tJPH_SixDOFConstraintSettings\taxis_y2\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, axisY2));
424
+ std::printf("F\tJPH_SixDOFConstraintSettings\tmax_friction\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, maxFriction));
425
+ std::printf("F\tJPH_SixDOFConstraintSettings\tswing_type\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, swingType));
426
+ std::printf("F\tJPH_SixDOFConstraintSettings\tlimit_min\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, limitMin));
427
+ std::printf("F\tJPH_SixDOFConstraintSettings\tlimit_max\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, limitMax));
428
+ std::printf("F\tJPH_SixDOFConstraintSettings\tlimits_spring_settings\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, limitsSpringSettings));
429
+ std::printf("F\tJPH_SixDOFConstraintSettings\tmotor_settings\t%zu\n", offsetof(JPH_SixDOFConstraintSettings, motorSettings));
430
+ std::printf("S\tJPH_SliderConstraintSettings\t%zu\n", sizeof(JPH_SliderConstraintSettings));
431
+ std::printf("F\tJPH_SliderConstraintSettings\tbase\t%zu\n", offsetof(JPH_SliderConstraintSettings, base));
432
+ std::printf("F\tJPH_SliderConstraintSettings\tspace\t%zu\n", offsetof(JPH_SliderConstraintSettings, space));
433
+ std::printf("F\tJPH_SliderConstraintSettings\tauto_detect_point\t%zu\n", offsetof(JPH_SliderConstraintSettings, autoDetectPoint));
434
+ std::printf("F\tJPH_SliderConstraintSettings\tpoint1\t%zu\n", offsetof(JPH_SliderConstraintSettings, point1));
435
+ std::printf("F\tJPH_SliderConstraintSettings\tslider_axis1\t%zu\n", offsetof(JPH_SliderConstraintSettings, sliderAxis1));
436
+ std::printf("F\tJPH_SliderConstraintSettings\tnormal_axis1\t%zu\n", offsetof(JPH_SliderConstraintSettings, normalAxis1));
437
+ std::printf("F\tJPH_SliderConstraintSettings\tpoint2\t%zu\n", offsetof(JPH_SliderConstraintSettings, point2));
438
+ std::printf("F\tJPH_SliderConstraintSettings\tslider_axis2\t%zu\n", offsetof(JPH_SliderConstraintSettings, sliderAxis2));
439
+ std::printf("F\tJPH_SliderConstraintSettings\tnormal_axis2\t%zu\n", offsetof(JPH_SliderConstraintSettings, normalAxis2));
440
+ std::printf("F\tJPH_SliderConstraintSettings\tlimits_min\t%zu\n", offsetof(JPH_SliderConstraintSettings, limitsMin));
441
+ std::printf("F\tJPH_SliderConstraintSettings\tlimits_max\t%zu\n", offsetof(JPH_SliderConstraintSettings, limitsMax));
442
+ std::printf("F\tJPH_SliderConstraintSettings\tlimits_spring_settings\t%zu\n", offsetof(JPH_SliderConstraintSettings, limitsSpringSettings));
443
+ std::printf("F\tJPH_SliderConstraintSettings\tmax_friction_force\t%zu\n", offsetof(JPH_SliderConstraintSettings, maxFrictionForce));
444
+ std::printf("F\tJPH_SliderConstraintSettings\tmotor_settings\t%zu\n", offsetof(JPH_SliderConstraintSettings, motorSettings));
445
+ std::printf("S\tJPH_SwingTwistConstraintSettings\t%zu\n", sizeof(JPH_SwingTwistConstraintSettings));
446
+ std::printf("F\tJPH_SwingTwistConstraintSettings\tbase\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, base));
447
+ std::printf("F\tJPH_SwingTwistConstraintSettings\tspace\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, space));
448
+ std::printf("F\tJPH_SwingTwistConstraintSettings\tposition1\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, position1));
449
+ std::printf("F\tJPH_SwingTwistConstraintSettings\ttwist_axis1\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, twistAxis1));
450
+ std::printf("F\tJPH_SwingTwistConstraintSettings\tplane_axis1\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, planeAxis1));
451
+ std::printf("F\tJPH_SwingTwistConstraintSettings\tposition2\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, position2));
452
+ std::printf("F\tJPH_SwingTwistConstraintSettings\ttwist_axis2\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, twistAxis2));
453
+ std::printf("F\tJPH_SwingTwistConstraintSettings\tplane_axis2\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, planeAxis2));
454
+ std::printf("F\tJPH_SwingTwistConstraintSettings\tswing_type\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, swingType));
455
+ std::printf("F\tJPH_SwingTwistConstraintSettings\tnormal_half_cone_angle\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, normalHalfConeAngle));
456
+ std::printf("F\tJPH_SwingTwistConstraintSettings\tplane_half_cone_angle\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, planeHalfConeAngle));
457
+ std::printf("F\tJPH_SwingTwistConstraintSettings\ttwist_min_angle\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, twistMinAngle));
458
+ std::printf("F\tJPH_SwingTwistConstraintSettings\ttwist_max_angle\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, twistMaxAngle));
459
+ std::printf("F\tJPH_SwingTwistConstraintSettings\tmax_friction_torque\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, maxFrictionTorque));
460
+ std::printf("F\tJPH_SwingTwistConstraintSettings\tswing_motor_settings\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, swingMotorSettings));
461
+ std::printf("F\tJPH_SwingTwistConstraintSettings\ttwist_motor_settings\t%zu\n", offsetof(JPH_SwingTwistConstraintSettings, twistMotorSettings));
462
+ std::printf("S\tJPH_CharacterSettings\t%zu\n", sizeof(JPH_CharacterSettings));
463
+ std::printf("F\tJPH_CharacterSettings\tbase\t%zu\n", offsetof(JPH_CharacterSettings, base));
464
+ std::printf("F\tJPH_CharacterSettings\tlayer\t%zu\n", offsetof(JPH_CharacterSettings, layer));
465
+ std::printf("F\tJPH_CharacterSettings\tmass\t%zu\n", offsetof(JPH_CharacterSettings, mass));
466
+ std::printf("F\tJPH_CharacterSettings\tfriction\t%zu\n", offsetof(JPH_CharacterSettings, friction));
467
+ std::printf("F\tJPH_CharacterSettings\tgravity_factor\t%zu\n", offsetof(JPH_CharacterSettings, gravityFactor));
468
+ std::printf("F\tJPH_CharacterSettings\tallowed_do_fs\t%zu\n", offsetof(JPH_CharacterSettings, allowedDOFs));
469
+ std::printf("S\tJPH_CharacterVirtualSettings\t%zu\n", sizeof(JPH_CharacterVirtualSettings));
470
+ std::printf("F\tJPH_CharacterVirtualSettings\tbase\t%zu\n", offsetof(JPH_CharacterVirtualSettings, base));
471
+ std::printf("F\tJPH_CharacterVirtualSettings\tid\t%zu\n", offsetof(JPH_CharacterVirtualSettings, ID));
472
+ std::printf("F\tJPH_CharacterVirtualSettings\tmass\t%zu\n", offsetof(JPH_CharacterVirtualSettings, mass));
473
+ std::printf("F\tJPH_CharacterVirtualSettings\tmax_strength\t%zu\n", offsetof(JPH_CharacterVirtualSettings, maxStrength));
474
+ std::printf("F\tJPH_CharacterVirtualSettings\tshape_offset\t%zu\n", offsetof(JPH_CharacterVirtualSettings, shapeOffset));
475
+ std::printf("F\tJPH_CharacterVirtualSettings\tback_face_mode\t%zu\n", offsetof(JPH_CharacterVirtualSettings, backFaceMode));
476
+ std::printf("F\tJPH_CharacterVirtualSettings\tpredictive_contact_distance\t%zu\n", offsetof(JPH_CharacterVirtualSettings, predictiveContactDistance));
477
+ std::printf("F\tJPH_CharacterVirtualSettings\tmax_collision_iterations\t%zu\n", offsetof(JPH_CharacterVirtualSettings, maxCollisionIterations));
478
+ std::printf("F\tJPH_CharacterVirtualSettings\tmax_constraint_iterations\t%zu\n", offsetof(JPH_CharacterVirtualSettings, maxConstraintIterations));
479
+ std::printf("F\tJPH_CharacterVirtualSettings\tmin_time_remaining\t%zu\n", offsetof(JPH_CharacterVirtualSettings, minTimeRemaining));
480
+ std::printf("F\tJPH_CharacterVirtualSettings\tcollision_tolerance\t%zu\n", offsetof(JPH_CharacterVirtualSettings, collisionTolerance));
481
+ std::printf("F\tJPH_CharacterVirtualSettings\tcharacter_padding\t%zu\n", offsetof(JPH_CharacterVirtualSettings, characterPadding));
482
+ std::printf("F\tJPH_CharacterVirtualSettings\tmax_num_hits\t%zu\n", offsetof(JPH_CharacterVirtualSettings, maxNumHits));
483
+ std::printf("F\tJPH_CharacterVirtualSettings\thit_reduction_cos_max_angle\t%zu\n", offsetof(JPH_CharacterVirtualSettings, hitReductionCosMaxAngle));
484
+ std::printf("F\tJPH_CharacterVirtualSettings\tpenetration_recovery_speed\t%zu\n", offsetof(JPH_CharacterVirtualSettings, penetrationRecoverySpeed));
485
+ std::printf("F\tJPH_CharacterVirtualSettings\tinner_body_shape\t%zu\n", offsetof(JPH_CharacterVirtualSettings, innerBodyShape));
486
+ std::printf("F\tJPH_CharacterVirtualSettings\tinner_body_id_override\t%zu\n", offsetof(JPH_CharacterVirtualSettings, innerBodyIDOverride));
487
+ std::printf("F\tJPH_CharacterVirtualSettings\tinner_body_layer\t%zu\n", offsetof(JPH_CharacterVirtualSettings, innerBodyLayer));
488
+ return 0;
489
+ }
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../lib/jolt/native/generated"
4
+
5
+ probe = ARGV.fetch(0)
6
+ actual_sizes = {}
7
+ actual_offsets = Hash.new { |hash, key| hash[key] = {} }
8
+
9
+ IO.foreach(probe) do |line|
10
+ kind, struct_name, field_name, value = line.chomp.split("\t")
11
+ if kind == "S"
12
+ actual_sizes[struct_name] = Integer(field_name)
13
+ else
14
+ actual_offsets[struct_name][field_name.to_sym] = Integer(value)
15
+ end
16
+ end
17
+
18
+ failures = Jolt::Native::Generated::HEADER_LAYOUTS.filter_map do |name, (expected_size, expected_offsets)|
19
+ klass = Jolt::Native::Generated.const_get(name.delete_prefix("JPH_"))
20
+ ruby_offsets = expected_offsets.to_h { |field, _offset| [field, klass.offset_of(field)] }
21
+ next if actual_sizes[name] == expected_size &&
22
+ klass.size == expected_size &&
23
+ actual_offsets[name] == expected_offsets &&
24
+ ruby_offsets == expected_offsets
25
+
26
+ "#{name}: C=#{[actual_sizes[name], actual_offsets[name]].inspect} " \
27
+ "Clang=#{[expected_size, expected_offsets].inspect} " \
28
+ "FFI=#{[klass.size, ruby_offsets].inspect}"
29
+ end
30
+
31
+ abort "FFI layout mismatch:\n#{failures.join("\n")}" unless failures.empty?
32
+ puts "Verified #{Jolt::Native::Generated::HEADER_LAYOUTS.length} FFI struct layouts"