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,1995 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated from ext/joltc/include/joltc.h by generator/generate.rb.
4
+ # Do not edit this file directly.
5
+
6
+ require "ffi"
7
+
8
+ module Jolt
9
+ module Native
10
+ module Generated
11
+
12
+ class BodyActivationListener_Procs < FFI::Struct
13
+ layout :on_body_activated, :pointer,
14
+ :on_body_deactivated, :pointer
15
+ end
16
+
17
+ class BodyDrawFilter_Procs < FFI::Struct
18
+ layout :should_draw, :pointer
19
+ end
20
+
21
+ class BodyFilter_Procs < FFI::Struct
22
+ layout :should_collide, :pointer,
23
+ :should_collide_locked, :pointer
24
+ end
25
+
26
+ class BodyLockRead < FFI::Struct
27
+ layout :lock_interface, :pointer,
28
+ :mutex, :pointer,
29
+ :body, :pointer
30
+ end
31
+
32
+ class BodyLockWrite < FFI::Struct
33
+ layout :lock_interface, :pointer,
34
+ :mutex, :pointer,
35
+ :body, :pointer
36
+ end
37
+
38
+ class BroadPhaseCastResult < FFI::Struct
39
+ layout :body_id, :uint32,
40
+ :fraction, :float
41
+ end
42
+
43
+ class BroadPhaseLayerFilter_Procs < FFI::Struct
44
+ layout :should_collide, :pointer
45
+ end
46
+
47
+ class CharacterContactListener_Procs < FFI::Struct
48
+ layout :on_adjust_body_velocity, :pointer,
49
+ :on_contact_validate, :pointer,
50
+ :on_character_contact_validate, :pointer,
51
+ :on_contact_added, :pointer,
52
+ :on_contact_persisted, :pointer,
53
+ :on_contact_removed, :pointer,
54
+ :on_character_contact_added, :pointer,
55
+ :on_character_contact_persisted, :pointer,
56
+ :on_character_contact_removed, :pointer,
57
+ :on_contact_solve, :pointer,
58
+ :on_character_contact_solve, :pointer
59
+ end
60
+
61
+ class CharacterContactSettings < FFI::Struct
62
+ layout :can_push_character, :bool,
63
+ :can_receive_impulses, :bool
64
+ end
65
+
66
+ class CharacterVsCharacterCollision_Procs < FFI::Struct
67
+ layout :collide_character, :pointer,
68
+ :cast_character, :pointer
69
+ end
70
+
71
+ class CollidePointResult < FFI::Struct
72
+ layout :body_id, :uint32,
73
+ :sub_shape_id2, :uint32
74
+ end
75
+
76
+ class CollisionGroup < FFI::Struct
77
+ layout :group_filter, :pointer,
78
+ :group_id, :uint32,
79
+ :sub_group_id, :uint32
80
+ end
81
+
82
+ class ConstraintSettings < FFI::Struct
83
+ layout :enabled, :bool,
84
+ :constraint_priority, :uint32,
85
+ :num_velocity_steps_override, :uint32,
86
+ :num_position_steps_override, :uint32,
87
+ :draw_constraint_size, :float,
88
+ :user_data, :uint64
89
+ end
90
+
91
+ class ContactListener_Procs < FFI::Struct
92
+ layout :on_contact_validate, :pointer,
93
+ :on_contact_added, :pointer,
94
+ :on_contact_persisted, :pointer,
95
+ :on_contact_removed, :pointer
96
+ end
97
+
98
+ class DebugRenderer_Procs < FFI::Struct
99
+ layout :draw_line, :pointer,
100
+ :draw_triangle, :pointer,
101
+ :draw_text3_d, :pointer
102
+ end
103
+
104
+ class DrawSettings < FFI::Struct
105
+ layout :draw_get_support_function, :bool,
106
+ :draw_support_direction, :bool,
107
+ :draw_get_supporting_face, :bool,
108
+ :draw_shape, :bool,
109
+ :draw_shape_wireframe, :bool,
110
+ :draw_shape_color, :int,
111
+ :draw_bounding_box, :bool,
112
+ :draw_center_of_mass_transform, :bool,
113
+ :draw_world_transform, :bool,
114
+ :draw_velocity, :bool,
115
+ :draw_mass_and_inertia, :bool,
116
+ :draw_sleep_stats, :bool,
117
+ :draw_soft_body_vertices, :bool,
118
+ :draw_soft_body_vertex_velocities, :bool,
119
+ :draw_soft_body_edge_constraints, :bool,
120
+ :draw_soft_body_bend_constraints, :bool,
121
+ :draw_soft_body_volume_constraints, :bool,
122
+ :draw_soft_body_skin_constraints, :bool,
123
+ :draw_soft_body_lra_constraints, :bool,
124
+ :draw_soft_body_predicted_bounds, :bool,
125
+ :draw_soft_body_constraint_color, :int
126
+ end
127
+
128
+ class IndexedTriangle < FFI::Struct
129
+ layout :i1, :uint32,
130
+ :i2, :uint32,
131
+ :i3, :uint32,
132
+ :material_index, :uint32,
133
+ :user_data, :uint32
134
+ end
135
+
136
+ class IndexedTriangleNoMaterial < FFI::Struct
137
+ layout :i1, :uint32,
138
+ :i2, :uint32,
139
+ :i3, :uint32
140
+ end
141
+
142
+ class JobSystemConfig < FFI::Struct
143
+ layout :context, :pointer,
144
+ :queue_job, :pointer,
145
+ :queue_jobs, :pointer,
146
+ :max_concurrency, :uint32,
147
+ :max_barriers, :uint32
148
+ end
149
+
150
+ class ObjectLayerFilter_Procs < FFI::Struct
151
+ layout :should_collide, :pointer
152
+ end
153
+
154
+ class PhysicsSettings < FFI::Struct
155
+ layout :max_in_flight_body_pairs, :int32,
156
+ :step_listeners_batch_size, :int32,
157
+ :step_listener_batches_per_job, :int32,
158
+ :baumgarte, :float,
159
+ :speculative_contact_distance, :float,
160
+ :penetration_slop, :float,
161
+ :linear_cast_threshold, :float,
162
+ :linear_cast_max_penetration, :float,
163
+ :manifold_tolerance, :float,
164
+ :max_penetration_distance, :float,
165
+ :body_pair_cache_max_delta_position_sq, :float,
166
+ :body_pair_cache_cos_max_delta_rotation_div2, :float,
167
+ :contact_normal_cos_max_delta_rotation, :float,
168
+ :contact_point_preserve_lambda_max_dist_sq, :float,
169
+ :num_velocity_steps, :uint32,
170
+ :num_position_steps, :uint32,
171
+ :min_velocity_for_restitution, :float,
172
+ :time_before_sleep, :float,
173
+ :point_velocity_sleep_threshold, :float,
174
+ :deterministic_simulation, :bool,
175
+ :constraint_warm_start, :bool,
176
+ :use_body_pair_contact_cache, :bool,
177
+ :use_manifold_reduction, :bool,
178
+ :use_large_island_splitter, :bool,
179
+ :allow_sleeping, :bool,
180
+ :check_active_edges, :bool
181
+ end
182
+
183
+ class PhysicsStepListenerContext < FFI::Struct
184
+ layout :delta_time, :float,
185
+ :is_first_step, :uint32,
186
+ :is_last_step, :uint32,
187
+ :physics_system, :pointer
188
+ end
189
+
190
+ class PhysicsStepListener_Procs < FFI::Struct
191
+ layout :on_step, :pointer
192
+ end
193
+
194
+ class PhysicsSystemSettings < FFI::Struct
195
+ layout :max_bodies, :uint32,
196
+ :num_body_mutexes, :uint32,
197
+ :max_body_pairs, :uint32,
198
+ :max_contact_constraints, :uint32,
199
+ :padding, :uint32,
200
+ :broad_phase_layer_interface, :pointer,
201
+ :object_layer_pair_filter, :pointer,
202
+ :object_vs_broad_phase_layer_filter, :pointer
203
+ end
204
+
205
+ class Point < FFI::Struct
206
+ layout :x, :float,
207
+ :y, :float
208
+ end
209
+
210
+ class Quat < FFI::Struct
211
+ layout :x, :float,
212
+ :y, :float,
213
+ :z, :float,
214
+ :w, :float
215
+ end
216
+
217
+ class RayCastResult < FFI::Struct
218
+ layout :body_id, :uint32,
219
+ :fraction, :float,
220
+ :sub_shape_id2, :uint32
221
+ end
222
+
223
+ class RayCastSettings < FFI::Struct
224
+ layout :back_face_mode_triangles, :int,
225
+ :back_face_mode_convex, :int,
226
+ :treat_convex_as_solid, :bool
227
+ end
228
+
229
+ class ShapeFilter_Procs < FFI::Struct
230
+ layout :should_collide, :pointer,
231
+ :should_collide2, :pointer
232
+ end
233
+
234
+ class SimShapeFilter_Procs < FFI::Struct
235
+ layout :should_collide, :pointer
236
+ end
237
+
238
+ class SkeletonJoint < FFI::Struct
239
+ layout :name, :pointer,
240
+ :parent_name, :pointer,
241
+ :parent_joint_index, :int32
242
+ end
243
+
244
+ class SoftFace < FFI::Struct
245
+ layout :vertex1, :uint32,
246
+ :vertex2, :uint32,
247
+ :vertex3, :uint32,
248
+ :material_index, :uint32
249
+ end
250
+
251
+ class SpringSettings < FFI::Struct
252
+ layout :mode, :int,
253
+ :frequency_or_stiffness, :float,
254
+ :damping, :float
255
+ end
256
+
257
+ class SubShapeIDPair < FFI::Struct
258
+ layout :body1_id, :uint32,
259
+ :sub_shape_id1, :uint32,
260
+ :body2_id, :uint32,
261
+ :sub_shape_id2, :uint32
262
+ end
263
+
264
+ class Vec3 < FFI::Struct
265
+ layout :x, :float,
266
+ :y, :float,
267
+ :z, :float
268
+ end
269
+
270
+ class Vec4 < FFI::Struct
271
+ layout :x, :float,
272
+ :y, :float,
273
+ :z, :float,
274
+ :w, :float
275
+ end
276
+
277
+ class VehicleAntiRollBar < FFI::Struct
278
+ layout :left_wheel, :int32,
279
+ :right_wheel, :int32,
280
+ :stiffness, :float
281
+ end
282
+
283
+ class VehicleDifferentialSettings < FFI::Struct
284
+ layout :left_wheel, :int32,
285
+ :right_wheel, :int32,
286
+ :differential_ratio, :float,
287
+ :left_right_split, :float,
288
+ :limited_slip_ratio, :float,
289
+ :engine_torque_ratio, :float
290
+ end
291
+
292
+ class VehicleEngineSettings < FFI::Struct
293
+ layout :max_torque, :float,
294
+ :min_rpm, :float,
295
+ :max_rpm, :float,
296
+ :normalized_torque, :pointer,
297
+ :inertia, :float,
298
+ :angular_damping, :float
299
+ end
300
+
301
+ class VehicleTrackSettings < FFI::Struct
302
+ layout :driven_wheel, :uint32,
303
+ :wheels, :pointer,
304
+ :wheels_count, :uint32,
305
+ :inertia, :float,
306
+ :angular_damping, :float,
307
+ :max_brake_torque, :float,
308
+ :differential_ratio, :float
309
+ end
310
+
311
+ class JobSystemThreadPoolConfig < FFI::Struct
312
+ layout :max_jobs, :uint32,
313
+ :max_barriers, :uint32,
314
+ :num_threads, :int32
315
+ end
316
+
317
+ class AABox < FFI::Struct
318
+ layout :min, Vec3.by_value,
319
+ :max, Vec3.by_value
320
+ end
321
+
322
+ class CharacterContact < FFI::Struct
323
+ layout :hash, :uint64,
324
+ :body_b, :uint32,
325
+ :character_idb, :uint32,
326
+ :sub_shape_idb, :uint32,
327
+ :position, Vec3.by_value,
328
+ :linear_velocity, Vec3.by_value,
329
+ :contact_normal, Vec3.by_value,
330
+ :surface_normal, Vec3.by_value,
331
+ :distance, :float,
332
+ :fraction, :float,
333
+ :motion_type_b, :int,
334
+ :is_sensor_b, :bool,
335
+ :character_b, :pointer,
336
+ :user_data, :uint64,
337
+ :material, :pointer,
338
+ :had_collision, :bool,
339
+ :was_discarded, :bool,
340
+ :can_push_character, :bool,
341
+ :is_back_facing_contact, :bool
342
+ end
343
+
344
+ class CollideSettingsBase < FFI::Struct
345
+ layout :active_edge_mode, :int,
346
+ :collect_faces_mode, :int,
347
+ :collision_tolerance, :float,
348
+ :penetration_tolerance, :float,
349
+ :active_edge_movement_direction, Vec3.by_value
350
+ end
351
+
352
+ class CollideShapeResult < FFI::Struct
353
+ layout :contact_point_on1, Vec3.by_value,
354
+ :contact_point_on2, Vec3.by_value,
355
+ :penetration_axis, Vec3.by_value,
356
+ :penetration_depth, :float,
357
+ :sub_shape_id1, :uint32,
358
+ :sub_shape_id2, :uint32,
359
+ :body_id2, :uint32,
360
+ :shape1_face_count, :uint32,
361
+ :shape1_faces, :pointer,
362
+ :shape2_face_count, :uint32,
363
+ :shape2_faces, :pointer
364
+ end
365
+
366
+ class CollisionEstimationResult < FFI::Struct
367
+ layout :linear_velocity1, Vec3.by_value,
368
+ :angular_velocity1, Vec3.by_value,
369
+ :linear_velocity2, Vec3.by_value,
370
+ :angular_velocity2, Vec3.by_value,
371
+ :friction_point, Vec3.by_value,
372
+ :tangent1, Vec3.by_value,
373
+ :tangent2, Vec3.by_value,
374
+ :friction_impulse1, :float,
375
+ :friction_impulse2, :float,
376
+ :angular_friction_impulse, :float,
377
+ :contact_impulse_count, :uint32,
378
+ :contact_impulses, :pointer
379
+ end
380
+
381
+ class ConeConstraintSettings < FFI::Struct
382
+ layout :base, ConstraintSettings.by_value,
383
+ :space, :int,
384
+ :point1, Vec3.by_value,
385
+ :twist_axis1, Vec3.by_value,
386
+ :point2, Vec3.by_value,
387
+ :twist_axis2, Vec3.by_value,
388
+ :half_cone_angle, :float
389
+ end
390
+
391
+ class ContactSettings < FFI::Struct
392
+ layout :combined_friction, :float,
393
+ :combined_restitution, :float,
394
+ :inv_mass_scale1, :float,
395
+ :inv_inertia_scale1, :float,
396
+ :inv_mass_scale2, :float,
397
+ :inv_inertia_scale2, :float,
398
+ :is_sensor, :uint32,
399
+ :relative_linear_surface_velocity, Vec3.by_value,
400
+ :relative_angular_surface_velocity, Vec3.by_value
401
+ end
402
+
403
+ class DistanceConstraintSettings < FFI::Struct
404
+ layout :base, ConstraintSettings.by_value,
405
+ :space, :int,
406
+ :point1, Vec3.by_value,
407
+ :point2, Vec3.by_value,
408
+ :min_distance, :float,
409
+ :max_distance, :float,
410
+ :limits_spring_settings, SpringSettings.by_value
411
+ end
412
+
413
+ class ExtendedUpdateSettings < FFI::Struct
414
+ layout :stick_to_floor_step_down, Vec3.by_value,
415
+ :walk_stairs_step_up, Vec3.by_value,
416
+ :walk_stairs_min_step_forward, :float,
417
+ :walk_stairs_step_forward_test, :float,
418
+ :walk_stairs_cos_angle_forward_contact, :float,
419
+ :walk_stairs_step_down_extra, Vec3.by_value
420
+ end
421
+
422
+ class FixedConstraintSettings < FFI::Struct
423
+ layout :base, ConstraintSettings.by_value,
424
+ :space, :int,
425
+ :auto_detect_point, :bool,
426
+ :point1, Vec3.by_value,
427
+ :axis_x1, Vec3.by_value,
428
+ :axis_y1, Vec3.by_value,
429
+ :point2, Vec3.by_value,
430
+ :axis_x2, Vec3.by_value,
431
+ :axis_y2, Vec3.by_value
432
+ end
433
+
434
+ class GearConstraintSettings < FFI::Struct
435
+ layout :base, ConstraintSettings.by_value,
436
+ :space, :int,
437
+ :hinge_axis1, Vec3.by_value,
438
+ :hinge_axis2, Vec3.by_value,
439
+ :ratio, :float
440
+ end
441
+
442
+ class Mat4 < FFI::Struct
443
+ layout :column, [Vec4.by_value, 4]
444
+ end
445
+
446
+ class MotorSettings < FFI::Struct
447
+ layout :spring_settings, SpringSettings.by_value,
448
+ :min_force_limit, :float,
449
+ :max_force_limit, :float,
450
+ :min_torque_limit, :float,
451
+ :max_torque_limit, :float
452
+ end
453
+
454
+ class Plane < FFI::Struct
455
+ layout :normal, Vec3.by_value,
456
+ :distance, :float
457
+ end
458
+
459
+ class PointConstraintSettings < FFI::Struct
460
+ layout :base, ConstraintSettings.by_value,
461
+ :space, :int,
462
+ :point1, Vec3.by_value,
463
+ :point2, Vec3.by_value
464
+ end
465
+
466
+ class ShapeCastResult < FFI::Struct
467
+ layout :contact_point_on1, Vec3.by_value,
468
+ :contact_point_on2, Vec3.by_value,
469
+ :penetration_axis, Vec3.by_value,
470
+ :penetration_depth, :float,
471
+ :sub_shape_id1, :uint32,
472
+ :sub_shape_id2, :uint32,
473
+ :body_id2, :uint32,
474
+ :fraction, :float,
475
+ :is_back_face_hit, :bool
476
+ end
477
+
478
+ class SoftVertex < FFI::Struct
479
+ layout :position, Vec3.by_value,
480
+ :velocity, Vec3.by_value,
481
+ :inv_mass, :float
482
+ end
483
+
484
+ class SupportingFace < FFI::Struct
485
+ layout :count, :uint32,
486
+ :vertices, [Vec3.by_value, 32]
487
+ end
488
+
489
+ class Triangle < FFI::Struct
490
+ layout :v1, Vec3.by_value,
491
+ :v2, Vec3.by_value,
492
+ :v3, Vec3.by_value,
493
+ :material_index, :uint32
494
+ end
495
+
496
+ class VehicleConstraintSettings < FFI::Struct
497
+ layout :base, ConstraintSettings.by_value,
498
+ :up, Vec3.by_value,
499
+ :forward, Vec3.by_value,
500
+ :max_pitch_roll_angle, :float,
501
+ :wheels_count, :uint32,
502
+ :wheels, :pointer,
503
+ :anti_roll_bars_count, :uint32,
504
+ :anti_roll_bars, :pointer,
505
+ :controller, :pointer
506
+ end
507
+
508
+ class CharacterBaseSettings < FFI::Struct
509
+ layout :up, Vec3.by_value,
510
+ :supporting_volume, Plane.by_value,
511
+ :max_slope_angle, :float,
512
+ :enhanced_internal_edge_removal, :bool,
513
+ :shape, :pointer
514
+ end
515
+
516
+ class CollideShapeSettings < FFI::Struct
517
+ layout :base, CollideSettingsBase.by_value,
518
+ :max_separation_distance, :float,
519
+ :back_face_mode, :int
520
+ end
521
+
522
+ class HingeConstraintSettings < FFI::Struct
523
+ layout :base, ConstraintSettings.by_value,
524
+ :space, :int,
525
+ :point1, Vec3.by_value,
526
+ :hinge_axis1, Vec3.by_value,
527
+ :normal_axis1, Vec3.by_value,
528
+ :point2, Vec3.by_value,
529
+ :hinge_axis2, Vec3.by_value,
530
+ :normal_axis2, Vec3.by_value,
531
+ :limits_min, :float,
532
+ :limits_max, :float,
533
+ :limits_spring_settings, SpringSettings.by_value,
534
+ :max_friction_torque, :float,
535
+ :motor_settings, MotorSettings.by_value
536
+ end
537
+
538
+ class MassProperties < FFI::Struct
539
+ layout :mass, :float,
540
+ :inertia, Mat4.by_value
541
+ end
542
+
543
+ class ShapeCastSettings < FFI::Struct
544
+ layout :base, CollideSettingsBase.by_value,
545
+ :back_face_mode_triangles, :int,
546
+ :back_face_mode_convex, :int,
547
+ :use_shrunken_shape_and_convex_radius, :bool,
548
+ :return_deepest_point, :bool
549
+ end
550
+
551
+ class SixDOFConstraintSettings < FFI::Struct
552
+ layout :base, ConstraintSettings.by_value,
553
+ :space, :int,
554
+ :position1, Vec3.by_value,
555
+ :axis_x1, Vec3.by_value,
556
+ :axis_y1, Vec3.by_value,
557
+ :position2, Vec3.by_value,
558
+ :axis_x2, Vec3.by_value,
559
+ :axis_y2, Vec3.by_value,
560
+ :max_friction, [:float, 6],
561
+ :swing_type, :int,
562
+ :limit_min, [:float, 6],
563
+ :limit_max, [:float, 6],
564
+ :limits_spring_settings, [SpringSettings.by_value, 3],
565
+ :motor_settings, [MotorSettings.by_value, 6]
566
+ end
567
+
568
+ class SliderConstraintSettings < FFI::Struct
569
+ layout :base, ConstraintSettings.by_value,
570
+ :space, :int,
571
+ :auto_detect_point, :bool,
572
+ :point1, Vec3.by_value,
573
+ :slider_axis1, Vec3.by_value,
574
+ :normal_axis1, Vec3.by_value,
575
+ :point2, Vec3.by_value,
576
+ :slider_axis2, Vec3.by_value,
577
+ :normal_axis2, Vec3.by_value,
578
+ :limits_min, :float,
579
+ :limits_max, :float,
580
+ :limits_spring_settings, SpringSettings.by_value,
581
+ :max_friction_force, :float,
582
+ :motor_settings, MotorSettings.by_value
583
+ end
584
+
585
+ class SwingTwistConstraintSettings < FFI::Struct
586
+ layout :base, ConstraintSettings.by_value,
587
+ :space, :int,
588
+ :position1, Vec3.by_value,
589
+ :twist_axis1, Vec3.by_value,
590
+ :plane_axis1, Vec3.by_value,
591
+ :position2, Vec3.by_value,
592
+ :twist_axis2, Vec3.by_value,
593
+ :plane_axis2, Vec3.by_value,
594
+ :swing_type, :int,
595
+ :normal_half_cone_angle, :float,
596
+ :plane_half_cone_angle, :float,
597
+ :twist_min_angle, :float,
598
+ :twist_max_angle, :float,
599
+ :max_friction_torque, :float,
600
+ :swing_motor_settings, MotorSettings.by_value,
601
+ :twist_motor_settings, MotorSettings.by_value
602
+ end
603
+
604
+ class CharacterSettings < FFI::Struct
605
+ layout :base, CharacterBaseSettings.by_value,
606
+ :layer, :uint32,
607
+ :mass, :float,
608
+ :friction, :float,
609
+ :gravity_factor, :float,
610
+ :allowed_do_fs, :int
611
+ end
612
+
613
+ class CharacterVirtualSettings < FFI::Struct
614
+ layout :base, CharacterBaseSettings.by_value,
615
+ :id, :uint32,
616
+ :mass, :float,
617
+ :max_strength, :float,
618
+ :shape_offset, Vec3.by_value,
619
+ :back_face_mode, :int,
620
+ :predictive_contact_distance, :float,
621
+ :max_collision_iterations, :uint32,
622
+ :max_constraint_iterations, :uint32,
623
+ :min_time_remaining, :float,
624
+ :collision_tolerance, :float,
625
+ :character_padding, :float,
626
+ :max_num_hits, :uint32,
627
+ :hit_reduction_cos_max_angle, :float,
628
+ :penetration_recovery_speed, :float,
629
+ :inner_body_shape, :pointer,
630
+ :inner_body_id_override, :uint32,
631
+ :inner_body_layer, :uint32
632
+ end
633
+
634
+ FUNCTIONS = {
635
+ JPH_BodyActivationListener_Create: [[:pointer], :pointer],
636
+ JPH_BodyActivationListener_Destroy: [[:pointer], :void],
637
+ JPH_BodyActivationListener_SetProcs: [[:pointer], :void],
638
+ JPH_BodyCreationSettings_Create: [[], :pointer],
639
+ JPH_BodyCreationSettings_Create2: [[:pointer, :pointer, :pointer, :int, :uint32], :pointer],
640
+ JPH_BodyCreationSettings_Create3: [[:pointer, :pointer, :pointer, :int, :uint32], :pointer],
641
+ JPH_BodyCreationSettings_Destroy: [[:pointer], :void],
642
+ JPH_BodyCreationSettings_GetAllowDynamicOrKinematic: [[:pointer], :bool],
643
+ JPH_BodyCreationSettings_GetAllowSleeping: [[:pointer], :bool],
644
+ JPH_BodyCreationSettings_GetAllowedDOFs: [[:pointer], :int],
645
+ JPH_BodyCreationSettings_GetAngularDamping: [[:pointer], :float],
646
+ JPH_BodyCreationSettings_GetAngularVelocity: [[:pointer, :pointer], :void],
647
+ JPH_BodyCreationSettings_GetApplyGyroscopicForce: [[:pointer], :bool],
648
+ JPH_BodyCreationSettings_GetCollideKinematicVsNonDynamic: [[:pointer], :bool],
649
+ JPH_BodyCreationSettings_GetCollisionGroup: [[:pointer, :pointer], :void],
650
+ JPH_BodyCreationSettings_GetEnhancedInternalEdgeRemoval: [[:pointer], :bool],
651
+ JPH_BodyCreationSettings_GetFriction: [[:pointer], :float],
652
+ JPH_BodyCreationSettings_GetGravityFactor: [[:pointer], :float],
653
+ JPH_BodyCreationSettings_GetInertiaMultiplier: [[:pointer], :float],
654
+ JPH_BodyCreationSettings_GetIsSensor: [[:pointer], :bool],
655
+ JPH_BodyCreationSettings_GetLinearDamping: [[:pointer], :float],
656
+ JPH_BodyCreationSettings_GetLinearVelocity: [[:pointer, :pointer], :void],
657
+ JPH_BodyCreationSettings_GetMassPropertiesOverride: [[:pointer, :pointer], :void],
658
+ JPH_BodyCreationSettings_GetMaxAngularVelocity: [[:pointer], :float],
659
+ JPH_BodyCreationSettings_GetMaxLinearVelocity: [[:pointer], :float],
660
+ JPH_BodyCreationSettings_GetMotionQuality: [[:pointer], :int],
661
+ JPH_BodyCreationSettings_GetMotionType: [[:pointer], :int],
662
+ JPH_BodyCreationSettings_GetNumPositionStepsOverride: [[:pointer], :uint32],
663
+ JPH_BodyCreationSettings_GetNumVelocityStepsOverride: [[:pointer], :uint32],
664
+ JPH_BodyCreationSettings_GetObjectLayer: [[:pointer], :uint32],
665
+ JPH_BodyCreationSettings_GetOverrideMassProperties: [[:pointer], :int],
666
+ JPH_BodyCreationSettings_GetPosition: [[:pointer, :pointer], :void],
667
+ JPH_BodyCreationSettings_GetRestitution: [[:pointer], :float],
668
+ JPH_BodyCreationSettings_GetRotation: [[:pointer, :pointer], :void],
669
+ JPH_BodyCreationSettings_GetUseManifoldReduction: [[:pointer], :bool],
670
+ JPH_BodyCreationSettings_GetUserData: [[:pointer], :uint64],
671
+ JPH_BodyCreationSettings_SetAllowDynamicOrKinematic: [[:pointer, :bool], :void],
672
+ JPH_BodyCreationSettings_SetAllowSleeping: [[:pointer, :bool], :void],
673
+ JPH_BodyCreationSettings_SetAllowedDOFs: [[:pointer, :int], :void],
674
+ JPH_BodyCreationSettings_SetAngularDamping: [[:pointer, :float], :void],
675
+ JPH_BodyCreationSettings_SetAngularVelocity: [[:pointer, :pointer], :void],
676
+ JPH_BodyCreationSettings_SetApplyGyroscopicForce: [[:pointer, :bool], :void],
677
+ JPH_BodyCreationSettings_SetCollideKinematicVsNonDynamic: [[:pointer, :bool], :void],
678
+ JPH_BodyCreationSettings_SetCollisionGroup: [[:pointer, :pointer], :void],
679
+ JPH_BodyCreationSettings_SetEnhancedInternalEdgeRemoval: [[:pointer, :bool], :void],
680
+ JPH_BodyCreationSettings_SetFriction: [[:pointer, :float], :void],
681
+ JPH_BodyCreationSettings_SetGravityFactor: [[:pointer, :float], :void],
682
+ JPH_BodyCreationSettings_SetInertiaMultiplier: [[:pointer, :float], :void],
683
+ JPH_BodyCreationSettings_SetIsSensor: [[:pointer, :bool], :void],
684
+ JPH_BodyCreationSettings_SetLinearDamping: [[:pointer, :float], :void],
685
+ JPH_BodyCreationSettings_SetLinearVelocity: [[:pointer, :pointer], :void],
686
+ JPH_BodyCreationSettings_SetMassPropertiesOverride: [[:pointer, :pointer], :void],
687
+ JPH_BodyCreationSettings_SetMaxAngularVelocity: [[:pointer, :float], :void],
688
+ JPH_BodyCreationSettings_SetMaxLinearVelocity: [[:pointer, :float], :void],
689
+ JPH_BodyCreationSettings_SetMotionQuality: [[:pointer, :int], :void],
690
+ JPH_BodyCreationSettings_SetMotionType: [[:pointer, :int], :void],
691
+ JPH_BodyCreationSettings_SetNumPositionStepsOverride: [[:pointer, :uint32], :void],
692
+ JPH_BodyCreationSettings_SetNumVelocityStepsOverride: [[:pointer, :uint32], :void],
693
+ JPH_BodyCreationSettings_SetObjectLayer: [[:pointer, :uint32], :void],
694
+ JPH_BodyCreationSettings_SetOverrideMassProperties: [[:pointer, :int], :void],
695
+ JPH_BodyCreationSettings_SetPosition: [[:pointer, :pointer], :void],
696
+ JPH_BodyCreationSettings_SetRestitution: [[:pointer, :float], :void],
697
+ JPH_BodyCreationSettings_SetRotation: [[:pointer, :pointer], :void],
698
+ JPH_BodyCreationSettings_SetUseManifoldReduction: [[:pointer, :bool], :void],
699
+ JPH_BodyCreationSettings_SetUserData: [[:pointer, :uint64], :void],
700
+ JPH_BodyDrawFilter_Create: [[:pointer], :pointer],
701
+ JPH_BodyDrawFilter_Destroy: [[:pointer], :void],
702
+ JPH_BodyDrawFilter_SetProcs: [[:pointer], :void],
703
+ JPH_BodyFilter_Create: [[:pointer], :pointer],
704
+ JPH_BodyFilter_Destroy: [[:pointer], :void],
705
+ JPH_BodyFilter_SetProcs: [[:pointer], :void],
706
+ JPH_BodyInterface_ActivateBodies: [[:pointer, :pointer, :uint32], :void],
707
+ JPH_BodyInterface_ActivateBodiesInAABox: [[:pointer, :pointer, :pointer, :pointer], :void],
708
+ JPH_BodyInterface_ActivateBody: [[:pointer, :uint32], :void],
709
+ JPH_BodyInterface_AddAngularImpulse: [[:pointer, :uint32, :pointer], :void],
710
+ JPH_BodyInterface_AddBody: [[:pointer, :uint32, :int], :void],
711
+ JPH_BodyInterface_AddForce: [[:pointer, :uint32, :pointer], :void],
712
+ JPH_BodyInterface_AddForce2: [[:pointer, :uint32, :pointer, :pointer], :void],
713
+ JPH_BodyInterface_AddForceAndTorque: [[:pointer, :uint32, :pointer, :pointer], :void],
714
+ JPH_BodyInterface_AddImpulse: [[:pointer, :uint32, :pointer], :void],
715
+ JPH_BodyInterface_AddImpulse2: [[:pointer, :uint32, :pointer, :pointer], :void],
716
+ JPH_BodyInterface_AddLinearAndAngularVelocity: [[:pointer, :uint32, :pointer, :pointer], :void],
717
+ JPH_BodyInterface_AddLinearVelocity: [[:pointer, :uint32, :pointer], :void],
718
+ JPH_BodyInterface_AddTorque: [[:pointer, :uint32, :pointer], :void],
719
+ JPH_BodyInterface_ApplyBuoyancyImpulse: [[:pointer, :uint32, :pointer, :pointer, :float, :float, :float, :pointer, :pointer, :float], :bool],
720
+ JPH_BodyInterface_AssignBodyID: [[:pointer, :pointer], :bool],
721
+ JPH_BodyInterface_AssignBodyID2: [[:pointer, :pointer, :uint32], :bool],
722
+ JPH_BodyInterface_CreateAndAddBody: [[:pointer, :pointer, :int], :uint32],
723
+ JPH_BodyInterface_CreateAndAddSoftBody: [[:pointer, :pointer, :int], :uint32],
724
+ JPH_BodyInterface_CreateBody: [[:pointer, :pointer], :pointer],
725
+ JPH_BodyInterface_CreateBodyWithID: [[:pointer, :uint32, :pointer], :pointer],
726
+ JPH_BodyInterface_CreateBodyWithoutID: [[:pointer, :pointer], :pointer],
727
+ JPH_BodyInterface_CreateSoftBody: [[:pointer, :pointer], :pointer],
728
+ JPH_BodyInterface_CreateSoftBodyWithID: [[:pointer, :uint32, :pointer], :pointer],
729
+ JPH_BodyInterface_CreateSoftBodyWithoutID: [[:pointer, :pointer], :pointer],
730
+ JPH_BodyInterface_DeactivateBodies: [[:pointer, :pointer, :uint32], :void],
731
+ JPH_BodyInterface_DeactivateBody: [[:pointer, :uint32], :void],
732
+ JPH_BodyInterface_DestroyBody: [[:pointer, :uint32], :void],
733
+ JPH_BodyInterface_DestroyBodyWithoutID: [[:pointer, :pointer], :void],
734
+ JPH_BodyInterface_GetAngularVelocity: [[:pointer, :uint32, :pointer], :void],
735
+ JPH_BodyInterface_GetBodyType: [[:pointer, :uint32], :int],
736
+ JPH_BodyInterface_GetCenterOfMassPosition: [[:pointer, :uint32, :pointer], :void],
737
+ JPH_BodyInterface_GetCenterOfMassTransform: [[:pointer, :uint32, :pointer], :void],
738
+ JPH_BodyInterface_GetCollisionGroup: [[:pointer, :uint32, :pointer], :void],
739
+ JPH_BodyInterface_GetFriction: [[:pointer, :uint32], :float],
740
+ JPH_BodyInterface_GetGravityFactor: [[:pointer, :uint32], :float],
741
+ JPH_BodyInterface_GetInverseInertia: [[:pointer, :uint32, :pointer], :void],
742
+ JPH_BodyInterface_GetLinearAndAngularVelocity: [[:pointer, :uint32, :pointer, :pointer], :void],
743
+ JPH_BodyInterface_GetLinearVelocity: [[:pointer, :uint32, :pointer], :void],
744
+ JPH_BodyInterface_GetMaterial: [[:pointer, :uint32, :uint32], :pointer],
745
+ JPH_BodyInterface_GetMotionQuality: [[:pointer, :uint32], :int],
746
+ JPH_BodyInterface_GetMotionType: [[:pointer, :uint32], :int],
747
+ JPH_BodyInterface_GetObjectLayer: [[:pointer, :uint32], :uint32],
748
+ JPH_BodyInterface_GetPointVelocity: [[:pointer, :uint32, :pointer, :pointer], :void],
749
+ JPH_BodyInterface_GetPosition: [[:pointer, :uint32, :pointer], :void],
750
+ JPH_BodyInterface_GetPositionAndRotation: [[:pointer, :uint32, :pointer, :pointer], :void],
751
+ JPH_BodyInterface_GetRestitution: [[:pointer, :uint32], :float],
752
+ JPH_BodyInterface_GetRotation: [[:pointer, :uint32, :pointer], :void],
753
+ JPH_BodyInterface_GetShape: [[:pointer, :uint32], :pointer],
754
+ JPH_BodyInterface_GetUseManifoldReduction: [[:pointer, :uint32], :bool],
755
+ JPH_BodyInterface_GetUserData: [[:pointer, :uint32], :uint64],
756
+ JPH_BodyInterface_GetWorldTransform: [[:pointer, :uint32, :pointer], :void],
757
+ JPH_BodyInterface_InvalidateContactCache: [[:pointer, :uint32], :void],
758
+ JPH_BodyInterface_IsActive: [[:pointer, :uint32], :bool],
759
+ JPH_BodyInterface_IsAdded: [[:pointer, :uint32], :bool],
760
+ JPH_BodyInterface_IsSensor: [[:pointer, :uint32], :bool],
761
+ JPH_BodyInterface_MoveKinematic: [[:pointer, :uint32, :pointer, :pointer, :float], :void],
762
+ JPH_BodyInterface_NotifyShapeChanged: [[:pointer, :uint32, :pointer, :bool, :int], :void],
763
+ JPH_BodyInterface_RemoveAndDestroyBody: [[:pointer, :uint32], :void],
764
+ JPH_BodyInterface_RemoveBody: [[:pointer, :uint32], :void],
765
+ JPH_BodyInterface_ResetSleepTimer: [[:pointer, :uint32], :void],
766
+ JPH_BodyInterface_SetAngularVelocity: [[:pointer, :uint32, :pointer], :void],
767
+ JPH_BodyInterface_SetCollisionGroup: [[:pointer, :uint32, :pointer], :void],
768
+ JPH_BodyInterface_SetFriction: [[:pointer, :uint32, :float], :void],
769
+ JPH_BodyInterface_SetGravityFactor: [[:pointer, :uint32, :float], :void],
770
+ JPH_BodyInterface_SetIsSensor: [[:pointer, :uint32, :bool], :void],
771
+ JPH_BodyInterface_SetLinearAndAngularVelocity: [[:pointer, :uint32, :pointer, :pointer], :void],
772
+ JPH_BodyInterface_SetLinearVelocity: [[:pointer, :uint32, :pointer], :void],
773
+ JPH_BodyInterface_SetMotionQuality: [[:pointer, :uint32, :int], :void],
774
+ JPH_BodyInterface_SetMotionType: [[:pointer, :uint32, :int, :int], :void],
775
+ JPH_BodyInterface_SetObjectLayer: [[:pointer, :uint32, :uint32], :void],
776
+ JPH_BodyInterface_SetPosition: [[:pointer, :uint32, :pointer, :int], :void],
777
+ JPH_BodyInterface_SetPositionAndRotation: [[:pointer, :uint32, :pointer, :pointer, :int], :void],
778
+ JPH_BodyInterface_SetPositionAndRotationWhenChanged: [[:pointer, :uint32, :pointer, :pointer, :int], :void],
779
+ JPH_BodyInterface_SetPositionRotationAndVelocity: [[:pointer, :uint32, :pointer, :pointer, :pointer, :pointer], :void],
780
+ JPH_BodyInterface_SetRestitution: [[:pointer, :uint32, :float], :void],
781
+ JPH_BodyInterface_SetRotation: [[:pointer, :uint32, :pointer, :int], :void],
782
+ JPH_BodyInterface_SetShape: [[:pointer, :uint32, :pointer, :bool, :int], :void],
783
+ JPH_BodyInterface_SetUseManifoldReduction: [[:pointer, :uint32, :bool], :void],
784
+ JPH_BodyInterface_SetUserData: [[:pointer, :uint32, :uint64], :void],
785
+ JPH_BodyInterface_UnassignBodyID: [[:pointer, :uint32], :pointer],
786
+ JPH_BodyLockInterface_LockMultiRead: [[:pointer, :pointer, :uint32], :pointer],
787
+ JPH_BodyLockInterface_LockMultiWrite: [[:pointer, :pointer, :uint32], :pointer],
788
+ JPH_BodyLockInterface_LockRead: [[:pointer, :uint32, :pointer], :void],
789
+ JPH_BodyLockInterface_LockWrite: [[:pointer, :uint32, :pointer], :void],
790
+ JPH_BodyLockInterface_UnlockRead: [[:pointer, :pointer], :void],
791
+ JPH_BodyLockInterface_UnlockWrite: [[:pointer, :pointer], :void],
792
+ JPH_BodyLockMultiRead_Destroy: [[:pointer], :void],
793
+ JPH_BodyLockMultiRead_GetBody: [[:pointer, :uint32], :pointer],
794
+ JPH_BodyLockMultiWrite_Destroy: [[:pointer], :void],
795
+ JPH_BodyLockMultiWrite_GetBody: [[:pointer, :uint32], :pointer],
796
+ JPH_Body_AddAngularImpulse: [[:pointer, :pointer], :void],
797
+ JPH_Body_AddForce: [[:pointer, :pointer], :void],
798
+ JPH_Body_AddForceAtPosition: [[:pointer, :pointer, :pointer], :void],
799
+ JPH_Body_AddImpulse: [[:pointer, :pointer], :void],
800
+ JPH_Body_AddImpulseAtPosition: [[:pointer, :pointer, :pointer], :void],
801
+ JPH_Body_AddTorque: [[:pointer, :pointer], :void],
802
+ JPH_Body_ApplyBuoyancyImpulse: [[:pointer, :pointer, :pointer, :float, :float, :float, :pointer, :pointer, :float], :bool],
803
+ JPH_Body_CanBeKinematicOrDynamic: [[:pointer], :bool],
804
+ JPH_Body_GetAccumulatedForce: [[:pointer, :pointer], :void],
805
+ JPH_Body_GetAccumulatedTorque: [[:pointer, :pointer], :void],
806
+ JPH_Body_GetAllowSleeping: [[:pointer], :bool],
807
+ JPH_Body_GetAngularVelocity: [[:pointer, :pointer], :void],
808
+ JPH_Body_GetApplyGyroscopicForce: [[:pointer], :bool],
809
+ JPH_Body_GetBodyType: [[:pointer], :int],
810
+ JPH_Body_GetBroadPhaseLayer: [[:pointer], :uint8],
811
+ JPH_Body_GetCenterOfMassPosition: [[:pointer, :pointer], :void],
812
+ JPH_Body_GetCenterOfMassTransform: [[:pointer, :pointer], :void],
813
+ JPH_Body_GetCollideKinematicVsNonDynamic: [[:pointer], :bool],
814
+ JPH_Body_GetCollisionGroup: [[:pointer, :pointer], :void],
815
+ JPH_Body_GetEnhancedInternalEdgeRemoval: [[:pointer], :bool],
816
+ JPH_Body_GetEnhancedInternalEdgeRemovalWithBody: [[:pointer, :pointer], :bool],
817
+ JPH_Body_GetFixedToWorldBody: [[], :pointer],
818
+ JPH_Body_GetFriction: [[:pointer], :float],
819
+ JPH_Body_GetID: [[:pointer], :uint32],
820
+ JPH_Body_GetInverseCenterOfMassTransform: [[:pointer, :pointer], :void],
821
+ JPH_Body_GetInverseInertia: [[:pointer, :pointer], :void],
822
+ JPH_Body_GetLinearVelocity: [[:pointer, :pointer], :void],
823
+ JPH_Body_GetMotionProperties: [[:pointer], :pointer],
824
+ JPH_Body_GetMotionPropertiesUnchecked: [[:pointer], :pointer],
825
+ JPH_Body_GetMotionType: [[:pointer], :int],
826
+ JPH_Body_GetObjectLayer: [[:pointer], :uint32],
827
+ JPH_Body_GetPointVelocity: [[:pointer, :pointer, :pointer], :void],
828
+ JPH_Body_GetPointVelocityCOM: [[:pointer, :pointer, :pointer], :void],
829
+ JPH_Body_GetPosition: [[:pointer, :pointer], :void],
830
+ JPH_Body_GetRestitution: [[:pointer], :float],
831
+ JPH_Body_GetRotation: [[:pointer, :pointer], :void],
832
+ JPH_Body_GetShape: [[:pointer], :pointer],
833
+ JPH_Body_GetSoftBodyVertexCount: [[:pointer], :uint32],
834
+ JPH_Body_GetSoftBodyVertexPosition: [[:pointer, :uint32, :pointer], :void],
835
+ JPH_Body_GetSoftBodyVertexPositions: [[:pointer, :pointer, :uint32, :pointer], :void],
836
+ JPH_Body_GetUseManifoldReduction: [[:pointer], :bool],
837
+ JPH_Body_GetUseManifoldReductionWithBody: [[:pointer, :pointer], :bool],
838
+ JPH_Body_GetUserData: [[:pointer], :uint64],
839
+ JPH_Body_GetWorldSpaceBounds: [[:pointer, :pointer], :void],
840
+ JPH_Body_GetWorldSpaceSurfaceNormal: [[:pointer, :uint32, :pointer, :pointer], :void],
841
+ JPH_Body_GetWorldTransform: [[:pointer, :pointer], :void],
842
+ JPH_Body_IsActive: [[:pointer], :bool],
843
+ JPH_Body_IsCollisionCacheInvalid: [[:pointer], :bool],
844
+ JPH_Body_IsDynamic: [[:pointer], :bool],
845
+ JPH_Body_IsInBroadPhase: [[:pointer], :bool],
846
+ JPH_Body_IsKinematic: [[:pointer], :bool],
847
+ JPH_Body_IsRigidBody: [[:pointer], :bool],
848
+ JPH_Body_IsSensor: [[:pointer], :bool],
849
+ JPH_Body_IsSoftBody: [[:pointer], :bool],
850
+ JPH_Body_IsStatic: [[:pointer], :bool],
851
+ JPH_Body_MoveKinematic: [[:pointer, :pointer, :pointer, :float], :void],
852
+ JPH_Body_ResetForce: [[:pointer], :void],
853
+ JPH_Body_ResetMotion: [[:pointer], :void],
854
+ JPH_Body_ResetSleepTimer: [[:pointer], :void],
855
+ JPH_Body_ResetTorque: [[:pointer], :void],
856
+ JPH_Body_SetAllowSleeping: [[:pointer, :bool], :void],
857
+ JPH_Body_SetAngularVelocity: [[:pointer, :pointer], :void],
858
+ JPH_Body_SetAngularVelocityClamped: [[:pointer, :pointer], :void],
859
+ JPH_Body_SetApplyGyroscopicForce: [[:pointer, :bool], :void],
860
+ JPH_Body_SetCollideKinematicVsNonDynamic: [[:pointer, :bool], :void],
861
+ JPH_Body_SetCollisionGroup: [[:pointer, :pointer], :void],
862
+ JPH_Body_SetEnhancedInternalEdgeRemoval: [[:pointer, :bool], :void],
863
+ JPH_Body_SetFriction: [[:pointer, :float], :void],
864
+ JPH_Body_SetIsSensor: [[:pointer, :bool], :void],
865
+ JPH_Body_SetLinearVelocity: [[:pointer, :pointer], :void],
866
+ JPH_Body_SetLinearVelocityClamped: [[:pointer, :pointer], :void],
867
+ JPH_Body_SetMotionType: [[:pointer, :int], :void],
868
+ JPH_Body_SetRestitution: [[:pointer, :float], :void],
869
+ JPH_Body_SetUseManifoldReduction: [[:pointer, :bool], :void],
870
+ JPH_Body_SetUserData: [[:pointer, :uint64], :void],
871
+ JPH_BoxShapeSettings_Create: [[:pointer, :float], :pointer],
872
+ JPH_BoxShapeSettings_CreateShape: [[:pointer], :pointer],
873
+ JPH_BoxShape_Create: [[:pointer, :float], :pointer],
874
+ JPH_BoxShape_GetConvexRadius: [[:pointer], :float],
875
+ JPH_BoxShape_GetHalfExtent: [[:pointer, :pointer], :void],
876
+ JPH_BroadPhaseLayerFilter_Create: [[:pointer], :pointer],
877
+ JPH_BroadPhaseLayerFilter_Destroy: [[:pointer], :void],
878
+ JPH_BroadPhaseLayerFilter_SetProcs: [[:pointer], :void],
879
+ JPH_BroadPhaseLayerInterfaceMask_ConfigureLayer: [[:pointer, :uint8, :uint32, :uint32], :void],
880
+ JPH_BroadPhaseLayerInterfaceMask_Create: [[:uint32], :pointer],
881
+ JPH_BroadPhaseLayerInterfaceTable_Create: [[:uint32, :uint32], :pointer],
882
+ JPH_BroadPhaseLayerInterfaceTable_MapObjectToBroadPhaseLayer: [[:pointer, :uint32, :uint8], :void],
883
+ JPH_BroadPhaseLayerInterface_Destroy: [[:pointer], :void],
884
+ JPH_BroadPhaseQuery_CastRay: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
885
+ JPH_BroadPhaseQuery_CastRay2: [[:pointer, :pointer, :pointer, :int, :pointer, :pointer, :pointer, :pointer], :bool],
886
+ JPH_BroadPhaseQuery_CollideAABox: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
887
+ JPH_BroadPhaseQuery_CollidePoint: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
888
+ JPH_BroadPhaseQuery_CollideSphere: [[:pointer, :pointer, :float, :pointer, :pointer, :pointer, :pointer], :bool],
889
+ JPH_CapsuleShapeSettings_Create: [[:float, :float], :pointer],
890
+ JPH_CapsuleShapeSettings_CreateShape: [[:pointer], :pointer],
891
+ JPH_CapsuleShape_Create: [[:float, :float], :pointer],
892
+ JPH_CapsuleShape_GetHalfHeightOfCylinder: [[:pointer], :float],
893
+ JPH_CapsuleShape_GetRadius: [[:pointer], :float],
894
+ JPH_CharacterBase_Destroy: [[:pointer], :void],
895
+ JPH_CharacterBase_GetCosMaxSlopeAngle: [[:pointer], :float],
896
+ JPH_CharacterBase_GetGroundBodyId: [[:pointer], :uint32],
897
+ JPH_CharacterBase_GetGroundMaterial: [[:pointer], :pointer],
898
+ JPH_CharacterBase_GetGroundNormal: [[:pointer, :pointer], :void],
899
+ JPH_CharacterBase_GetGroundPosition: [[:pointer, :pointer], :void],
900
+ JPH_CharacterBase_GetGroundState: [[:pointer], :int],
901
+ JPH_CharacterBase_GetGroundSubShapeId: [[:pointer], :uint32],
902
+ JPH_CharacterBase_GetGroundUserData: [[:pointer], :uint64],
903
+ JPH_CharacterBase_GetGroundVelocity: [[:pointer, :pointer], :void],
904
+ JPH_CharacterBase_GetShape: [[:pointer], :pointer],
905
+ JPH_CharacterBase_GetUp: [[:pointer, :pointer], :void],
906
+ JPH_CharacterBase_IsSlopeTooSteep: [[:pointer, :pointer], :bool],
907
+ JPH_CharacterBase_IsSupported: [[:pointer], :bool],
908
+ JPH_CharacterBase_SetMaxSlopeAngle: [[:pointer, :float], :void],
909
+ JPH_CharacterBase_SetUp: [[:pointer, :pointer], :void],
910
+ JPH_CharacterContactListener_Create: [[:pointer], :pointer],
911
+ JPH_CharacterContactListener_Destroy: [[:pointer], :void],
912
+ JPH_CharacterContactListener_SetProcs: [[:pointer], :void],
913
+ JPH_CharacterSettings_Init: [[:pointer], :void],
914
+ JPH_CharacterVirtualSettings_Init: [[:pointer], :void],
915
+ JPH_CharacterVirtual_CanWalkStairs: [[:pointer, :pointer], :bool],
916
+ JPH_CharacterVirtual_CancelVelocityTowardsSteepSlopes: [[:pointer, :pointer, :pointer], :void],
917
+ JPH_CharacterVirtual_Create: [[:pointer, :pointer, :pointer, :uint64, :pointer], :pointer],
918
+ JPH_CharacterVirtual_ExtendedUpdate: [[:pointer, :float, :pointer, :uint32, :pointer, :pointer, :pointer], :void],
919
+ JPH_CharacterVirtual_FinishTrackingContactChanges: [[:pointer], :void],
920
+ JPH_CharacterVirtual_GetActiveContact: [[:pointer, :uint32, :pointer], :void],
921
+ JPH_CharacterVirtual_GetCenterOfMassTransform: [[:pointer, :pointer], :void],
922
+ JPH_CharacterVirtual_GetCharacterPadding: [[:pointer], :float],
923
+ JPH_CharacterVirtual_GetEnhancedInternalEdgeRemoval: [[:pointer], :bool],
924
+ JPH_CharacterVirtual_GetHitReductionCosMaxAngle: [[:pointer], :float],
925
+ JPH_CharacterVirtual_GetID: [[:pointer], :uint32],
926
+ JPH_CharacterVirtual_GetInnerBodyID: [[:pointer], :uint32],
927
+ JPH_CharacterVirtual_GetLinearVelocity: [[:pointer, :pointer], :void],
928
+ JPH_CharacterVirtual_GetMass: [[:pointer], :float],
929
+ JPH_CharacterVirtual_GetMaxHitsExceeded: [[:pointer], :bool],
930
+ JPH_CharacterVirtual_GetMaxNumHits: [[:pointer], :uint32],
931
+ JPH_CharacterVirtual_GetMaxStrength: [[:pointer], :float],
932
+ JPH_CharacterVirtual_GetNumActiveContacts: [[:pointer], :uint32],
933
+ JPH_CharacterVirtual_GetPenetrationRecoverySpeed: [[:pointer], :float],
934
+ JPH_CharacterVirtual_GetPosition: [[:pointer, :pointer], :void],
935
+ JPH_CharacterVirtual_GetRotation: [[:pointer, :pointer], :void],
936
+ JPH_CharacterVirtual_GetShapeOffset: [[:pointer, :pointer], :void],
937
+ JPH_CharacterVirtual_GetUserData: [[:pointer], :uint64],
938
+ JPH_CharacterVirtual_GetWorldTransform: [[:pointer, :pointer], :void],
939
+ JPH_CharacterVirtual_HasCollidedWith: [[:pointer, :uint32], :bool],
940
+ JPH_CharacterVirtual_HasCollidedWithBody: [[:pointer, :uint32], :bool],
941
+ JPH_CharacterVirtual_HasCollidedWithCharacter: [[:pointer, :pointer], :bool],
942
+ JPH_CharacterVirtual_RefreshContacts: [[:pointer, :uint32, :pointer, :pointer, :pointer], :void],
943
+ JPH_CharacterVirtual_SetCharacterVsCharacterCollision: [[:pointer, :pointer], :void],
944
+ JPH_CharacterVirtual_SetEnhancedInternalEdgeRemoval: [[:pointer, :bool], :void],
945
+ JPH_CharacterVirtual_SetHitReductionCosMaxAngle: [[:pointer, :float], :void],
946
+ JPH_CharacterVirtual_SetInnerBodyShape: [[:pointer, :pointer], :void],
947
+ JPH_CharacterVirtual_SetLinearVelocity: [[:pointer, :pointer], :void],
948
+ JPH_CharacterVirtual_SetListener: [[:pointer, :pointer], :void],
949
+ JPH_CharacterVirtual_SetMass: [[:pointer, :float], :void],
950
+ JPH_CharacterVirtual_SetMaxNumHits: [[:pointer, :uint32], :void],
951
+ JPH_CharacterVirtual_SetMaxStrength: [[:pointer, :float], :void],
952
+ JPH_CharacterVirtual_SetPenetrationRecoverySpeed: [[:pointer, :float], :void],
953
+ JPH_CharacterVirtual_SetPosition: [[:pointer, :pointer], :void],
954
+ JPH_CharacterVirtual_SetRotation: [[:pointer, :pointer], :void],
955
+ JPH_CharacterVirtual_SetShape: [[:pointer, :pointer, :float, :uint32, :pointer, :pointer, :pointer], :bool],
956
+ JPH_CharacterVirtual_SetShapeOffset: [[:pointer, :pointer], :void],
957
+ JPH_CharacterVirtual_SetUserData: [[:pointer, :uint64], :void],
958
+ JPH_CharacterVirtual_StartTrackingContactChanges: [[:pointer], :void],
959
+ JPH_CharacterVirtual_StickToFloor: [[:pointer, :pointer, :uint32, :pointer, :pointer, :pointer], :bool],
960
+ JPH_CharacterVirtual_Update: [[:pointer, :float, :uint32, :pointer, :pointer, :pointer], :void],
961
+ JPH_CharacterVirtual_UpdateGroundVelocity: [[:pointer], :void],
962
+ JPH_CharacterVirtual_WalkStairs: [[:pointer, :float, :pointer, :pointer, :pointer, :pointer, :uint32, :pointer, :pointer, :pointer], :bool],
963
+ JPH_CharacterVsCharacterCollisionSimple_AddCharacter: [[:pointer, :pointer], :void],
964
+ JPH_CharacterVsCharacterCollisionSimple_RemoveCharacter: [[:pointer, :pointer], :void],
965
+ JPH_CharacterVsCharacterCollision_Create: [[:pointer], :pointer],
966
+ JPH_CharacterVsCharacterCollision_CreateSimple: [[], :pointer],
967
+ JPH_CharacterVsCharacterCollision_Destroy: [[:pointer], :void],
968
+ JPH_CharacterVsCharacterCollision_SetProcs: [[:pointer], :void],
969
+ JPH_Character_Activate: [[:pointer, :bool], :void],
970
+ JPH_Character_AddImpulse: [[:pointer, :pointer, :bool], :void],
971
+ JPH_Character_AddLinearVelocity: [[:pointer, :pointer, :bool], :void],
972
+ JPH_Character_AddToPhysicsSystem: [[:pointer, :int, :bool], :void],
973
+ JPH_Character_Create: [[:pointer, :pointer, :pointer, :uint64, :pointer], :pointer],
974
+ JPH_Character_GetBodyID: [[:pointer], :uint32],
975
+ JPH_Character_GetCenterOfMassPosition: [[:pointer, :pointer, :bool], :void],
976
+ JPH_Character_GetLayer: [[:pointer], :uint32],
977
+ JPH_Character_GetLinearVelocity: [[:pointer, :pointer], :void],
978
+ JPH_Character_GetPosition: [[:pointer, :pointer, :bool], :void],
979
+ JPH_Character_GetPositionAndRotation: [[:pointer, :pointer, :pointer, :bool], :void],
980
+ JPH_Character_GetRotation: [[:pointer, :pointer, :bool], :void],
981
+ JPH_Character_GetWorldTransform: [[:pointer, :pointer, :bool], :void],
982
+ JPH_Character_PostSimulation: [[:pointer, :float, :bool], :void],
983
+ JPH_Character_RemoveFromPhysicsSystem: [[:pointer, :bool], :void],
984
+ JPH_Character_SetLayer: [[:pointer, :uint32, :bool], :void],
985
+ JPH_Character_SetLinearAndAngularVelocity: [[:pointer, :pointer, :pointer, :bool], :void],
986
+ JPH_Character_SetLinearVelocity: [[:pointer, :pointer, :bool], :void],
987
+ JPH_Character_SetPosition: [[:pointer, :pointer, :int, :bool], :void],
988
+ JPH_Character_SetPositionAndRotation: [[:pointer, :pointer, :pointer, :int, :bool], :void],
989
+ JPH_Character_SetRotation: [[:pointer, :pointer, :int, :bool], :void],
990
+ JPH_Character_SetShape: [[:pointer, :pointer, :float, :bool], :void],
991
+ JPH_CollideShapeResult_FreeMembers: [[:pointer], :void],
992
+ JPH_CollideShapeSettings_Init: [[:pointer], :void],
993
+ JPH_CollisionDispatch_CastShapeVsShapeLocalSpace: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
994
+ JPH_CollisionDispatch_CastShapeVsShapeWorldSpace: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
995
+ JPH_CollisionDispatch_CollideShapeVsShape: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
996
+ JPH_CollisionEstimationResult_FreeMembers: [[:pointer], :void],
997
+ JPH_CompoundShapeSettings_AddShape: [[:pointer, :pointer, :pointer, :pointer, :uint32], :void],
998
+ JPH_CompoundShapeSettings_AddShape2: [[:pointer, :pointer, :pointer, :pointer, :uint32], :void],
999
+ JPH_CompoundShape_GetNumSubShapes: [[:pointer], :uint32],
1000
+ JPH_CompoundShape_GetSubShape: [[:pointer, :uint32, :pointer, :pointer, :pointer, :pointer], :void],
1001
+ JPH_CompoundShape_GetSubShapeIndexFromID: [[:pointer, :uint32, :pointer], :uint32],
1002
+ JPH_ConeConstraintSettings_Init: [[:pointer], :void],
1003
+ JPH_ConeConstraint_Create: [[:pointer, :pointer, :pointer], :pointer],
1004
+ JPH_ConeConstraint_GetCosHalfConeAngle: [[:pointer], :float],
1005
+ JPH_ConeConstraint_GetSettings: [[:pointer, :pointer], :void],
1006
+ JPH_ConeConstraint_GetTotalLambdaPosition: [[:pointer, :pointer], :void],
1007
+ JPH_ConeConstraint_GetTotalLambdaRotation: [[:pointer], :float],
1008
+ JPH_ConeConstraint_SetHalfConeAngle: [[:pointer, :float], :void],
1009
+ JPH_Constraint_Destroy: [[:pointer], :void],
1010
+ JPH_Constraint_GetConstraintPriority: [[:pointer], :uint32],
1011
+ JPH_Constraint_GetEnabled: [[:pointer], :bool],
1012
+ JPH_Constraint_GetNumPositionStepsOverride: [[:pointer], :uint32],
1013
+ JPH_Constraint_GetNumVelocityStepsOverride: [[:pointer], :uint32],
1014
+ JPH_Constraint_GetSubType: [[:pointer], :int],
1015
+ JPH_Constraint_GetType: [[:pointer], :int],
1016
+ JPH_Constraint_GetUserData: [[:pointer], :uint64],
1017
+ JPH_Constraint_IsActive: [[:pointer], :bool],
1018
+ JPH_Constraint_NotifyShapeChanged: [[:pointer, :uint32, :pointer], :void],
1019
+ JPH_Constraint_ResetWarmStart: [[:pointer], :void],
1020
+ JPH_Constraint_SetConstraintPriority: [[:pointer, :uint32], :void],
1021
+ JPH_Constraint_SetEnabled: [[:pointer, :bool], :void],
1022
+ JPH_Constraint_SetNumPositionStepsOverride: [[:pointer, :uint32], :void],
1023
+ JPH_Constraint_SetNumVelocityStepsOverride: [[:pointer, :uint32], :void],
1024
+ JPH_Constraint_SetUserData: [[:pointer, :uint64], :void],
1025
+ JPH_Constraint_SetupVelocityConstraint: [[:pointer, :float], :void],
1026
+ JPH_Constraint_SolvePositionConstraint: [[:pointer, :float, :float], :bool],
1027
+ JPH_Constraint_SolveVelocityConstraint: [[:pointer, :float], :bool],
1028
+ JPH_Constraint_WarmStartVelocityConstraint: [[:pointer, :float], :void],
1029
+ JPH_ContactListener_Create: [[:pointer], :pointer],
1030
+ JPH_ContactListener_Destroy: [[:pointer], :void],
1031
+ JPH_ContactListener_SetProcs: [[:pointer], :void],
1032
+ JPH_ContactManifold_GetPenetrationDepth: [[:pointer], :float],
1033
+ JPH_ContactManifold_GetPointCount: [[:pointer], :uint32],
1034
+ JPH_ContactManifold_GetSubShapeID1: [[:pointer], :uint32],
1035
+ JPH_ContactManifold_GetSubShapeID2: [[:pointer], :uint32],
1036
+ JPH_ContactManifold_GetWorldSpaceContactPointOn1: [[:pointer, :uint32, :pointer], :void],
1037
+ JPH_ContactManifold_GetWorldSpaceContactPointOn2: [[:pointer, :uint32, :pointer], :void],
1038
+ JPH_ContactManifold_GetWorldSpaceNormal: [[:pointer, :pointer], :void],
1039
+ JPH_ConvexHullShapeSettings_Create: [[:pointer, :uint32, :float], :pointer],
1040
+ JPH_ConvexHullShapeSettings_CreateShape: [[:pointer], :pointer],
1041
+ JPH_ConvexHullShape_GetFaceVertices: [[:pointer, :uint32, :uint32, :pointer], :uint32],
1042
+ JPH_ConvexHullShape_GetNumFaces: [[:pointer], :uint32],
1043
+ JPH_ConvexHullShape_GetNumPoints: [[:pointer], :uint32],
1044
+ JPH_ConvexHullShape_GetNumVerticesInFace: [[:pointer, :uint32], :uint32],
1045
+ JPH_ConvexHullShape_GetPoint: [[:pointer, :uint32, :pointer], :void],
1046
+ JPH_ConvexShapeSettings_GetDensity: [[:pointer], :float],
1047
+ JPH_ConvexShapeSettings_SetDensity: [[:pointer, :float], :void],
1048
+ JPH_ConvexShape_GetDensity: [[:pointer], :float],
1049
+ JPH_ConvexShape_SetDensity: [[:pointer, :float], :void],
1050
+ JPH_CylinderShapeSettings_Create: [[:float, :float, :float], :pointer],
1051
+ JPH_CylinderShapeSettings_CreateShape: [[:pointer], :pointer],
1052
+ JPH_CylinderShape_Create: [[:float, :float], :pointer],
1053
+ JPH_CylinderShape_GetHalfHeight: [[:pointer], :float],
1054
+ JPH_CylinderShape_GetRadius: [[:pointer], :float],
1055
+ JPH_DebugRenderer_Create: [[:pointer], :pointer],
1056
+ JPH_DebugRenderer_Destroy: [[:pointer], :void],
1057
+ JPH_DebugRenderer_DrawArrow: [[:pointer, :pointer, :pointer, :uint32, :float], :void],
1058
+ JPH_DebugRenderer_DrawBox: [[:pointer, :pointer, :uint32, :int, :int], :void],
1059
+ JPH_DebugRenderer_DrawBox2: [[:pointer, :pointer, :pointer, :uint32, :int, :int], :void],
1060
+ JPH_DebugRenderer_DrawCapsule: [[:pointer, :pointer, :float, :float, :uint32, :int, :int], :void],
1061
+ JPH_DebugRenderer_DrawCoordinateSystem: [[:pointer, :pointer, :float], :void],
1062
+ JPH_DebugRenderer_DrawCylinder: [[:pointer, :pointer, :float, :float, :uint32, :int, :int], :void],
1063
+ JPH_DebugRenderer_DrawLine: [[:pointer, :pointer, :pointer, :uint32], :void],
1064
+ JPH_DebugRenderer_DrawMarker: [[:pointer, :pointer, :uint32, :float], :void],
1065
+ JPH_DebugRenderer_DrawOpenCone: [[:pointer, :pointer, :pointer, :pointer, :float, :float, :uint32, :int, :int], :void],
1066
+ JPH_DebugRenderer_DrawPie: [[:pointer, :pointer, :float, :pointer, :pointer, :float, :float, :uint32, :int, :int], :void],
1067
+ JPH_DebugRenderer_DrawPlane: [[:pointer, :pointer, :pointer, :uint32, :float], :void],
1068
+ JPH_DebugRenderer_DrawSphere: [[:pointer, :pointer, :float, :uint32, :int, :int], :void],
1069
+ JPH_DebugRenderer_DrawSwingConeLimits: [[:pointer, :pointer, :float, :float, :float, :uint32, :int, :int], :void],
1070
+ JPH_DebugRenderer_DrawSwingPyramidLimits: [[:pointer, :pointer, :float, :float, :float, :float, :float, :uint32, :int, :int], :void],
1071
+ JPH_DebugRenderer_DrawTaperedCylinder: [[:pointer, :pointer, :float, :float, :float, :float, :uint32, :int, :int], :void],
1072
+ JPH_DebugRenderer_DrawTriangle: [[:pointer, :pointer, :pointer, :pointer, :uint32, :int], :void],
1073
+ JPH_DebugRenderer_DrawUnitSphere: [[:pointer, Mat4.by_value, :uint32, :int, :int], :void],
1074
+ JPH_DebugRenderer_DrawWireBox: [[:pointer, :pointer, :uint32], :void],
1075
+ JPH_DebugRenderer_DrawWireBox2: [[:pointer, :pointer, :pointer, :uint32], :void],
1076
+ JPH_DebugRenderer_DrawWireSphere: [[:pointer, :pointer, :float, :uint32, :int32], :void],
1077
+ JPH_DebugRenderer_DrawWireTriangle: [[:pointer, :pointer, :pointer, :pointer, :uint32], :void],
1078
+ JPH_DebugRenderer_DrawWireUnitSphere: [[:pointer, :pointer, :uint32, :int32], :void],
1079
+ JPH_DebugRenderer_NextFrame: [[:pointer], :void],
1080
+ JPH_DebugRenderer_SetCameraPos: [[:pointer, :pointer], :void],
1081
+ JPH_DebugRenderer_SetProcs: [[:pointer], :void],
1082
+ JPH_DecoratedShape_GetInnerShape: [[:pointer], :pointer],
1083
+ JPH_DistanceConstraintSettings_Init: [[:pointer], :void],
1084
+ JPH_DistanceConstraint_Create: [[:pointer, :pointer, :pointer], :pointer],
1085
+ JPH_DistanceConstraint_GetLimitsSpringSettings: [[:pointer, :pointer], :void],
1086
+ JPH_DistanceConstraint_GetMaxDistance: [[:pointer], :float],
1087
+ JPH_DistanceConstraint_GetMinDistance: [[:pointer], :float],
1088
+ JPH_DistanceConstraint_GetSettings: [[:pointer, :pointer], :void],
1089
+ JPH_DistanceConstraint_GetTotalLambdaPosition: [[:pointer], :float],
1090
+ JPH_DistanceConstraint_SetDistance: [[:pointer, :float, :float], :void],
1091
+ JPH_DistanceConstraint_SetLimitsSpringSettings: [[:pointer, :pointer], :void],
1092
+ JPH_DrawSettings_InitDefault: [[:pointer], :void],
1093
+ JPH_EmptyShapeSettings_Create: [[:pointer], :pointer],
1094
+ JPH_EmptyShapeSettings_CreateShape: [[:pointer], :pointer],
1095
+ JPH_EstimateCollisionResponse: [[:pointer, :pointer, :pointer, :float, :float, :float, :uint32, :pointer], :void],
1096
+ JPH_FixedConstraintSettings_Init: [[:pointer], :void],
1097
+ JPH_FixedConstraint_Create: [[:pointer, :pointer, :pointer], :pointer],
1098
+ JPH_FixedConstraint_GetSettings: [[:pointer, :pointer], :void],
1099
+ JPH_FixedConstraint_GetTotalLambdaPosition: [[:pointer, :pointer], :void],
1100
+ JPH_FixedConstraint_GetTotalLambdaRotation: [[:pointer, :pointer], :void],
1101
+ JPH_GearConstraintSettings_Init: [[:pointer], :void],
1102
+ JPH_GearConstraint_Create: [[:pointer, :pointer, :pointer], :pointer],
1103
+ JPH_GearConstraint_GetSettings: [[:pointer, :pointer], :void],
1104
+ JPH_GearConstraint_GetTotalLambda: [[:pointer], :float],
1105
+ JPH_GearConstraint_SetConstraints: [[:pointer, :pointer, :pointer], :void],
1106
+ JPH_GroupFilterTable_Create: [[:uint32], :pointer],
1107
+ JPH_GroupFilterTable_DisableCollision: [[:pointer, :uint32, :uint32], :void],
1108
+ JPH_GroupFilterTable_EnableCollision: [[:pointer, :uint32, :uint32], :void],
1109
+ JPH_GroupFilterTable_IsCollisionEnabled: [[:pointer, :uint32, :uint32], :bool],
1110
+ JPH_GroupFilter_CanCollide: [[:pointer, :pointer, :pointer], :bool],
1111
+ JPH_GroupFilter_Destroy: [[:pointer], :void],
1112
+ JPH_HeightFieldShapeSettings_CalculateBitsPerSampleForError: [[:pointer, :float], :uint32],
1113
+ JPH_HeightFieldShapeSettings_Create: [[:pointer, :pointer, :pointer, :uint32, :pointer], :pointer],
1114
+ JPH_HeightFieldShapeSettings_CreateShape: [[:pointer], :pointer],
1115
+ JPH_HeightFieldShapeSettings_DetermineMinAndMaxSample: [[:pointer, :pointer, :pointer, :pointer], :void],
1116
+ JPH_HeightFieldShapeSettings_GetActiveEdgeCosThresholdAngle: [[:pointer], :float],
1117
+ JPH_HeightFieldShapeSettings_GetBitsPerSample: [[:pointer], :uint32],
1118
+ JPH_HeightFieldShapeSettings_GetBlockSize: [[:pointer], :uint32],
1119
+ JPH_HeightFieldShapeSettings_GetMaxHeightValue: [[:pointer], :float],
1120
+ JPH_HeightFieldShapeSettings_GetMinHeightValue: [[:pointer], :float],
1121
+ JPH_HeightFieldShapeSettings_GetOffset: [[:pointer, :pointer], :void],
1122
+ JPH_HeightFieldShapeSettings_GetSampleCount: [[:pointer], :uint32],
1123
+ JPH_HeightFieldShapeSettings_GetScale: [[:pointer, :pointer], :void],
1124
+ JPH_HeightFieldShapeSettings_SetActiveEdgeCosThresholdAngle: [[:pointer, :float], :void],
1125
+ JPH_HeightFieldShapeSettings_SetBitsPerSample: [[:pointer, :uint32], :void],
1126
+ JPH_HeightFieldShapeSettings_SetBlockSize: [[:pointer, :uint32], :void],
1127
+ JPH_HeightFieldShapeSettings_SetMaxHeightValue: [[:pointer, :float], :void],
1128
+ JPH_HeightFieldShapeSettings_SetMinHeightValue: [[:pointer, :float], :void],
1129
+ JPH_HeightFieldShapeSettings_SetOffset: [[:pointer, :pointer], :void],
1130
+ JPH_HeightFieldShapeSettings_SetSampleCount: [[:pointer, :uint32], :void],
1131
+ JPH_HeightFieldShapeSettings_SetScale: [[:pointer, :pointer], :void],
1132
+ JPH_HeightFieldShape_GetBlockSize: [[:pointer], :uint32],
1133
+ JPH_HeightFieldShape_GetMaterial: [[:pointer, :uint32, :uint32], :pointer],
1134
+ JPH_HeightFieldShape_GetMaxHeightValue: [[:pointer], :float],
1135
+ JPH_HeightFieldShape_GetMinHeightValue: [[:pointer], :float],
1136
+ JPH_HeightFieldShape_GetPosition: [[:pointer, :uint32, :uint32, :pointer], :void],
1137
+ JPH_HeightFieldShape_GetSampleCount: [[:pointer], :uint32],
1138
+ JPH_HeightFieldShape_IsNoCollision: [[:pointer, :uint32, :uint32], :bool],
1139
+ JPH_HeightFieldShape_ProjectOntoSurface: [[:pointer, :pointer, :pointer, :pointer], :bool],
1140
+ JPH_HingeConstraintSettings_Init: [[:pointer], :void],
1141
+ JPH_HingeConstraint_Create: [[:pointer, :pointer, :pointer], :pointer],
1142
+ JPH_HingeConstraint_GetCurrentAngle: [[:pointer], :float],
1143
+ JPH_HingeConstraint_GetLimitsMax: [[:pointer], :float],
1144
+ JPH_HingeConstraint_GetLimitsMin: [[:pointer], :float],
1145
+ JPH_HingeConstraint_GetLimitsSpringSettings: [[:pointer, :pointer], :void],
1146
+ JPH_HingeConstraint_GetLocalSpaceHingeAxis1: [[:pointer, :pointer], :void],
1147
+ JPH_HingeConstraint_GetLocalSpaceHingeAxis2: [[:pointer, :pointer], :void],
1148
+ JPH_HingeConstraint_GetLocalSpaceNormalAxis1: [[:pointer, :pointer], :void],
1149
+ JPH_HingeConstraint_GetLocalSpaceNormalAxis2: [[:pointer, :pointer], :void],
1150
+ JPH_HingeConstraint_GetLocalSpacePoint1: [[:pointer, :pointer], :void],
1151
+ JPH_HingeConstraint_GetLocalSpacePoint2: [[:pointer, :pointer], :void],
1152
+ JPH_HingeConstraint_GetMaxFrictionTorque: [[:pointer], :float],
1153
+ JPH_HingeConstraint_GetMotorSettings: [[:pointer, :pointer], :void],
1154
+ JPH_HingeConstraint_GetMotorState: [[:pointer], :int],
1155
+ JPH_HingeConstraint_GetSettings: [[:pointer, :pointer], :void],
1156
+ JPH_HingeConstraint_GetTargetAngle: [[:pointer], :float],
1157
+ JPH_HingeConstraint_GetTargetAngularVelocity: [[:pointer], :float],
1158
+ JPH_HingeConstraint_GetTotalLambdaMotor: [[:pointer], :float],
1159
+ JPH_HingeConstraint_GetTotalLambdaPosition: [[:pointer, :pointer], :void],
1160
+ JPH_HingeConstraint_GetTotalLambdaRotation: [[:pointer, :pointer], :void],
1161
+ JPH_HingeConstraint_GetTotalLambdaRotationLimits: [[:pointer], :float],
1162
+ JPH_HingeConstraint_HasLimits: [[:pointer], :bool],
1163
+ JPH_HingeConstraint_SetLimits: [[:pointer, :float, :float], :void],
1164
+ JPH_HingeConstraint_SetLimitsSpringSettings: [[:pointer, :pointer], :void],
1165
+ JPH_HingeConstraint_SetMaxFrictionTorque: [[:pointer, :float], :void],
1166
+ JPH_HingeConstraint_SetMotorSettings: [[:pointer, :pointer], :void],
1167
+ JPH_HingeConstraint_SetMotorState: [[:pointer, :int], :void],
1168
+ JPH_HingeConstraint_SetTargetAngle: [[:pointer, :float], :void],
1169
+ JPH_HingeConstraint_SetTargetAngularVelocity: [[:pointer, :float], :void],
1170
+ JPH_Init: [[], :bool],
1171
+ JPH_JobSystemCallback_Create: [[:pointer], :pointer],
1172
+ JPH_JobSystemThreadPool_Create: [[:pointer], :pointer],
1173
+ JPH_JobSystem_Destroy: [[:pointer], :void],
1174
+ JPH_LinearCurve_AddPoint: [[:pointer, :float, :float], :void],
1175
+ JPH_LinearCurve_Clear: [[:pointer], :void],
1176
+ JPH_LinearCurve_Create: [[], :pointer],
1177
+ JPH_LinearCurve_Destroy: [[:pointer], :void],
1178
+ JPH_LinearCurve_GetMaxX: [[:pointer], :float],
1179
+ JPH_LinearCurve_GetMinX: [[:pointer], :float],
1180
+ JPH_LinearCurve_GetPoint: [[:pointer, :uint32, :pointer], :void],
1181
+ JPH_LinearCurve_GetPointCount: [[:pointer], :uint32],
1182
+ JPH_LinearCurve_GetPoints: [[:pointer, :pointer, :pointer], :void],
1183
+ JPH_LinearCurve_GetValue: [[:pointer, :float], :float],
1184
+ JPH_LinearCurve_Reserve: [[:pointer, :uint32], :void],
1185
+ JPH_LinearCurve_Sort: [[:pointer], :void],
1186
+ JPH_MassProperties_DecomposePrincipalMomentsOfInertia: [[:pointer, :pointer, :pointer], :void],
1187
+ JPH_MassProperties_GetEquivalentSolidBoxSize: [[:float, :pointer, :pointer], :void],
1188
+ JPH_MassProperties_ScaleToMass: [[:pointer, :float], :void],
1189
+ JPH_Mat4_Add: [[:pointer, :pointer, :pointer], :void],
1190
+ JPH_Mat4_GetAxisX: [[:pointer, :pointer], :void],
1191
+ JPH_Mat4_GetAxisY: [[:pointer, :pointer], :void],
1192
+ JPH_Mat4_GetAxisZ: [[:pointer, :pointer], :void],
1193
+ JPH_Mat4_GetQuaternion: [[:pointer, :pointer], :void],
1194
+ JPH_Mat4_GetTranslation: [[:pointer, :pointer], :void],
1195
+ JPH_Mat4_Identity: [[:pointer], :void],
1196
+ JPH_Mat4_InverseRotationTranslation: [[:pointer, :pointer, :pointer], :void],
1197
+ JPH_Mat4_Inversed: [[:pointer, :pointer], :void],
1198
+ JPH_Mat4_Multiply: [[:pointer, :pointer, :pointer], :void],
1199
+ JPH_Mat4_MultiplyScalar: [[:pointer, :float, :pointer], :void],
1200
+ JPH_Mat4_Rotation: [[:pointer, :pointer], :void],
1201
+ JPH_Mat4_Rotation2: [[:pointer, :pointer, :float], :void],
1202
+ JPH_Mat4_RotationTranslation: [[:pointer, :pointer, :pointer], :void],
1203
+ JPH_Mat4_Scale: [[:pointer, :pointer], :void],
1204
+ JPH_Mat4_Subtract: [[:pointer, :pointer, :pointer], :void],
1205
+ JPH_Mat4_Translation: [[:pointer, :pointer], :void],
1206
+ JPH_Mat4_Transposed: [[:pointer, :pointer], :void],
1207
+ JPH_Mat4_Zero: [[:pointer], :void],
1208
+ JPH_Math_Cos: [[:float], :float],
1209
+ JPH_Math_Sin: [[:float], :float],
1210
+ JPH_MeshShapeSettings_Create: [[:pointer, :uint32], :pointer],
1211
+ JPH_MeshShapeSettings_Create2: [[:pointer, :uint32, :pointer, :uint32], :pointer],
1212
+ JPH_MeshShapeSettings_CreateShape: [[:pointer], :pointer],
1213
+ JPH_MeshShapeSettings_GetActiveEdgeCosThresholdAngle: [[:pointer], :float],
1214
+ JPH_MeshShapeSettings_GetBuildQuality: [[:pointer], :int],
1215
+ JPH_MeshShapeSettings_GetMaxTrianglesPerLeaf: [[:pointer], :uint32],
1216
+ JPH_MeshShapeSettings_GetPerTriangleUserData: [[:pointer], :bool],
1217
+ JPH_MeshShapeSettings_Sanitize: [[:pointer], :void],
1218
+ JPH_MeshShapeSettings_SetActiveEdgeCosThresholdAngle: [[:pointer, :float], :void],
1219
+ JPH_MeshShapeSettings_SetBuildQuality: [[:pointer, :int], :void],
1220
+ JPH_MeshShapeSettings_SetMaxTrianglesPerLeaf: [[:pointer, :uint32], :void],
1221
+ JPH_MeshShapeSettings_SetPerTriangleUserData: [[:pointer, :bool], :void],
1222
+ JPH_MeshShape_GetTriangleUserData: [[:pointer, :uint32], :uint32],
1223
+ JPH_MotionProperties_GetAllowedDOFs: [[:pointer], :int],
1224
+ JPH_MotionProperties_GetAngularDamping: [[:pointer], :float],
1225
+ JPH_MotionProperties_GetInertiaRotation: [[:pointer, :pointer], :void],
1226
+ JPH_MotionProperties_GetInverseInertiaDiagonal: [[:pointer, :pointer], :void],
1227
+ JPH_MotionProperties_GetInverseMassUnchecked: [[:pointer], :float],
1228
+ JPH_MotionProperties_GetLinearDamping: [[:pointer], :float],
1229
+ JPH_MotionProperties_ScaleToMass: [[:pointer, :float], :void],
1230
+ JPH_MotionProperties_SetAngularDamping: [[:pointer, :float], :void],
1231
+ JPH_MotionProperties_SetInverseInertia: [[:pointer, :pointer, :pointer], :void],
1232
+ JPH_MotionProperties_SetInverseMass: [[:pointer, :float], :void],
1233
+ JPH_MotionProperties_SetLinearDamping: [[:pointer, :float], :void],
1234
+ JPH_MotionProperties_SetMassProperties: [[:pointer, :int, :pointer], :void],
1235
+ JPH_MotorcycleControllerSettings_Create: [[], :pointer],
1236
+ JPH_MotorcycleControllerSettings_GetLeanSmoothingFactor: [[:pointer], :float],
1237
+ JPH_MotorcycleControllerSettings_GetLeanSpringConstant: [[:pointer], :float],
1238
+ JPH_MotorcycleControllerSettings_GetLeanSpringDamping: [[:pointer], :float],
1239
+ JPH_MotorcycleControllerSettings_GetLeanSpringIntegrationCoefficient: [[:pointer], :float],
1240
+ JPH_MotorcycleControllerSettings_GetLeanSpringIntegrationCoefficientDecay: [[:pointer], :float],
1241
+ JPH_MotorcycleControllerSettings_GetMaxLeanAngle: [[:pointer], :float],
1242
+ JPH_MotorcycleControllerSettings_SetLeanSmoothingFactor: [[:pointer, :float], :void],
1243
+ JPH_MotorcycleControllerSettings_SetLeanSpringConstant: [[:pointer, :float], :void],
1244
+ JPH_MotorcycleControllerSettings_SetLeanSpringDamping: [[:pointer, :float], :void],
1245
+ JPH_MotorcycleControllerSettings_SetLeanSpringIntegrationCoefficient: [[:pointer, :float], :void],
1246
+ JPH_MotorcycleControllerSettings_SetLeanSpringIntegrationCoefficientDecay: [[:pointer, :float], :void],
1247
+ JPH_MotorcycleControllerSettings_SetMaxLeanAngle: [[:pointer, :float], :void],
1248
+ JPH_MotorcycleController_EnableLeanController: [[:pointer, :bool], :void],
1249
+ JPH_MotorcycleController_EnableLeanSteeringLimit: [[:pointer, :bool], :void],
1250
+ JPH_MotorcycleController_GetLeanSmoothingFactor: [[:pointer], :float],
1251
+ JPH_MotorcycleController_GetLeanSpringConstant: [[:pointer], :float],
1252
+ JPH_MotorcycleController_GetLeanSpringDamping: [[:pointer], :float],
1253
+ JPH_MotorcycleController_GetLeanSpringIntegrationCoefficient: [[:pointer], :float],
1254
+ JPH_MotorcycleController_GetLeanSpringIntegrationCoefficientDecay: [[:pointer], :float],
1255
+ JPH_MotorcycleController_GetWheelBase: [[:pointer], :float],
1256
+ JPH_MotorcycleController_IsLeanControllerEnabled: [[:pointer], :bool],
1257
+ JPH_MotorcycleController_IsLeanSteeringLimitEnabled: [[:pointer], :bool],
1258
+ JPH_MotorcycleController_SetLeanSmoothingFactor: [[:pointer, :float], :void],
1259
+ JPH_MotorcycleController_SetLeanSpringConstant: [[:pointer, :float], :void],
1260
+ JPH_MotorcycleController_SetLeanSpringDamping: [[:pointer, :float], :void],
1261
+ JPH_MotorcycleController_SetLeanSpringIntegrationCoefficient: [[:pointer, :float], :void],
1262
+ JPH_MotorcycleController_SetLeanSpringIntegrationCoefficientDecay: [[:pointer, :float], :void],
1263
+ JPH_MutableCompoundShapeSettings_Create: [[], :pointer],
1264
+ JPH_MutableCompoundShape_AddShape: [[:pointer, :pointer, :pointer, :pointer, :uint32, :uint32], :uint32],
1265
+ JPH_MutableCompoundShape_AdjustCenterOfMass: [[:pointer], :void],
1266
+ JPH_MutableCompoundShape_Create: [[:pointer], :pointer],
1267
+ JPH_MutableCompoundShape_ModifyShape: [[:pointer, :uint32, :pointer, :pointer], :void],
1268
+ JPH_MutableCompoundShape_ModifyShape2: [[:pointer, :uint32, :pointer, :pointer, :pointer], :void],
1269
+ JPH_MutableCompoundShape_RemoveShape: [[:pointer, :uint32], :void],
1270
+ JPH_NarrowPhaseQuery_CastRay: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
1271
+ JPH_NarrowPhaseQuery_CastRay2: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
1272
+ JPH_NarrowPhaseQuery_CastRay3: [[:pointer, :pointer, :pointer, :pointer, :int, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
1273
+ JPH_NarrowPhaseQuery_CastShape: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
1274
+ JPH_NarrowPhaseQuery_CastShape2: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :int, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
1275
+ JPH_NarrowPhaseQuery_CollidePoint: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
1276
+ JPH_NarrowPhaseQuery_CollidePoint2: [[:pointer, :pointer, :int, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
1277
+ JPH_NarrowPhaseQuery_CollideShape: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
1278
+ JPH_NarrowPhaseQuery_CollideShape2: [[:pointer, :pointer, :pointer, :pointer, :pointer, :pointer, :int, :pointer, :pointer, :pointer, :pointer, :pointer, :pointer], :bool],
1279
+ JPH_ObjectLayerFilter_Create: [[:pointer], :pointer],
1280
+ JPH_ObjectLayerFilter_Destroy: [[:pointer], :void],
1281
+ JPH_ObjectLayerFilter_SetProcs: [[:pointer], :void],
1282
+ JPH_ObjectLayerPairFilterMask_Create: [[], :pointer],
1283
+ JPH_ObjectLayerPairFilterMask_GetGroup: [[:uint32], :uint32],
1284
+ JPH_ObjectLayerPairFilterMask_GetMask: [[:uint32], :uint32],
1285
+ JPH_ObjectLayerPairFilterMask_GetObjectLayer: [[:uint32, :uint32], :uint32],
1286
+ JPH_ObjectLayerPairFilterTable_Create: [[:uint32], :pointer],
1287
+ JPH_ObjectLayerPairFilterTable_DisableCollision: [[:pointer, :uint32, :uint32], :void],
1288
+ JPH_ObjectLayerPairFilterTable_EnableCollision: [[:pointer, :uint32, :uint32], :void],
1289
+ JPH_ObjectLayerPairFilterTable_ShouldCollide: [[:pointer, :uint32, :uint32], :bool],
1290
+ JPH_ObjectLayerPairFilter_Destroy: [[:pointer], :void],
1291
+ JPH_ObjectVsBroadPhaseLayerFilterMask_Create: [[:pointer], :pointer],
1292
+ JPH_ObjectVsBroadPhaseLayerFilterTable_Create: [[:pointer, :uint32, :pointer, :uint32], :pointer],
1293
+ JPH_ObjectVsBroadPhaseLayerFilter_Destroy: [[:pointer], :void],
1294
+ JPH_OffsetCenterOfMassShapeSettings_Create: [[:pointer, :pointer], :pointer],
1295
+ JPH_OffsetCenterOfMassShapeSettings_Create2: [[:pointer, :pointer], :pointer],
1296
+ JPH_OffsetCenterOfMassShapeSettings_CreateShape: [[:pointer], :pointer],
1297
+ JPH_OffsetCenterOfMassShape_Create: [[:pointer, :pointer], :pointer],
1298
+ JPH_OffsetCenterOfMassShape_GetOffset: [[:pointer, :pointer], :void],
1299
+ JPH_PhysicsMaterial_Create: [[:pointer, :uint32], :pointer],
1300
+ JPH_PhysicsMaterial_Destroy: [[:pointer], :void],
1301
+ JPH_PhysicsMaterial_GetDebugColor: [[:pointer], :uint32],
1302
+ JPH_PhysicsMaterial_GetDebugName: [[:pointer], :pointer],
1303
+ JPH_PhysicsStepListener_Create: [[:pointer], :pointer],
1304
+ JPH_PhysicsStepListener_Destroy: [[:pointer], :void],
1305
+ JPH_PhysicsStepListener_SetProcs: [[:pointer], :void],
1306
+ JPH_PhysicsSystem_ActivateBodiesInAABox: [[:pointer, :pointer, :uint32], :void],
1307
+ JPH_PhysicsSystem_AddConstraint: [[:pointer, :pointer], :void],
1308
+ JPH_PhysicsSystem_AddConstraints: [[:pointer, :pointer, :uint32], :void],
1309
+ JPH_PhysicsSystem_AddStepListener: [[:pointer, :pointer], :void],
1310
+ JPH_PhysicsSystem_Create: [[:pointer], :pointer],
1311
+ JPH_PhysicsSystem_Destroy: [[:pointer], :void],
1312
+ JPH_PhysicsSystem_DrawBodies: [[:pointer, :pointer, :pointer, :pointer], :void],
1313
+ JPH_PhysicsSystem_DrawConstraintLimits: [[:pointer, :pointer], :void],
1314
+ JPH_PhysicsSystem_DrawConstraintReferenceFrame: [[:pointer, :pointer], :void],
1315
+ JPH_PhysicsSystem_DrawConstraints: [[:pointer, :pointer], :void],
1316
+ JPH_PhysicsSystem_GetActiveBodies: [[:pointer, :int, :pointer, :uint32], :void],
1317
+ JPH_PhysicsSystem_GetActiveBodiesUnsafe: [[:pointer, :int], :pointer],
1318
+ JPH_PhysicsSystem_GetBodies: [[:pointer, :pointer, :uint32], :void],
1319
+ JPH_PhysicsSystem_GetBodyInterface: [[:pointer], :pointer],
1320
+ JPH_PhysicsSystem_GetBodyInterfaceNoLock: [[:pointer], :pointer],
1321
+ JPH_PhysicsSystem_GetBodyLockInterface: [[:pointer], :pointer],
1322
+ JPH_PhysicsSystem_GetBodyLockInterfaceNoLock: [[:pointer], :pointer],
1323
+ JPH_PhysicsSystem_GetBodyPtr: [[:pointer, :uint32], :pointer],
1324
+ JPH_PhysicsSystem_GetBroadPhaseQuery: [[:pointer], :pointer],
1325
+ JPH_PhysicsSystem_GetConstraints: [[:pointer, :pointer, :uint32], :void],
1326
+ JPH_PhysicsSystem_GetGravity: [[:pointer, :pointer], :void],
1327
+ JPH_PhysicsSystem_GetMaxBodies: [[:pointer], :uint32],
1328
+ JPH_PhysicsSystem_GetNarrowPhaseQuery: [[:pointer], :pointer],
1329
+ JPH_PhysicsSystem_GetNarrowPhaseQueryNoLock: [[:pointer], :pointer],
1330
+ JPH_PhysicsSystem_GetNumActiveBodies: [[:pointer, :int], :uint32],
1331
+ JPH_PhysicsSystem_GetNumBodies: [[:pointer], :uint32],
1332
+ JPH_PhysicsSystem_GetNumConstraints: [[:pointer], :uint32],
1333
+ JPH_PhysicsSystem_GetPhysicsSettings: [[:pointer, :pointer], :void],
1334
+ JPH_PhysicsSystem_OptimizeBroadPhase: [[:pointer], :void],
1335
+ JPH_PhysicsSystem_RemoveConstraint: [[:pointer, :pointer], :void],
1336
+ JPH_PhysicsSystem_RemoveConstraints: [[:pointer, :pointer, :uint32], :void],
1337
+ JPH_PhysicsSystem_RemoveStepListener: [[:pointer, :pointer], :void],
1338
+ JPH_PhysicsSystem_SetBodyActivationListener: [[:pointer, :pointer], :void],
1339
+ JPH_PhysicsSystem_SetContactListener: [[:pointer, :pointer], :void],
1340
+ JPH_PhysicsSystem_SetGravity: [[:pointer, :pointer], :void],
1341
+ JPH_PhysicsSystem_SetPhysicsSettings: [[:pointer, :pointer], :void],
1342
+ JPH_PhysicsSystem_SetSimShapeFilter: [[:pointer, :pointer], :void],
1343
+ JPH_PhysicsSystem_Update: [[:pointer, :float, :int32, :pointer], :int],
1344
+ JPH_PhysicsSystem_Update2: [[:pointer, :float, :int32, :pointer, :pointer], :int],
1345
+ JPH_PhysicsSystem_WereBodiesInContact: [[:pointer, :uint32, :uint32], :bool],
1346
+ JPH_PlaneShapeSettings_Create: [[:pointer, :pointer, :float], :pointer],
1347
+ JPH_PlaneShapeSettings_CreateShape: [[:pointer], :pointer],
1348
+ JPH_PlaneShape_Create: [[:pointer, :pointer, :float], :pointer],
1349
+ JPH_PlaneShape_GetHalfExtent: [[:pointer], :float],
1350
+ JPH_PlaneShape_GetPlane: [[:pointer, :pointer], :void],
1351
+ JPH_PointConstraintSettings_Init: [[:pointer], :void],
1352
+ JPH_PointConstraint_Create: [[:pointer, :pointer, :pointer], :pointer],
1353
+ JPH_PointConstraint_GetLocalSpacePoint1: [[:pointer, :pointer], :void],
1354
+ JPH_PointConstraint_GetLocalSpacePoint2: [[:pointer, :pointer], :void],
1355
+ JPH_PointConstraint_GetSettings: [[:pointer, :pointer], :void],
1356
+ JPH_PointConstraint_GetTotalLambdaPosition: [[:pointer, :pointer], :void],
1357
+ JPH_PointConstraint_SetPoint1: [[:pointer, :int, :pointer], :void],
1358
+ JPH_PointConstraint_SetPoint2: [[:pointer, :int, :pointer], :void],
1359
+ JPH_Quat_Add: [[:pointer, :pointer, :pointer], :void],
1360
+ JPH_Quat_Conjugated: [[:pointer, :pointer], :void],
1361
+ JPH_Quat_DivideScalar: [[:pointer, :float, :pointer], :void],
1362
+ JPH_Quat_Dot: [[:pointer, :pointer, :pointer], :void],
1363
+ JPH_Quat_FromEulerAngles: [[:pointer, :pointer], :void],
1364
+ JPH_Quat_FromTo: [[:pointer, :pointer, :pointer], :void],
1365
+ JPH_Quat_GetAxisAngle: [[:pointer, :pointer, :pointer], :void],
1366
+ JPH_Quat_GetEulerAngles: [[:pointer, :pointer], :void],
1367
+ JPH_Quat_GetPerpendicular: [[:pointer, :pointer], :void],
1368
+ JPH_Quat_GetRotationAngle: [[:pointer, :pointer], :float],
1369
+ JPH_Quat_GetSwingTwist: [[:pointer, :pointer, :pointer], :void],
1370
+ JPH_Quat_GetTwist: [[:pointer, :pointer, :pointer], :void],
1371
+ JPH_Quat_InverseRotate: [[:pointer, :pointer, :pointer], :void],
1372
+ JPH_Quat_Inversed: [[:pointer, :pointer], :void],
1373
+ JPH_Quat_Lerp: [[:pointer, :pointer, :float, :pointer], :void],
1374
+ JPH_Quat_Multiply: [[:pointer, :pointer, :pointer], :void],
1375
+ JPH_Quat_MultiplyScalar: [[:pointer, :float, :pointer], :void],
1376
+ JPH_Quat_Rotate: [[:pointer, :pointer, :pointer], :void],
1377
+ JPH_Quat_RotateAxisX: [[:pointer, :pointer], :void],
1378
+ JPH_Quat_RotateAxisY: [[:pointer, :pointer], :void],
1379
+ JPH_Quat_RotateAxisZ: [[:pointer, :pointer], :void],
1380
+ JPH_Quat_Slerp: [[:pointer, :pointer, :float, :pointer], :void],
1381
+ JPH_Quat_Subtract: [[:pointer, :pointer, :pointer], :void],
1382
+ JPH_RRayCast_GetPointOnRay: [[:pointer, :pointer, :float, :pointer], :void],
1383
+ JPH_RagdollSettings_CalculateBodyIndexToConstraintIndex: [[:pointer], :void],
1384
+ JPH_RagdollSettings_CalculateConstraintIndexToBodyIdxPair: [[:pointer], :void],
1385
+ JPH_RagdollSettings_Create: [[], :pointer],
1386
+ JPH_RagdollSettings_CreateRagdoll: [[:pointer, :pointer, :uint32, :uint64], :pointer],
1387
+ JPH_RagdollSettings_Destroy: [[:pointer], :void],
1388
+ JPH_RagdollSettings_DisableParentChildCollisions: [[:pointer, :pointer, :float], :void],
1389
+ JPH_RagdollSettings_GetConstraintIndexForBodyIndex: [[:pointer, :int32], :int32],
1390
+ JPH_RagdollSettings_GetPartCount: [[:pointer], :int32],
1391
+ JPH_RagdollSettings_GetSkeleton: [[:pointer], :pointer],
1392
+ JPH_RagdollSettings_ResizeParts: [[:pointer, :int32], :void],
1393
+ JPH_RagdollSettings_SetPartMassProperties: [[:pointer, :int32, :float], :void],
1394
+ JPH_RagdollSettings_SetPartMotionType: [[:pointer, :int32, :int], :void],
1395
+ JPH_RagdollSettings_SetPartObjectLayer: [[:pointer, :int32, :uint32], :void],
1396
+ JPH_RagdollSettings_SetPartPosition: [[:pointer, :int32, :pointer], :void],
1397
+ JPH_RagdollSettings_SetPartRotation: [[:pointer, :int32, :pointer], :void],
1398
+ JPH_RagdollSettings_SetPartShape: [[:pointer, :int32, :pointer], :void],
1399
+ JPH_RagdollSettings_SetPartToParent: [[:pointer, :int32, :pointer], :void],
1400
+ JPH_RagdollSettings_SetSkeleton: [[:pointer, :pointer], :void],
1401
+ JPH_RagdollSettings_Stabilize: [[:pointer], :bool],
1402
+ JPH_Ragdoll_Activate: [[:pointer, :bool], :void],
1403
+ JPH_Ragdoll_AddToPhysicsSystem: [[:pointer, :int, :bool], :void],
1404
+ JPH_Ragdoll_Destroy: [[:pointer], :void],
1405
+ JPH_Ragdoll_DriveToPoseUsingKinematics: [[:pointer, :pointer, :float, :bool], :void],
1406
+ JPH_Ragdoll_DriveToPoseUsingMotors: [[:pointer, :pointer], :void],
1407
+ JPH_Ragdoll_GetBodyCount: [[:pointer], :int32],
1408
+ JPH_Ragdoll_GetBodyID: [[:pointer, :int32], :uint32],
1409
+ JPH_Ragdoll_GetConstraint: [[:pointer, :int32], :pointer],
1410
+ JPH_Ragdoll_GetConstraintCount: [[:pointer], :int32],
1411
+ JPH_Ragdoll_GetPose: [[:pointer, :pointer, :bool], :void],
1412
+ JPH_Ragdoll_GetPose2: [[:pointer, :pointer, :pointer, :bool], :void],
1413
+ JPH_Ragdoll_GetRagdollSettings: [[:pointer], :pointer],
1414
+ JPH_Ragdoll_GetRootTransform: [[:pointer, :pointer, :pointer, :bool], :void],
1415
+ JPH_Ragdoll_IsActive: [[:pointer, :bool], :bool],
1416
+ JPH_Ragdoll_RemoveFromPhysicsSystem: [[:pointer, :bool], :void],
1417
+ JPH_Ragdoll_ResetWarmStart: [[:pointer], :void],
1418
+ JPH_Ragdoll_SetPose: [[:pointer, :pointer, :bool], :void],
1419
+ JPH_Ragdoll_SetPose2: [[:pointer, :pointer, :pointer, :bool], :void],
1420
+ JPH_RayCast_GetPointOnRay: [[:pointer, :pointer, :float, :pointer], :void],
1421
+ JPH_RotatedTranslatedShapeSettings_Create: [[:pointer, :pointer, :pointer], :pointer],
1422
+ JPH_RotatedTranslatedShapeSettings_Create2: [[:pointer, :pointer, :pointer], :pointer],
1423
+ JPH_RotatedTranslatedShapeSettings_CreateShape: [[:pointer], :pointer],
1424
+ JPH_RotatedTranslatedShape_Create: [[:pointer, :pointer, :pointer], :pointer],
1425
+ JPH_RotatedTranslatedShape_GetPosition: [[:pointer, :pointer], :void],
1426
+ JPH_RotatedTranslatedShape_GetRotation: [[:pointer, :pointer], :void],
1427
+ JPH_ScaledShapeSettings_Create: [[:pointer, :pointer], :pointer],
1428
+ JPH_ScaledShapeSettings_Create2: [[:pointer, :pointer], :pointer],
1429
+ JPH_ScaledShapeSettings_CreateShape: [[:pointer], :pointer],
1430
+ JPH_ScaledShape_Create: [[:pointer, :pointer], :pointer],
1431
+ JPH_ScaledShape_GetScale: [[:pointer, :pointer], :void],
1432
+ JPH_SetAssertFailureHandler: [[:pointer], :void],
1433
+ JPH_SetTraceHandler: [[:pointer], :void],
1434
+ JPH_ShapeCastSettings_Init: [[:pointer], :void],
1435
+ JPH_ShapeFilter_Create: [[:pointer], :pointer],
1436
+ JPH_ShapeFilter_Destroy: [[:pointer], :void],
1437
+ JPH_ShapeFilter_GetBodyID2: [[:pointer], :uint32],
1438
+ JPH_ShapeFilter_SetBodyID2: [[:pointer, :uint32], :void],
1439
+ JPH_ShapeFilter_SetProcs: [[:pointer], :void],
1440
+ JPH_ShapeSettings_Destroy: [[:pointer], :void],
1441
+ JPH_ShapeSettings_GetUserData: [[:pointer], :uint64],
1442
+ JPH_ShapeSettings_SetUserData: [[:pointer, :uint64], :void],
1443
+ JPH_Shape_CastRay: [[:pointer, :pointer, :pointer, :pointer], :bool],
1444
+ JPH_Shape_CastRay2: [[:pointer, :pointer, :pointer, :pointer, :int, :pointer, :pointer, :pointer], :bool],
1445
+ JPH_Shape_CollidePoint: [[:pointer, :pointer, :pointer], :bool],
1446
+ JPH_Shape_CollidePoint2: [[:pointer, :pointer, :int, :pointer, :pointer, :pointer], :bool],
1447
+ JPH_Shape_Destroy: [[:pointer], :void],
1448
+ JPH_Shape_Draw: [[:pointer, :pointer, :pointer, :pointer, :uint32, :bool, :bool], :void],
1449
+ JPH_Shape_GetCenterOfMass: [[:pointer, :pointer], :void],
1450
+ JPH_Shape_GetInnerRadius: [[:pointer], :float],
1451
+ JPH_Shape_GetLeafShape: [[:pointer, :uint32, :pointer], :pointer],
1452
+ JPH_Shape_GetLocalBounds: [[:pointer, :pointer], :void],
1453
+ JPH_Shape_GetMassProperties: [[:pointer, :pointer], :void],
1454
+ JPH_Shape_GetMaterial: [[:pointer, :uint32], :pointer],
1455
+ JPH_Shape_GetSubShapeIDBitsRecursive: [[:pointer], :uint32],
1456
+ JPH_Shape_GetSubType: [[:pointer], :int],
1457
+ JPH_Shape_GetSupportingFace: [[:pointer, :uint32, :pointer, :pointer, :pointer, :pointer], :void],
1458
+ JPH_Shape_GetSurfaceNormal: [[:pointer, :uint32, :pointer, :pointer], :void],
1459
+ JPH_Shape_GetType: [[:pointer], :int],
1460
+ JPH_Shape_GetUserData: [[:pointer], :uint64],
1461
+ JPH_Shape_GetVolume: [[:pointer], :float],
1462
+ JPH_Shape_GetWorldSpaceBounds: [[:pointer, :pointer, :pointer, :pointer], :void],
1463
+ JPH_Shape_IsValidScale: [[:pointer, :pointer], :bool],
1464
+ JPH_Shape_MakeScaleValid: [[:pointer, :pointer, :pointer], :void],
1465
+ JPH_Shape_MustBeStatic: [[:pointer], :bool],
1466
+ JPH_Shape_ScaleShape: [[:pointer, :pointer], :pointer],
1467
+ JPH_Shape_SetUserData: [[:pointer, :uint64], :void],
1468
+ JPH_Shutdown: [[], :void],
1469
+ JPH_SimShapeFilter_Create: [[:pointer], :pointer],
1470
+ JPH_SimShapeFilter_Destroy: [[:pointer], :void],
1471
+ JPH_SimShapeFilter_SetProcs: [[:pointer], :void],
1472
+ JPH_SixDOFConstraintSettings_Init: [[:pointer], :void],
1473
+ JPH_SixDOFConstraintSettings_IsFixedAxis: [[:pointer, :int], :bool],
1474
+ JPH_SixDOFConstraintSettings_IsFreeAxis: [[:pointer, :int], :bool],
1475
+ JPH_SixDOFConstraintSettings_MakeFixedAxis: [[:pointer, :int], :void],
1476
+ JPH_SixDOFConstraintSettings_MakeFreeAxis: [[:pointer, :int], :void],
1477
+ JPH_SixDOFConstraintSettings_SetLimitedAxis: [[:pointer, :int, :float, :float], :void],
1478
+ JPH_SixDOFConstraint_Create: [[:pointer, :pointer, :pointer], :pointer],
1479
+ JPH_SixDOFConstraint_GetLimitsMax: [[:pointer, :int], :float],
1480
+ JPH_SixDOFConstraint_GetLimitsMin: [[:pointer, :int], :float],
1481
+ JPH_SixDOFConstraint_GetLimitsSpringSettings: [[:pointer, :pointer, :int], :void],
1482
+ JPH_SixDOFConstraint_GetMaxFriction: [[:pointer, :int], :float],
1483
+ JPH_SixDOFConstraint_GetMotorSettings: [[:pointer, :int, :pointer], :void],
1484
+ JPH_SixDOFConstraint_GetMotorState: [[:pointer, :int], :int],
1485
+ JPH_SixDOFConstraint_GetRotationInConstraintSpace: [[:pointer, :pointer], :void],
1486
+ JPH_SixDOFConstraint_GetRotationLimitsMax: [[:pointer, :pointer], :void],
1487
+ JPH_SixDOFConstraint_GetRotationLimitsMin: [[:pointer, :pointer], :void],
1488
+ JPH_SixDOFConstraint_GetSettings: [[:pointer, :pointer], :void],
1489
+ JPH_SixDOFConstraint_GetTargetAngularVelocityCS: [[:pointer, :pointer], :void],
1490
+ JPH_SixDOFConstraint_GetTargetOrientationCS: [[:pointer, :pointer], :void],
1491
+ JPH_SixDOFConstraint_GetTargetPositionCS: [[:pointer, :pointer], :void],
1492
+ JPH_SixDOFConstraint_GetTargetVelocityCS: [[:pointer, :pointer], :void],
1493
+ JPH_SixDOFConstraint_GetTotalLambdaMotorRotation: [[:pointer, :pointer], :void],
1494
+ JPH_SixDOFConstraint_GetTotalLambdaMotorTranslation: [[:pointer, :pointer], :void],
1495
+ JPH_SixDOFConstraint_GetTotalLambdaPosition: [[:pointer, :pointer], :void],
1496
+ JPH_SixDOFConstraint_GetTotalLambdaRotation: [[:pointer, :pointer], :void],
1497
+ JPH_SixDOFConstraint_GetTranslationLimitsMax: [[:pointer, :pointer], :void],
1498
+ JPH_SixDOFConstraint_GetTranslationLimitsMin: [[:pointer, :pointer], :void],
1499
+ JPH_SixDOFConstraint_IsFixedAxis: [[:pointer, :int], :bool],
1500
+ JPH_SixDOFConstraint_IsFreeAxis: [[:pointer, :int], :bool],
1501
+ JPH_SixDOFConstraint_SetLimitsSpringSettings: [[:pointer, :pointer, :int], :void],
1502
+ JPH_SixDOFConstraint_SetMaxFriction: [[:pointer, :int, :float], :void],
1503
+ JPH_SixDOFConstraint_SetMotorState: [[:pointer, :int, :int], :void],
1504
+ JPH_SixDOFConstraint_SetTargetAngularVelocityCS: [[:pointer, :pointer], :void],
1505
+ JPH_SixDOFConstraint_SetTargetOrientationBS: [[:pointer, :pointer], :void],
1506
+ JPH_SixDOFConstraint_SetTargetOrientationCS: [[:pointer, :pointer], :void],
1507
+ JPH_SixDOFConstraint_SetTargetPositionCS: [[:pointer, :pointer], :void],
1508
+ JPH_SixDOFConstraint_SetTargetVelocityCS: [[:pointer, :pointer], :void],
1509
+ JPH_SkeletalAnimation_AddAnimatedJoint: [[:pointer, :pointer], :void],
1510
+ JPH_SkeletalAnimation_AddKeyframe: [[:pointer, :int32, :float, :pointer, :pointer], :void],
1511
+ JPH_SkeletalAnimation_Create: [[], :pointer],
1512
+ JPH_SkeletalAnimation_Destroy: [[:pointer], :void],
1513
+ JPH_SkeletalAnimation_GetAnimatedJointCount: [[:pointer], :int32],
1514
+ JPH_SkeletalAnimation_GetDuration: [[:pointer], :float],
1515
+ JPH_SkeletalAnimation_IsLooping: [[:pointer], :bool],
1516
+ JPH_SkeletalAnimation_Sample: [[:pointer, :float, :pointer], :void],
1517
+ JPH_SkeletalAnimation_ScaleJoints: [[:pointer, :float], :void],
1518
+ JPH_SkeletalAnimation_SetIsLooping: [[:pointer, :bool], :void],
1519
+ JPH_SkeletonMapper_Create: [[], :pointer],
1520
+ JPH_SkeletonMapper_Destroy: [[:pointer], :void],
1521
+ JPH_SkeletonMapper_GetMappedJointIndex: [[:pointer, :int32], :int32],
1522
+ JPH_SkeletonMapper_Initialize: [[:pointer, :pointer, :pointer, :pointer, :pointer], :void],
1523
+ JPH_SkeletonMapper_IsJointTranslationLocked: [[:pointer, :int32], :bool],
1524
+ JPH_SkeletonMapper_LockAllTranslations: [[:pointer, :pointer, :pointer], :void],
1525
+ JPH_SkeletonMapper_LockTranslations: [[:pointer, :pointer, :pointer, :pointer], :void],
1526
+ JPH_SkeletonMapper_Map: [[:pointer, :pointer, :pointer, :pointer], :void],
1527
+ JPH_SkeletonMapper_MapReverse: [[:pointer, :pointer, :pointer], :void],
1528
+ JPH_SkeletonPose_CalculateJointMatrices: [[:pointer], :void],
1529
+ JPH_SkeletonPose_CalculateJointStates: [[:pointer], :void],
1530
+ JPH_SkeletonPose_CalculateLocalSpaceJointMatrices: [[:pointer, :pointer], :void],
1531
+ JPH_SkeletonPose_Create: [[], :pointer],
1532
+ JPH_SkeletonPose_Destroy: [[:pointer], :void],
1533
+ JPH_SkeletonPose_GetJointCount: [[:pointer], :int32],
1534
+ JPH_SkeletonPose_GetJointMatrices: [[:pointer, :pointer, :int32], :void],
1535
+ JPH_SkeletonPose_GetJointMatrix: [[:pointer, :int32, :pointer], :void],
1536
+ JPH_SkeletonPose_GetJointState: [[:pointer, :int32, :pointer, :pointer], :void],
1537
+ JPH_SkeletonPose_GetRootOffset: [[:pointer, :pointer], :void],
1538
+ JPH_SkeletonPose_GetSkeleton: [[:pointer], :pointer],
1539
+ JPH_SkeletonPose_SetJointMatrices: [[:pointer, :pointer, :int32], :void],
1540
+ JPH_SkeletonPose_SetJointMatrix: [[:pointer, :int32, :pointer], :void],
1541
+ JPH_SkeletonPose_SetJointState: [[:pointer, :int32, :pointer, :pointer], :void],
1542
+ JPH_SkeletonPose_SetRootOffset: [[:pointer, :pointer], :void],
1543
+ JPH_SkeletonPose_SetSkeleton: [[:pointer, :pointer], :void],
1544
+ JPH_Skeleton_AddJoint: [[:pointer, :pointer], :uint32],
1545
+ JPH_Skeleton_AddJoint2: [[:pointer, :pointer, :int32], :uint32],
1546
+ JPH_Skeleton_AddJoint3: [[:pointer, :pointer, :pointer], :uint32],
1547
+ JPH_Skeleton_AreJointsCorrectlyOrdered: [[:pointer], :bool],
1548
+ JPH_Skeleton_CalculateParentJointIndices: [[:pointer], :void],
1549
+ JPH_Skeleton_Create: [[], :pointer],
1550
+ JPH_Skeleton_Destroy: [[:pointer], :void],
1551
+ JPH_Skeleton_GetJoint: [[:pointer, :int32, :pointer], :void],
1552
+ JPH_Skeleton_GetJointCount: [[:pointer], :int32],
1553
+ JPH_Skeleton_GetJointIndex: [[:pointer, :pointer], :int32],
1554
+ JPH_SliderConstraintSettings_Init: [[:pointer], :void],
1555
+ JPH_SliderConstraintSettings_SetSliderAxis: [[:pointer, :pointer], :void],
1556
+ JPH_SliderConstraint_Create: [[:pointer, :pointer, :pointer], :pointer],
1557
+ JPH_SliderConstraint_GetCurrentPosition: [[:pointer], :float],
1558
+ JPH_SliderConstraint_GetLimitsMax: [[:pointer], :float],
1559
+ JPH_SliderConstraint_GetLimitsMin: [[:pointer], :float],
1560
+ JPH_SliderConstraint_GetLimitsSpringSettings: [[:pointer, :pointer], :void],
1561
+ JPH_SliderConstraint_GetMaxFrictionForce: [[:pointer], :float],
1562
+ JPH_SliderConstraint_GetMotorSettings: [[:pointer, :pointer], :void],
1563
+ JPH_SliderConstraint_GetMotorState: [[:pointer], :int],
1564
+ JPH_SliderConstraint_GetSettings: [[:pointer, :pointer], :void],
1565
+ JPH_SliderConstraint_GetTargetPosition: [[:pointer], :float],
1566
+ JPH_SliderConstraint_GetTargetVelocity: [[:pointer], :float],
1567
+ JPH_SliderConstraint_GetTotalLambdaMotor: [[:pointer], :float],
1568
+ JPH_SliderConstraint_GetTotalLambdaPosition: [[:pointer, :pointer], :void],
1569
+ JPH_SliderConstraint_GetTotalLambdaPositionLimits: [[:pointer], :float],
1570
+ JPH_SliderConstraint_GetTotalLambdaRotation: [[:pointer, :pointer], :void],
1571
+ JPH_SliderConstraint_HasLimits: [[:pointer], :bool],
1572
+ JPH_SliderConstraint_SetLimits: [[:pointer, :float, :float], :void],
1573
+ JPH_SliderConstraint_SetLimitsSpringSettings: [[:pointer, :pointer], :void],
1574
+ JPH_SliderConstraint_SetMaxFrictionForce: [[:pointer, :float], :void],
1575
+ JPH_SliderConstraint_SetMotorSettings: [[:pointer, :pointer], :void],
1576
+ JPH_SliderConstraint_SetMotorState: [[:pointer, :int], :void],
1577
+ JPH_SliderConstraint_SetTargetPosition: [[:pointer, :float], :void],
1578
+ JPH_SliderConstraint_SetTargetVelocity: [[:pointer, :float], :void],
1579
+ JPH_SoftBodyCreationSettings_Create: [[], :pointer],
1580
+ JPH_SoftBodyCreationSettings_Create2: [[:pointer, :pointer, :pointer, :uint32], :pointer],
1581
+ JPH_SoftBodyCreationSettings_Destroy: [[:pointer], :void],
1582
+ JPH_SoftBodyCreationSettings_GetAllowSleeping: [[:pointer], :bool],
1583
+ JPH_SoftBodyCreationSettings_GetCollisionGroup: [[:pointer, :pointer], :void],
1584
+ JPH_SoftBodyCreationSettings_GetFacesDoubleSided: [[:pointer], :bool],
1585
+ JPH_SoftBodyCreationSettings_GetFriction: [[:pointer], :float],
1586
+ JPH_SoftBodyCreationSettings_GetGravityFactor: [[:pointer], :float],
1587
+ JPH_SoftBodyCreationSettings_GetLinearDamping: [[:pointer], :float],
1588
+ JPH_SoftBodyCreationSettings_GetMakeRotationIdentity: [[:pointer], :bool],
1589
+ JPH_SoftBodyCreationSettings_GetMaxLinearVelocity: [[:pointer], :float],
1590
+ JPH_SoftBodyCreationSettings_GetNumIterations: [[:pointer], :uint32],
1591
+ JPH_SoftBodyCreationSettings_GetObjectLayer: [[:pointer], :uint32],
1592
+ JPH_SoftBodyCreationSettings_GetPosition: [[:pointer, :pointer], :void],
1593
+ JPH_SoftBodyCreationSettings_GetPressure: [[:pointer], :float],
1594
+ JPH_SoftBodyCreationSettings_GetRestitution: [[:pointer], :float],
1595
+ JPH_SoftBodyCreationSettings_GetRotation: [[:pointer, :pointer], :void],
1596
+ JPH_SoftBodyCreationSettings_GetSettings: [[:pointer], :pointer],
1597
+ JPH_SoftBodyCreationSettings_GetUpdatePosition: [[:pointer], :bool],
1598
+ JPH_SoftBodyCreationSettings_GetUserData: [[:pointer], :uint64],
1599
+ JPH_SoftBodyCreationSettings_GetVertexRadius: [[:pointer], :float],
1600
+ JPH_SoftBodyCreationSettings_SetAllowSleeping: [[:pointer, :bool], :void],
1601
+ JPH_SoftBodyCreationSettings_SetCollisionGroup: [[:pointer, :pointer], :void],
1602
+ JPH_SoftBodyCreationSettings_SetFacesDoubleSided: [[:pointer, :bool], :void],
1603
+ JPH_SoftBodyCreationSettings_SetFriction: [[:pointer, :float], :void],
1604
+ JPH_SoftBodyCreationSettings_SetGravityFactor: [[:pointer, :float], :void],
1605
+ JPH_SoftBodyCreationSettings_SetLinearDamping: [[:pointer, :float], :void],
1606
+ JPH_SoftBodyCreationSettings_SetMakeRotationIdentity: [[:pointer, :bool], :void],
1607
+ JPH_SoftBodyCreationSettings_SetMaxLinearVelocity: [[:pointer, :float], :void],
1608
+ JPH_SoftBodyCreationSettings_SetNumIterations: [[:pointer, :uint32], :void],
1609
+ JPH_SoftBodyCreationSettings_SetObjectLayer: [[:pointer, :uint32], :void],
1610
+ JPH_SoftBodyCreationSettings_SetPosition: [[:pointer, :pointer], :void],
1611
+ JPH_SoftBodyCreationSettings_SetPressure: [[:pointer, :float], :void],
1612
+ JPH_SoftBodyCreationSettings_SetRestitution: [[:pointer, :float], :void],
1613
+ JPH_SoftBodyCreationSettings_SetRotation: [[:pointer, :pointer], :void],
1614
+ JPH_SoftBodyCreationSettings_SetSettings: [[:pointer, :pointer], :void],
1615
+ JPH_SoftBodyCreationSettings_SetUpdatePosition: [[:pointer, :bool], :void],
1616
+ JPH_SoftBodyCreationSettings_SetUserData: [[:pointer, :uint64], :void],
1617
+ JPH_SoftBodyCreationSettings_SetVertexRadius: [[:pointer, :float], :void],
1618
+ JPH_SoftBodySharedSettings_AddFace: [[:pointer, :pointer], :void],
1619
+ JPH_SoftBodySharedSettings_AddFaces: [[:pointer, :pointer, :uint32], :void],
1620
+ JPH_SoftBodySharedSettings_AddVertex: [[:pointer, :pointer], :void],
1621
+ JPH_SoftBodySharedSettings_AddVertices: [[:pointer, :pointer, :uint32], :void],
1622
+ JPH_SoftBodySharedSettings_Create: [[], :pointer],
1623
+ JPH_SoftBodySharedSettings_CreateConstraints: [[:pointer, :float, :int], :void],
1624
+ JPH_SoftBodySharedSettings_Destroy: [[:pointer], :void],
1625
+ JPH_SoftBodySharedSettings_GetFace: [[:pointer, :uint32, :pointer], :bool],
1626
+ JPH_SoftBodySharedSettings_GetFaceCount: [[:pointer], :uint32],
1627
+ JPH_SoftBodySharedSettings_GetVertex: [[:pointer, :uint32, :pointer], :bool],
1628
+ JPH_SoftBodySharedSettings_GetVertexCount: [[:pointer], :uint32],
1629
+ JPH_SoftBodySharedSettings_Optimize: [[:pointer], :void],
1630
+ JPH_SoftBodySharedSettings_RemoveFace: [[:pointer, :uint32], :bool],
1631
+ JPH_SoftBodySharedSettings_RemoveVertex: [[:pointer, :uint32], :bool],
1632
+ JPH_SphereShapeSettings_Create: [[:float], :pointer],
1633
+ JPH_SphereShapeSettings_CreateShape: [[:pointer], :pointer],
1634
+ JPH_SphereShapeSettings_GetRadius: [[:pointer], :float],
1635
+ JPH_SphereShapeSettings_SetRadius: [[:pointer, :float], :void],
1636
+ JPH_SphereShape_Create: [[:float], :pointer],
1637
+ JPH_SphereShape_GetRadius: [[:pointer], :float],
1638
+ JPH_StaticCompoundShapeSettings_Create: [[], :pointer],
1639
+ JPH_StaticCompoundShape_Create: [[:pointer], :pointer],
1640
+ JPH_SwingTwistConstraintSettings_Init: [[:pointer], :void],
1641
+ JPH_SwingTwistConstraint_Create: [[:pointer, :pointer, :pointer], :pointer],
1642
+ JPH_SwingTwistConstraint_GetNormalHalfConeAngle: [[:pointer], :float],
1643
+ JPH_SwingTwistConstraint_GetSettings: [[:pointer, :pointer], :void],
1644
+ JPH_SwingTwistConstraint_GetTotalLambdaMotor: [[:pointer, :pointer], :void],
1645
+ JPH_SwingTwistConstraint_GetTotalLambdaPosition: [[:pointer, :pointer], :void],
1646
+ JPH_SwingTwistConstraint_GetTotalLambdaSwingY: [[:pointer], :float],
1647
+ JPH_SwingTwistConstraint_GetTotalLambdaSwingZ: [[:pointer], :float],
1648
+ JPH_SwingTwistConstraint_GetTotalLambdaTwist: [[:pointer], :float],
1649
+ JPH_TaperedCapsuleShapeSettings_Create: [[:float, :float, :float], :pointer],
1650
+ JPH_TaperedCapsuleShapeSettings_CreateShape: [[:pointer], :pointer],
1651
+ JPH_TaperedCapsuleShape_GetBottomRadius: [[:pointer], :float],
1652
+ JPH_TaperedCapsuleShape_GetHalfHeight: [[:pointer], :float],
1653
+ JPH_TaperedCapsuleShape_GetTopRadius: [[:pointer], :float],
1654
+ JPH_TaperedCylinderShapeSettings_Create: [[:float, :float, :float, :float, :pointer], :pointer],
1655
+ JPH_TaperedCylinderShapeSettings_CreateShape: [[:pointer], :pointer],
1656
+ JPH_TaperedCylinderShape_GetBottomRadius: [[:pointer], :float],
1657
+ JPH_TaperedCylinderShape_GetConvexRadius: [[:pointer], :float],
1658
+ JPH_TaperedCylinderShape_GetHalfHeight: [[:pointer], :float],
1659
+ JPH_TaperedCylinderShape_GetTopRadius: [[:pointer], :float],
1660
+ JPH_TempAllocatorMalloc_Create: [[], :pointer],
1661
+ JPH_TempAllocator_Create: [[:uint32], :pointer],
1662
+ JPH_TempAllocator_Destroy: [[:pointer], :void],
1663
+ JPH_TrackedVehicleControllerSettings_Create: [[], :pointer],
1664
+ JPH_TrackedVehicleControllerSettings_GetEngine: [[:pointer, :pointer], :void],
1665
+ JPH_TrackedVehicleControllerSettings_GetTransmission: [[:pointer], :pointer],
1666
+ JPH_TrackedVehicleControllerSettings_SetEngine: [[:pointer, :pointer], :void],
1667
+ JPH_TrackedVehicleControllerSettings_SetTrack: [[:pointer, :uint32, :pointer], :void],
1668
+ JPH_TrackedVehicleControllerSettings_SetTransmission: [[:pointer, :pointer], :void],
1669
+ JPH_TrackedVehicleController_GetBrakeInput: [[:pointer], :float],
1670
+ JPH_TrackedVehicleController_GetEngine: [[:pointer], :pointer],
1671
+ JPH_TrackedVehicleController_GetForwardInput: [[:pointer], :float],
1672
+ JPH_TrackedVehicleController_GetLeftRatio: [[:pointer], :float],
1673
+ JPH_TrackedVehicleController_GetRightRatio: [[:pointer], :float],
1674
+ JPH_TrackedVehicleController_GetTrack: [[:pointer, :int], :pointer],
1675
+ JPH_TrackedVehicleController_GetTransmission: [[:pointer], :pointer],
1676
+ JPH_TrackedVehicleController_SetBrakeInput: [[:pointer, :float], :void],
1677
+ JPH_TrackedVehicleController_SetDriverInput: [[:pointer, :float, :float, :float, :float], :void],
1678
+ JPH_TrackedVehicleController_SetForwardInput: [[:pointer, :float], :void],
1679
+ JPH_TrackedVehicleController_SetLeftRatio: [[:pointer, :float], :void],
1680
+ JPH_TrackedVehicleController_SetRightRatio: [[:pointer, :float], :void],
1681
+ JPH_TriangleShapeSettings_Create: [[:pointer, :pointer, :pointer, :float], :pointer],
1682
+ JPH_TriangleShapeSettings_CreateShape: [[:pointer], :pointer],
1683
+ JPH_TriangleShape_Create: [[:pointer, :pointer, :pointer, :float], :pointer],
1684
+ JPH_TriangleShape_GetConvexRadius: [[:pointer], :float],
1685
+ JPH_TriangleShape_GetVertex1: [[:pointer, :pointer], :void],
1686
+ JPH_TriangleShape_GetVertex2: [[:pointer, :pointer], :void],
1687
+ JPH_TriangleShape_GetVertex3: [[:pointer, :pointer], :void],
1688
+ JPH_TwoBodyConstraint_GetBody1: [[:pointer], :pointer],
1689
+ JPH_TwoBodyConstraint_GetBody2: [[:pointer], :pointer],
1690
+ JPH_TwoBodyConstraint_GetConstraintToBody1Matrix: [[:pointer, :pointer], :void],
1691
+ JPH_TwoBodyConstraint_GetConstraintToBody2Matrix: [[:pointer, :pointer], :void],
1692
+ JPH_Vec3_Abs: [[:pointer, :pointer], :void],
1693
+ JPH_Vec3_Add: [[:pointer, :pointer, :pointer], :void],
1694
+ JPH_Vec3_AxisX: [[:pointer], :void],
1695
+ JPH_Vec3_AxisY: [[:pointer], :void],
1696
+ JPH_Vec3_AxisZ: [[:pointer], :void],
1697
+ JPH_Vec3_Cross: [[:pointer, :pointer, :pointer], :void],
1698
+ JPH_Vec3_Divide: [[:pointer, :pointer, :pointer], :void],
1699
+ JPH_Vec3_DivideScalar: [[:pointer, :float, :pointer], :void],
1700
+ JPH_Vec3_DotProduct: [[:pointer, :pointer, :pointer], :void],
1701
+ JPH_Vec3_GetNormalizedPerpendicular: [[:pointer, :pointer], :void],
1702
+ JPH_Vec3_IsClose: [[:pointer, :pointer, :float], :bool],
1703
+ JPH_Vec3_IsNaN: [[:pointer], :bool],
1704
+ JPH_Vec3_IsNearZero: [[:pointer, :float], :bool],
1705
+ JPH_Vec3_IsNormalized: [[:pointer, :float], :bool],
1706
+ JPH_Vec3_Length: [[:pointer], :float],
1707
+ JPH_Vec3_LengthSquared: [[:pointer], :float],
1708
+ JPH_Vec3_Multiply: [[:pointer, :pointer, :pointer], :void],
1709
+ JPH_Vec3_MultiplyMatrix: [[:pointer, :pointer, :pointer], :void],
1710
+ JPH_Vec3_MultiplyScalar: [[:pointer, :float, :pointer], :void],
1711
+ JPH_Vec3_Negate: [[:pointer, :pointer], :void],
1712
+ JPH_Vec3_Normalize: [[:pointer, :pointer], :void],
1713
+ JPH_Vec3_Normalized: [[:pointer, :pointer], :void],
1714
+ JPH_Vec3_Subtract: [[:pointer, :pointer, :pointer], :void],
1715
+ JPH_VehicleAntiRollBar_Init: [[:pointer], :void],
1716
+ JPH_VehicleCollisionTesterCastCylinder_Create: [[:uint32, :float], :pointer],
1717
+ JPH_VehicleCollisionTesterCastSphere_Create: [[:uint32, :float, :pointer, :float], :pointer],
1718
+ JPH_VehicleCollisionTesterRay_Create: [[:uint32, :pointer, :float], :pointer],
1719
+ JPH_VehicleCollisionTester_Destroy: [[:pointer], :void],
1720
+ JPH_VehicleCollisionTester_GetObjectLayer: [[:pointer], :uint32],
1721
+ JPH_VehicleCollisionTester_SetObjectLayer: [[:pointer, :uint32], :void],
1722
+ JPH_VehicleConstraintSettings_Init: [[:pointer], :void],
1723
+ JPH_VehicleConstraint_AsPhysicsStepListener: [[:pointer], :pointer],
1724
+ JPH_VehicleConstraint_Create: [[:pointer, :pointer], :pointer],
1725
+ JPH_VehicleConstraint_GetController: [[:pointer], :pointer],
1726
+ JPH_VehicleConstraint_GetGravityOverride: [[:pointer, :pointer], :void],
1727
+ JPH_VehicleConstraint_GetLocalForward: [[:pointer, :pointer], :void],
1728
+ JPH_VehicleConstraint_GetLocalUp: [[:pointer, :pointer], :void],
1729
+ JPH_VehicleConstraint_GetVehicleBody: [[:pointer], :pointer],
1730
+ JPH_VehicleConstraint_GetWheel: [[:pointer, :uint32], :pointer],
1731
+ JPH_VehicleConstraint_GetWheelLocalBasis: [[:pointer, :pointer, :pointer, :pointer, :pointer], :void],
1732
+ JPH_VehicleConstraint_GetWheelLocalTransform: [[:pointer, :uint32, :pointer, :pointer, :pointer], :void],
1733
+ JPH_VehicleConstraint_GetWheelWorldTransform: [[:pointer, :uint32, :pointer, :pointer, :pointer], :void],
1734
+ JPH_VehicleConstraint_GetWheelsCount: [[:pointer], :uint32],
1735
+ JPH_VehicleConstraint_GetWorldUp: [[:pointer, :pointer], :void],
1736
+ JPH_VehicleConstraint_IsGravityOverridden: [[:pointer], :bool],
1737
+ JPH_VehicleConstraint_OverrideGravity: [[:pointer, :pointer], :void],
1738
+ JPH_VehicleConstraint_ResetGravityOverride: [[:pointer], :void],
1739
+ JPH_VehicleConstraint_SetMaxPitchRollAngle: [[:pointer, :float], :void],
1740
+ JPH_VehicleConstraint_SetVehicleCollisionTester: [[:pointer, :pointer], :void],
1741
+ JPH_VehicleControllerSettings_Destroy: [[:pointer], :void],
1742
+ JPH_VehicleController_GetConstraint: [[:pointer], :pointer],
1743
+ JPH_VehicleDifferentialSettings_Init: [[:pointer], :void],
1744
+ JPH_VehicleEngineSettings_Init: [[:pointer], :void],
1745
+ JPH_VehicleEngine_AllowSleep: [[:pointer], :bool],
1746
+ JPH_VehicleEngine_ApplyDamping: [[:pointer, :float], :void],
1747
+ JPH_VehicleEngine_ApplyTorque: [[:pointer, :float, :float], :void],
1748
+ JPH_VehicleEngine_ClampRPM: [[:pointer], :void],
1749
+ JPH_VehicleEngine_GetAngularVelocity: [[:pointer], :float],
1750
+ JPH_VehicleEngine_GetCurrentRPM: [[:pointer], :float],
1751
+ JPH_VehicleEngine_GetTorque: [[:pointer, :float], :float],
1752
+ JPH_VehicleEngine_SetCurrentRPM: [[:pointer, :float], :void],
1753
+ JPH_VehicleTrackSettings_Init: [[:pointer], :void],
1754
+ JPH_VehicleTrack_GetAngularDamping: [[:pointer], :float],
1755
+ JPH_VehicleTrack_GetAngularVelocity: [[:pointer], :float],
1756
+ JPH_VehicleTrack_GetDifferentialRatio: [[:pointer], :float],
1757
+ JPH_VehicleTrack_GetDrivenWheel: [[:pointer], :uint32],
1758
+ JPH_VehicleTrack_GetInertia: [[:pointer], :float],
1759
+ JPH_VehicleTrack_GetMaxBrakeTorque: [[:pointer], :float],
1760
+ JPH_VehicleTrack_SetAngularVelocity: [[:pointer, :float], :void],
1761
+ JPH_VehicleTransmissionSettings_Create: [[], :pointer],
1762
+ JPH_VehicleTransmissionSettings_Destroy: [[:pointer], :void],
1763
+ JPH_VehicleTransmissionSettings_GetClutchReleaseTime: [[:pointer], :float],
1764
+ JPH_VehicleTransmissionSettings_GetClutchStrength: [[:pointer], :float],
1765
+ JPH_VehicleTransmissionSettings_GetGearRatio: [[:pointer, :uint32], :float],
1766
+ JPH_VehicleTransmissionSettings_GetGearRatioCount: [[:pointer], :uint32],
1767
+ JPH_VehicleTransmissionSettings_GetGearRatios: [[:pointer], :pointer],
1768
+ JPH_VehicleTransmissionSettings_GetMode: [[:pointer], :int],
1769
+ JPH_VehicleTransmissionSettings_GetReverseGearRatio: [[:pointer, :uint32], :float],
1770
+ JPH_VehicleTransmissionSettings_GetReverseGearRatioCount: [[:pointer], :uint32],
1771
+ JPH_VehicleTransmissionSettings_GetReverseGearRatios: [[:pointer], :pointer],
1772
+ JPH_VehicleTransmissionSettings_GetShiftDownRPM: [[:pointer], :float],
1773
+ JPH_VehicleTransmissionSettings_GetShiftUpRPM: [[:pointer], :float],
1774
+ JPH_VehicleTransmissionSettings_GetSwitchLatency: [[:pointer], :float],
1775
+ JPH_VehicleTransmissionSettings_GetSwitchTime: [[:pointer], :float],
1776
+ JPH_VehicleTransmissionSettings_SetClutchReleaseTime: [[:pointer, :float], :void],
1777
+ JPH_VehicleTransmissionSettings_SetClutchStrength: [[:pointer, :float], :void],
1778
+ JPH_VehicleTransmissionSettings_SetGearRatio: [[:pointer, :uint32, :float], :void],
1779
+ JPH_VehicleTransmissionSettings_SetGearRatios: [[:pointer, :pointer, :uint32], :void],
1780
+ JPH_VehicleTransmissionSettings_SetMode: [[:pointer, :int], :void],
1781
+ JPH_VehicleTransmissionSettings_SetReverseGearRatio: [[:pointer, :uint32, :float], :void],
1782
+ JPH_VehicleTransmissionSettings_SetReverseGearRatios: [[:pointer, :pointer, :uint32], :void],
1783
+ JPH_VehicleTransmissionSettings_SetShiftDownRPM: [[:pointer, :float], :void],
1784
+ JPH_VehicleTransmissionSettings_SetShiftUpRPM: [[:pointer, :float], :void],
1785
+ JPH_VehicleTransmissionSettings_SetSwitchLatency: [[:pointer, :float], :void],
1786
+ JPH_VehicleTransmissionSettings_SetSwitchTime: [[:pointer, :float], :void],
1787
+ JPH_VehicleTransmission_AllowSleep: [[:pointer], :bool],
1788
+ JPH_VehicleTransmission_GetClutchFriction: [[:pointer], :float],
1789
+ JPH_VehicleTransmission_GetCurrentGear: [[:pointer], :int32],
1790
+ JPH_VehicleTransmission_GetCurrentRatio: [[:pointer], :float],
1791
+ JPH_VehicleTransmission_IsSwitchingGear: [[:pointer], :bool],
1792
+ JPH_VehicleTransmission_Set: [[:pointer, :int32, :float], :void],
1793
+ JPH_VehicleTransmission_SetMode: [[:pointer, :int], :void],
1794
+ JPH_VehicleTransmission_Update: [[:pointer, :float, :float, :float, :bool], :void],
1795
+ JPH_WheelSettingsTV_Create: [[], :pointer],
1796
+ JPH_WheelSettingsTV_GetLateralFriction: [[:pointer], :float],
1797
+ JPH_WheelSettingsTV_GetLongitudinalFriction: [[:pointer], :float],
1798
+ JPH_WheelSettingsTV_SetLateralFriction: [[:pointer, :float], :void],
1799
+ JPH_WheelSettingsTV_SetLongitudinalFriction: [[:pointer, :float], :void],
1800
+ JPH_WheelSettingsWV_Create: [[], :pointer],
1801
+ JPH_WheelSettingsWV_GetAngularDamping: [[:pointer], :float],
1802
+ JPH_WheelSettingsWV_GetInertia: [[:pointer], :float],
1803
+ JPH_WheelSettingsWV_GetLateralFriction: [[:pointer], :pointer],
1804
+ JPH_WheelSettingsWV_GetLongitudinalFriction: [[:pointer], :pointer],
1805
+ JPH_WheelSettingsWV_GetMaxBrakeTorque: [[:pointer], :float],
1806
+ JPH_WheelSettingsWV_GetMaxHandBrakeTorque: [[:pointer], :float],
1807
+ JPH_WheelSettingsWV_GetMaxSteerAngle: [[:pointer], :float],
1808
+ JPH_WheelSettingsWV_SetAngularDamping: [[:pointer, :float], :void],
1809
+ JPH_WheelSettingsWV_SetInertia: [[:pointer, :float], :void],
1810
+ JPH_WheelSettingsWV_SetLateralFriction: [[:pointer, :pointer], :void],
1811
+ JPH_WheelSettingsWV_SetLongitudinalFriction: [[:pointer, :pointer], :void],
1812
+ JPH_WheelSettingsWV_SetMaxBrakeTorque: [[:pointer, :float], :void],
1813
+ JPH_WheelSettingsWV_SetMaxHandBrakeTorque: [[:pointer, :float], :void],
1814
+ JPH_WheelSettingsWV_SetMaxSteerAngle: [[:pointer, :float], :void],
1815
+ JPH_WheelSettings_Create: [[], :pointer],
1816
+ JPH_WheelSettings_Destroy: [[:pointer], :void],
1817
+ JPH_WheelSettings_GetEnableSuspensionForcePoint: [[:pointer], :bool],
1818
+ JPH_WheelSettings_GetPosition: [[:pointer, :pointer], :void],
1819
+ JPH_WheelSettings_GetRadius: [[:pointer], :float],
1820
+ JPH_WheelSettings_GetSteeringAxis: [[:pointer, :pointer], :void],
1821
+ JPH_WheelSettings_GetSuspensionDirection: [[:pointer, :pointer], :void],
1822
+ JPH_WheelSettings_GetSuspensionForcePoint: [[:pointer, :pointer], :void],
1823
+ JPH_WheelSettings_GetSuspensionMaxLength: [[:pointer], :float],
1824
+ JPH_WheelSettings_GetSuspensionMinLength: [[:pointer], :float],
1825
+ JPH_WheelSettings_GetSuspensionPreloadLength: [[:pointer], :float],
1826
+ JPH_WheelSettings_GetSuspensionSpring: [[:pointer, :pointer], :void],
1827
+ JPH_WheelSettings_GetWheelForward: [[:pointer, :pointer], :void],
1828
+ JPH_WheelSettings_GetWheelUp: [[:pointer, :pointer], :void],
1829
+ JPH_WheelSettings_GetWidth: [[:pointer], :float],
1830
+ JPH_WheelSettings_SetEnableSuspensionForcePoint: [[:pointer, :bool], :void],
1831
+ JPH_WheelSettings_SetPosition: [[:pointer, :pointer], :void],
1832
+ JPH_WheelSettings_SetRadius: [[:pointer, :float], :void],
1833
+ JPH_WheelSettings_SetSteeringAxis: [[:pointer, :pointer], :void],
1834
+ JPH_WheelSettings_SetSuspensionDirection: [[:pointer, :pointer], :void],
1835
+ JPH_WheelSettings_SetSuspensionForcePoint: [[:pointer, :pointer], :void],
1836
+ JPH_WheelSettings_SetSuspensionMaxLength: [[:pointer, :float], :void],
1837
+ JPH_WheelSettings_SetSuspensionMinLength: [[:pointer, :float], :void],
1838
+ JPH_WheelSettings_SetSuspensionPreloadLength: [[:pointer, :float], :void],
1839
+ JPH_WheelSettings_SetSuspensionSpring: [[:pointer, :pointer], :void],
1840
+ JPH_WheelSettings_SetWheelForward: [[:pointer, :pointer], :void],
1841
+ JPH_WheelSettings_SetWheelUp: [[:pointer, :pointer], :void],
1842
+ JPH_WheelSettings_SetWidth: [[:pointer, :float], :void],
1843
+ JPH_WheelTV_Create: [[:pointer], :pointer],
1844
+ JPH_WheelTV_GetSettings: [[:pointer], :pointer],
1845
+ JPH_WheelWV_ApplyTorque: [[:pointer, :float, :float], :void],
1846
+ JPH_WheelWV_Create: [[:pointer], :pointer],
1847
+ JPH_WheelWV_GetSettings: [[:pointer], :pointer],
1848
+ JPH_Wheel_Create: [[:pointer], :pointer],
1849
+ JPH_Wheel_Destroy: [[:pointer], :void],
1850
+ JPH_Wheel_GetAngularVelocity: [[:pointer], :float],
1851
+ JPH_Wheel_GetContactBodyID: [[:pointer], :uint32],
1852
+ JPH_Wheel_GetContactLateral: [[:pointer, :pointer], :void],
1853
+ JPH_Wheel_GetContactLongitudinal: [[:pointer, :pointer], :void],
1854
+ JPH_Wheel_GetContactNormal: [[:pointer, :pointer], :void],
1855
+ JPH_Wheel_GetContactPointVelocity: [[:pointer, :pointer], :void],
1856
+ JPH_Wheel_GetContactPosition: [[:pointer, :pointer], :void],
1857
+ JPH_Wheel_GetContactSubShapeID: [[:pointer], :uint32],
1858
+ JPH_Wheel_GetLateralLambda: [[:pointer], :float],
1859
+ JPH_Wheel_GetLongitudinalLambda: [[:pointer], :float],
1860
+ JPH_Wheel_GetRotationAngle: [[:pointer], :float],
1861
+ JPH_Wheel_GetSettings: [[:pointer], :pointer],
1862
+ JPH_Wheel_GetSteerAngle: [[:pointer], :float],
1863
+ JPH_Wheel_GetSuspensionLambda: [[:pointer], :float],
1864
+ JPH_Wheel_GetSuspensionLength: [[:pointer], :float],
1865
+ JPH_Wheel_HasContact: [[:pointer], :bool],
1866
+ JPH_Wheel_HasHitHardPoint: [[:pointer], :bool],
1867
+ JPH_Wheel_SetAngularVelocity: [[:pointer, :float], :void],
1868
+ JPH_Wheel_SetRotationAngle: [[:pointer, :float], :void],
1869
+ JPH_Wheel_SetSteerAngle: [[:pointer, :float], :void],
1870
+ JPH_WheeledVehicleControllerSettings_AddDifferential: [[:pointer, :int32, :int32], :void],
1871
+ JPH_WheeledVehicleControllerSettings_Create: [[], :pointer],
1872
+ JPH_WheeledVehicleControllerSettings_GetDifferential: [[:pointer, :uint32, :pointer], :void],
1873
+ JPH_WheeledVehicleControllerSettings_GetDifferentialLimitedSlipRatio: [[:pointer], :float],
1874
+ JPH_WheeledVehicleControllerSettings_GetDifferentialsCount: [[:pointer], :uint32],
1875
+ JPH_WheeledVehicleControllerSettings_GetEngine: [[:pointer, :pointer], :void],
1876
+ JPH_WheeledVehicleControllerSettings_GetTransmission: [[:pointer], :pointer],
1877
+ JPH_WheeledVehicleControllerSettings_SetDifferential: [[:pointer, :uint32, :pointer], :void],
1878
+ JPH_WheeledVehicleControllerSettings_SetDifferentialLimitedSlipRatio: [[:pointer, :float], :void],
1879
+ JPH_WheeledVehicleControllerSettings_SetDifferentials: [[:pointer, :pointer, :uint32], :void],
1880
+ JPH_WheeledVehicleControllerSettings_SetDifferentialsCount: [[:pointer, :uint32], :void],
1881
+ JPH_WheeledVehicleControllerSettings_SetEngine: [[:pointer, :pointer], :void],
1882
+ JPH_WheeledVehicleControllerSettings_SetTransmission: [[:pointer, :pointer], :void],
1883
+ JPH_WheeledVehicleController_GetBrakeInput: [[:pointer], :float],
1884
+ JPH_WheeledVehicleController_GetEngine: [[:pointer], :pointer],
1885
+ JPH_WheeledVehicleController_GetForwardInput: [[:pointer], :float],
1886
+ JPH_WheeledVehicleController_GetHandBrakeInput: [[:pointer], :float],
1887
+ JPH_WheeledVehicleController_GetRightInput: [[:pointer], :float],
1888
+ JPH_WheeledVehicleController_GetTransmission: [[:pointer], :pointer],
1889
+ JPH_WheeledVehicleController_GetWheelSpeedAtClutch: [[:pointer], :float],
1890
+ JPH_WheeledVehicleController_SetBrakeInput: [[:pointer, :float], :void],
1891
+ JPH_WheeledVehicleController_SetDriverInput: [[:pointer, :float, :float, :float, :float], :void],
1892
+ JPH_WheeledVehicleController_SetForwardInput: [[:pointer, :float], :void],
1893
+ JPH_WheeledVehicleController_SetHandBrakeInput: [[:pointer, :float], :void],
1894
+ JPH_WheeledVehicleController_SetRightInput: [[:pointer, :float], :void],
1895
+ JPH_WheeledVehicleController_SetTireMaxImpulseCallback: [[:pointer, :pointer, :pointer], :void],
1896
+ }.freeze
1897
+
1898
+ HEADER_LAYOUTS = {
1899
+ "JPH_BodyActivationListener_Procs" => [16, { on_body_activated: 0, on_body_deactivated: 8 }],
1900
+ "JPH_BodyDrawFilter_Procs" => [8, { should_draw: 0 }],
1901
+ "JPH_BodyFilter_Procs" => [16, { should_collide: 0, should_collide_locked: 8 }],
1902
+ "JPH_BodyLockRead" => [24, { lock_interface: 0, mutex: 8, body: 16 }],
1903
+ "JPH_BodyLockWrite" => [24, { lock_interface: 0, mutex: 8, body: 16 }],
1904
+ "JPH_BroadPhaseCastResult" => [8, { body_id: 0, fraction: 4 }],
1905
+ "JPH_BroadPhaseLayerFilter_Procs" => [8, { should_collide: 0 }],
1906
+ "JPH_CharacterContactListener_Procs" => [88, { on_adjust_body_velocity: 0, on_contact_validate: 8, on_character_contact_validate: 16, on_contact_added: 24, on_contact_persisted: 32, on_contact_removed: 40, on_character_contact_added: 48, on_character_contact_persisted: 56, on_character_contact_removed: 64, on_contact_solve: 72, on_character_contact_solve: 80 }],
1907
+ "JPH_CharacterContactSettings" => [2, { can_push_character: 0, can_receive_impulses: 1 }],
1908
+ "JPH_CharacterVsCharacterCollision_Procs" => [16, { collide_character: 0, cast_character: 8 }],
1909
+ "JPH_CollidePointResult" => [8, { body_id: 0, sub_shape_id2: 4 }],
1910
+ "JPH_CollisionGroup" => [16, { group_filter: 0, group_id: 8, sub_group_id: 12 }],
1911
+ "JPH_ConstraintSettings" => [32, { enabled: 0, constraint_priority: 4, num_velocity_steps_override: 8, num_position_steps_override: 12, draw_constraint_size: 16, user_data: 24 }],
1912
+ "JPH_ContactListener_Procs" => [32, { on_contact_validate: 0, on_contact_added: 8, on_contact_persisted: 16, on_contact_removed: 24 }],
1913
+ "JPH_DebugRenderer_Procs" => [24, { draw_line: 0, draw_triangle: 8, draw_text3_d: 16 }],
1914
+ "JPH_DrawSettings" => [32, { draw_get_support_function: 0, draw_support_direction: 1, draw_get_supporting_face: 2, draw_shape: 3, draw_shape_wireframe: 4, draw_shape_color: 8, draw_bounding_box: 12, draw_center_of_mass_transform: 13, draw_world_transform: 14, draw_velocity: 15, draw_mass_and_inertia: 16, draw_sleep_stats: 17, draw_soft_body_vertices: 18, draw_soft_body_vertex_velocities: 19, draw_soft_body_edge_constraints: 20, draw_soft_body_bend_constraints: 21, draw_soft_body_volume_constraints: 22, draw_soft_body_skin_constraints: 23, draw_soft_body_lra_constraints: 24, draw_soft_body_predicted_bounds: 25, draw_soft_body_constraint_color: 28 }],
1915
+ "JPH_IndexedTriangle" => [20, { i1: 0, i2: 4, i3: 8, material_index: 12, user_data: 16 }],
1916
+ "JPH_IndexedTriangleNoMaterial" => [12, { i1: 0, i2: 4, i3: 8 }],
1917
+ "JPH_JobSystemConfig" => [32, { context: 0, queue_job: 8, queue_jobs: 16, max_concurrency: 24, max_barriers: 28 }],
1918
+ "JPH_ObjectLayerFilter_Procs" => [8, { should_collide: 0 }],
1919
+ "JPH_PhysicsSettings" => [84, { max_in_flight_body_pairs: 0, step_listeners_batch_size: 4, step_listener_batches_per_job: 8, baumgarte: 12, speculative_contact_distance: 16, penetration_slop: 20, linear_cast_threshold: 24, linear_cast_max_penetration: 28, manifold_tolerance: 32, max_penetration_distance: 36, body_pair_cache_max_delta_position_sq: 40, body_pair_cache_cos_max_delta_rotation_div2: 44, contact_normal_cos_max_delta_rotation: 48, contact_point_preserve_lambda_max_dist_sq: 52, num_velocity_steps: 56, num_position_steps: 60, min_velocity_for_restitution: 64, time_before_sleep: 68, point_velocity_sleep_threshold: 72, deterministic_simulation: 76, constraint_warm_start: 77, use_body_pair_contact_cache: 78, use_manifold_reduction: 79, use_large_island_splitter: 80, allow_sleeping: 81, check_active_edges: 82 }],
1920
+ "JPH_PhysicsStepListenerContext" => [24, { delta_time: 0, is_first_step: 4, is_last_step: 8, physics_system: 16 }],
1921
+ "JPH_PhysicsStepListener_Procs" => [8, { on_step: 0 }],
1922
+ "JPH_PhysicsSystemSettings" => [48, { max_bodies: 0, num_body_mutexes: 4, max_body_pairs: 8, max_contact_constraints: 12, padding: 16, broad_phase_layer_interface: 24, object_layer_pair_filter: 32, object_vs_broad_phase_layer_filter: 40 }],
1923
+ "JPH_Point" => [8, { x: 0, y: 4 }],
1924
+ "JPH_Quat" => [16, { x: 0, y: 4, z: 8, w: 12 }],
1925
+ "JPH_RayCastResult" => [12, { body_id: 0, fraction: 4, sub_shape_id2: 8 }],
1926
+ "JPH_RayCastSettings" => [12, { back_face_mode_triangles: 0, back_face_mode_convex: 4, treat_convex_as_solid: 8 }],
1927
+ "JPH_ShapeFilter_Procs" => [16, { should_collide: 0, should_collide2: 8 }],
1928
+ "JPH_SimShapeFilter_Procs" => [8, { should_collide: 0 }],
1929
+ "JPH_SkeletonJoint" => [24, { name: 0, parent_name: 8, parent_joint_index: 16 }],
1930
+ "JPH_SoftFace" => [16, { vertex1: 0, vertex2: 4, vertex3: 8, material_index: 12 }],
1931
+ "JPH_SpringSettings" => [12, { mode: 0, frequency_or_stiffness: 4, damping: 8 }],
1932
+ "JPH_SubShapeIDPair" => [16, { body1_id: 0, sub_shape_id1: 4, body2_id: 8, sub_shape_id2: 12 }],
1933
+ "JPH_Vec3" => [12, { x: 0, y: 4, z: 8 }],
1934
+ "JPH_Vec4" => [16, { x: 0, y: 4, z: 8, w: 12 }],
1935
+ "JPH_VehicleAntiRollBar" => [12, { left_wheel: 0, right_wheel: 4, stiffness: 8 }],
1936
+ "JPH_VehicleDifferentialSettings" => [24, { left_wheel: 0, right_wheel: 4, differential_ratio: 8, left_right_split: 12, limited_slip_ratio: 16, engine_torque_ratio: 20 }],
1937
+ "JPH_VehicleEngineSettings" => [32, { max_torque: 0, min_rpm: 4, max_rpm: 8, normalized_torque: 16, inertia: 24, angular_damping: 28 }],
1938
+ "JPH_VehicleTrackSettings" => [40, { driven_wheel: 0, wheels: 8, wheels_count: 16, inertia: 20, angular_damping: 24, max_brake_torque: 28, differential_ratio: 32 }],
1939
+ "JobSystemThreadPoolConfig" => [12, { max_jobs: 0, max_barriers: 4, num_threads: 8 }],
1940
+ "JPH_AABox" => [24, { min: 0, max: 12 }],
1941
+ "JPH_CharacterContact" => [120, { hash: 0, body_b: 8, character_idb: 12, sub_shape_idb: 16, position: 20, linear_velocity: 32, contact_normal: 44, surface_normal: 56, distance: 68, fraction: 72, motion_type_b: 76, is_sensor_b: 80, character_b: 88, user_data: 96, material: 104, had_collision: 112, was_discarded: 113, can_push_character: 114, is_back_facing_contact: 115 }],
1942
+ "JPH_CollideSettingsBase" => [28, { active_edge_mode: 0, collect_faces_mode: 4, collision_tolerance: 8, penetration_tolerance: 12, active_edge_movement_direction: 16 }],
1943
+ "JPH_CollideShapeResult" => [80, { contact_point_on1: 0, contact_point_on2: 12, penetration_axis: 24, penetration_depth: 36, sub_shape_id1: 40, sub_shape_id2: 44, body_id2: 48, shape1_face_count: 52, shape1_faces: 56, shape2_face_count: 64, shape2_faces: 72 }],
1944
+ "JPH_CollisionEstimationResult" => [112, { linear_velocity1: 0, angular_velocity1: 12, linear_velocity2: 24, angular_velocity2: 36, friction_point: 48, tangent1: 60, tangent2: 72, friction_impulse1: 84, friction_impulse2: 88, angular_friction_impulse: 92, contact_impulse_count: 96, contact_impulses: 104 }],
1945
+ "JPH_ConeConstraintSettings" => [88, { base: 0, space: 32, point1: 36, twist_axis1: 48, point2: 60, twist_axis2: 72, half_cone_angle: 84 }],
1946
+ "JPH_ContactSettings" => [52, { combined_friction: 0, combined_restitution: 4, inv_mass_scale1: 8, inv_inertia_scale1: 12, inv_mass_scale2: 16, inv_inertia_scale2: 20, is_sensor: 24, relative_linear_surface_velocity: 28, relative_angular_surface_velocity: 40 }],
1947
+ "JPH_DistanceConstraintSettings" => [80, { base: 0, space: 32, point1: 36, point2: 48, min_distance: 60, max_distance: 64, limits_spring_settings: 68 }],
1948
+ "JPH_ExtendedUpdateSettings" => [48, { stick_to_floor_step_down: 0, walk_stairs_step_up: 12, walk_stairs_min_step_forward: 24, walk_stairs_step_forward_test: 28, walk_stairs_cos_angle_forward_contact: 32, walk_stairs_step_down_extra: 36 }],
1949
+ "JPH_FixedConstraintSettings" => [112, { base: 0, space: 32, auto_detect_point: 36, point1: 40, axis_x1: 52, axis_y1: 64, point2: 76, axis_x2: 88, axis_y2: 100 }],
1950
+ "JPH_GearConstraintSettings" => [64, { base: 0, space: 32, hinge_axis1: 36, hinge_axis2: 48, ratio: 60 }],
1951
+ "JPH_Mat4" => [64, { column: 0 }],
1952
+ "JPH_MotorSettings" => [28, { spring_settings: 0, min_force_limit: 12, max_force_limit: 16, min_torque_limit: 20, max_torque_limit: 24 }],
1953
+ "JPH_Plane" => [16, { normal: 0, distance: 12 }],
1954
+ "JPH_PointConstraintSettings" => [64, { base: 0, space: 32, point1: 36, point2: 48 }],
1955
+ "JPH_ShapeCastResult" => [60, { contact_point_on1: 0, contact_point_on2: 12, penetration_axis: 24, penetration_depth: 36, sub_shape_id1: 40, sub_shape_id2: 44, body_id2: 48, fraction: 52, is_back_face_hit: 56 }],
1956
+ "JPH_SoftVertex" => [28, { position: 0, velocity: 12, inv_mass: 24 }],
1957
+ "JPH_SupportingFace" => [388, { count: 0, vertices: 4 }],
1958
+ "JPH_Triangle" => [40, { v1: 0, v2: 12, v3: 24, material_index: 36 }],
1959
+ "JPH_VehicleConstraintSettings" => [96, { base: 0, up: 32, forward: 44, max_pitch_roll_angle: 56, wheels_count: 60, wheels: 64, anti_roll_bars_count: 72, anti_roll_bars: 80, controller: 88 }],
1960
+ "JPH_CharacterBaseSettings" => [48, { up: 0, supporting_volume: 12, max_slope_angle: 28, enhanced_internal_edge_removal: 32, shape: 40 }],
1961
+ "JPH_CollideShapeSettings" => [36, { base: 0, max_separation_distance: 28, back_face_mode: 32 }],
1962
+ "JPH_HingeConstraintSettings" => [160, { base: 0, space: 32, point1: 36, hinge_axis1: 48, normal_axis1: 60, point2: 72, hinge_axis2: 84, normal_axis2: 96, limits_min: 108, limits_max: 112, limits_spring_settings: 116, max_friction_torque: 128, motor_settings: 132 }],
1963
+ "JPH_MassProperties" => [68, { mass: 0, inertia: 4 }],
1964
+ "JPH_ShapeCastSettings" => [40, { base: 0, back_face_mode_triangles: 28, back_face_mode_convex: 32, use_shrunken_shape_and_convex_radius: 36, return_deepest_point: 37 }],
1965
+ "JPH_SixDOFConstraintSettings" => [392, { base: 0, space: 32, position1: 36, axis_x1: 48, axis_y1: 60, position2: 72, axis_x2: 84, axis_y2: 96, max_friction: 108, swing_type: 132, limit_min: 136, limit_max: 160, limits_spring_settings: 184, motor_settings: 220 }],
1966
+ "JPH_SliderConstraintSettings" => [168, { base: 0, space: 32, auto_detect_point: 36, point1: 40, slider_axis1: 52, normal_axis1: 64, point2: 76, slider_axis2: 88, normal_axis2: 100, limits_min: 112, limits_max: 116, limits_spring_settings: 120, max_friction_force: 132, motor_settings: 136 }],
1967
+ "JPH_SwingTwistConstraintSettings" => [192, { base: 0, space: 32, position1: 36, twist_axis1: 48, plane_axis1: 60, position2: 72, twist_axis2: 84, plane_axis2: 96, swing_type: 108, normal_half_cone_angle: 112, plane_half_cone_angle: 116, twist_min_angle: 120, twist_max_angle: 124, max_friction_torque: 128, swing_motor_settings: 132, twist_motor_settings: 160 }],
1968
+ "JPH_CharacterSettings" => [72, { base: 0, layer: 48, mass: 52, friction: 56, gravity_factor: 60, allowed_do_fs: 64 }],
1969
+ "JPH_CharacterVirtualSettings" => [128, { base: 0, id: 48, mass: 52, max_strength: 56, shape_offset: 60, back_face_mode: 72, predictive_contact_distance: 76, max_collision_iterations: 80, max_constraint_iterations: 84, min_time_remaining: 88, collision_tolerance: 92, character_padding: 96, max_num_hits: 100, hit_reduction_cos_max_angle: 104, penetration_recovery_speed: 108, inner_body_shape: 112, inner_body_id_override: 120, inner_body_layer: 124 }],
1970
+ }.freeze
1971
+
1972
+ BLOCKING_FUNCTIONS = %i[JPH_PhysicsSystem_Update].freeze
1973
+
1974
+ module_function
1975
+
1976
+ def attach(native, names: FUNCTIONS.keys)
1977
+ missing = []
1978
+ names.each do |name|
1979
+ arguments, result = FUNCTIONS.fetch(name)
1980
+ options = BLOCKING_FUNCTIONS.include?(name) ? { blocking: true } : {}
1981
+ begin
1982
+ native.attach_function(name, arguments, result, **options)
1983
+ rescue FFI::NotFoundError
1984
+ missing << name
1985
+ end
1986
+ end
1987
+ @missing_functions = missing.freeze
1988
+ end
1989
+
1990
+ def missing_functions
1991
+ @missing_functions || [].freeze
1992
+ end
1993
+ end
1994
+ end
1995
+ end