box2d-bindings 0.1.0-arm64-darwin

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.
@@ -0,0 +1,1583 @@
1
+ # Ruby-Box2D : Yet another Box2D wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/box2d-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+
9
+ module Box2D
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ DEFAULT_CATEGORY_BITS = 0x0001
14
+
15
+ # Enum
16
+
17
+ MixingRule_mixAverage = 0
18
+ MixingRule_mixGeometricMean = 1
19
+ MixingRule_mixMultiply = 2
20
+ MixingRule_mixMinimum = 3
21
+ MixingRule_mixMaximum = 4
22
+ BodyType_staticBody = 0
23
+ BodyType_kinematicBody = 1
24
+ BodyType_dynamicBody = 2
25
+ BodyType_bodyTypeCount = 3
26
+ ShapeType_circleShape = 0
27
+ ShapeType_capsuleShape = 1
28
+ ShapeType_segmentShape = 2
29
+ ShapeType_polygonShape = 3
30
+ ShapeType_chainSegmentShape = 4
31
+ ShapeType_shapeTypeCount = 5
32
+ JointType_distanceJoint = 0
33
+ JointType_motorJoint = 1
34
+ JointType_mouseJoint = 2
35
+ JointType_nullJoint = 3
36
+ JointType_prismaticJoint = 4
37
+ JointType_revoluteJoint = 5
38
+ JointType_weldJoint = 6
39
+ JointType_wheelJoint = 7
40
+ HexColor_colorAliceBlue = 15792383
41
+ HexColor_colorAntiqueWhite = 16444375
42
+ HexColor_colorAqua = 65535
43
+ HexColor_colorAquamarine = 8388564
44
+ HexColor_colorAzure = 15794175
45
+ HexColor_colorBeige = 16119260
46
+ HexColor_colorBisque = 16770244
47
+ HexColor_colorBlack = 0
48
+ HexColor_colorBlanchedAlmond = 16772045
49
+ HexColor_colorBlue = 255
50
+ HexColor_colorBlueViolet = 9055202
51
+ HexColor_colorBrown = 10824234
52
+ HexColor_colorBurlywood = 14596231
53
+ HexColor_colorCadetBlue = 6266528
54
+ HexColor_colorChartreuse = 8388352
55
+ HexColor_colorChocolate = 13789470
56
+ HexColor_colorCoral = 16744272
57
+ HexColor_colorCornflowerBlue = 6591981
58
+ HexColor_colorCornsilk = 16775388
59
+ HexColor_colorCrimson = 14423100
60
+ HexColor_colorCyan = 65535
61
+ HexColor_colorDarkBlue = 139
62
+ HexColor_colorDarkCyan = 35723
63
+ HexColor_colorDarkGoldenRod = 12092939
64
+ HexColor_colorDarkGray = 11119017
65
+ HexColor_colorDarkGreen = 25600
66
+ HexColor_colorDarkKhaki = 12433259
67
+ HexColor_colorDarkMagenta = 9109643
68
+ HexColor_colorDarkOliveGreen = 5597999
69
+ HexColor_colorDarkOrange = 16747520
70
+ HexColor_colorDarkOrchid = 10040012
71
+ HexColor_colorDarkRed = 9109504
72
+ HexColor_colorDarkSalmon = 15308410
73
+ HexColor_colorDarkSeaGreen = 9419919
74
+ HexColor_colorDarkSlateBlue = 4734347
75
+ HexColor_colorDarkSlateGray = 3100495
76
+ HexColor_colorDarkTurquoise = 52945
77
+ HexColor_colorDarkViolet = 9699539
78
+ HexColor_colorDeepPink = 16716947
79
+ HexColor_colorDeepSkyBlue = 49151
80
+ HexColor_colorDimGray = 6908265
81
+ HexColor_colorDodgerBlue = 2003199
82
+ HexColor_colorFireBrick = 11674146
83
+ HexColor_colorFloralWhite = 16775920
84
+ HexColor_colorForestGreen = 2263842
85
+ HexColor_colorFuchsia = 16711935
86
+ HexColor_colorGainsboro = 14474460
87
+ HexColor_colorGhostWhite = 16316671
88
+ HexColor_colorGold = 16766720
89
+ HexColor_colorGoldenRod = 14329120
90
+ HexColor_colorGray = 8421504
91
+ HexColor_colorGreen = 32768
92
+ HexColor_colorGreenYellow = 11403055
93
+ HexColor_colorHoneyDew = 15794160
94
+ HexColor_colorHotPink = 16738740
95
+ HexColor_colorIndianRed = 13458524
96
+ HexColor_colorIndigo = 4915330
97
+ HexColor_colorIvory = 16777200
98
+ HexColor_colorKhaki = 15787660
99
+ HexColor_colorLavender = 15132410
100
+ HexColor_colorLavenderBlush = 16773365
101
+ HexColor_colorLawnGreen = 8190976
102
+ HexColor_colorLemonChiffon = 16775885
103
+ HexColor_colorLightBlue = 11393254
104
+ HexColor_colorLightCoral = 15761536
105
+ HexColor_colorLightCyan = 14745599
106
+ HexColor_colorLightGoldenRodYellow = 16448210
107
+ HexColor_colorLightGray = 13882323
108
+ HexColor_colorLightGreen = 9498256
109
+ HexColor_colorLightPink = 16758465
110
+ HexColor_colorLightSalmon = 16752762
111
+ HexColor_colorLightSeaGreen = 2142890
112
+ HexColor_colorLightSkyBlue = 8900346
113
+ HexColor_colorLightSlateGray = 7833753
114
+ HexColor_colorLightSteelBlue = 11584734
115
+ HexColor_colorLightYellow = 16777184
116
+ HexColor_colorLime = 65280
117
+ HexColor_colorLimeGreen = 3329330
118
+ HexColor_colorLinen = 16445670
119
+ HexColor_colorMagenta = 16711935
120
+ HexColor_colorMaroon = 8388608
121
+ HexColor_colorMediumAquaMarine = 6737322
122
+ HexColor_colorMediumBlue = 205
123
+ HexColor_colorMediumOrchid = 12211667
124
+ HexColor_colorMediumPurple = 9662683
125
+ HexColor_colorMediumSeaGreen = 3978097
126
+ HexColor_colorMediumSlateBlue = 8087790
127
+ HexColor_colorMediumSpringGreen = 64154
128
+ HexColor_colorMediumTurquoise = 4772300
129
+ HexColor_colorMediumVioletRed = 13047173
130
+ HexColor_colorMidnightBlue = 1644912
131
+ HexColor_colorMintCream = 16121850
132
+ HexColor_colorMistyRose = 16770273
133
+ HexColor_colorMoccasin = 16770229
134
+ HexColor_colorNavajoWhite = 16768685
135
+ HexColor_colorNavy = 128
136
+ HexColor_colorOldLace = 16643558
137
+ HexColor_colorOlive = 8421376
138
+ HexColor_colorOliveDrab = 7048739
139
+ HexColor_colorOrange = 16753920
140
+ HexColor_colorOrangeRed = 16729344
141
+ HexColor_colorOrchid = 14315734
142
+ HexColor_colorPaleGoldenRod = 15657130
143
+ HexColor_colorPaleGreen = 10025880
144
+ HexColor_colorPaleTurquoise = 11529966
145
+ HexColor_colorPaleVioletRed = 14381203
146
+ HexColor_colorPapayaWhip = 16773077
147
+ HexColor_colorPeachPuff = 16767673
148
+ HexColor_colorPeru = 13468991
149
+ HexColor_colorPink = 16761035
150
+ HexColor_colorPlum = 14524637
151
+ HexColor_colorPowderBlue = 11591910
152
+ HexColor_colorPurple = 8388736
153
+ HexColor_colorRebeccaPurple = 6697881
154
+ HexColor_colorRed = 16711680
155
+ HexColor_colorRosyBrown = 12357519
156
+ HexColor_colorRoyalBlue = 4286945
157
+ HexColor_colorSaddleBrown = 9127187
158
+ HexColor_colorSalmon = 16416882
159
+ HexColor_colorSandyBrown = 16032864
160
+ HexColor_colorSeaGreen = 3050327
161
+ HexColor_colorSeaShell = 16774638
162
+ HexColor_colorSienna = 10506797
163
+ HexColor_colorSilver = 12632256
164
+ HexColor_colorSkyBlue = 8900331
165
+ HexColor_colorSlateBlue = 6970061
166
+ HexColor_colorSlateGray = 7372944
167
+ HexColor_colorSnow = 16775930
168
+ HexColor_colorSpringGreen = 65407
169
+ HexColor_colorSteelBlue = 4620980
170
+ HexColor_colorTan = 13808780
171
+ HexColor_colorTeal = 32896
172
+ HexColor_colorThistle = 14204888
173
+ HexColor_colorTomato = 16737095
174
+ HexColor_colorTurquoise = 4251856
175
+ HexColor_colorViolet = 15631086
176
+ HexColor_colorWheat = 16113331
177
+ HexColor_colorWhite = 16777215
178
+ HexColor_colorWhiteSmoke = 16119285
179
+ HexColor_colorYellow = 16776960
180
+ HexColor_colorYellowGreen = 10145074
181
+ HexColor_colorBox2DRed = 14430514
182
+ HexColor_colorBox2DBlue = 3190463
183
+ HexColor_colorBox2DGreen = 9226532
184
+ HexColor_colorBox2DYellow = 16772748
185
+
186
+ # Typedef
187
+
188
+ typedef :pointer, :b2TaskCallback
189
+ typedef :pointer, :b2EnqueueTaskCallback
190
+ typedef :pointer, :b2FinishTaskCallback
191
+ typedef :int, :b2MixingRule
192
+ typedef :int, :b2BodyType
193
+ typedef :int, :b2ShapeType
194
+ typedef :int, :b2JointType
195
+ typedef :pointer, :b2CustomFilterFcn
196
+ typedef :pointer, :b2PreSolveFcn
197
+ typedef :pointer, :b2OverlapResultFcn
198
+ typedef :pointer, :b2CastResultFcn
199
+ typedef :int, :b2HexColor
200
+
201
+ # Struct
202
+
203
+ class RayResult < FFI::Struct
204
+ layout(
205
+ :shapeId, ShapeId,
206
+ :point, Vec2,
207
+ :normal, Vec2,
208
+ :fraction, :float,
209
+ :nodeVisits, :int,
210
+ :leafVisits, :int,
211
+ :hit, :bool,
212
+ )
213
+ def shapeId = self[:shapeId]
214
+ def shapeId=(v) self[:shapeId] = v end
215
+ def point = self[:point]
216
+ def point=(v) self[:point] = v end
217
+ def normal = self[:normal]
218
+ def normal=(v) self[:normal] = v end
219
+ def fraction = self[:fraction]
220
+ def fraction=(v) self[:fraction] = v end
221
+ def nodeVisits = self[:nodeVisits]
222
+ def nodeVisits=(v) self[:nodeVisits] = v end
223
+ def leafVisits = self[:leafVisits]
224
+ def leafVisits=(v) self[:leafVisits] = v end
225
+ def hit = self[:hit]
226
+ def hit=(v) self[:hit] = v end
227
+ def self.create_as(_shapeId_, _point_, _normal_, _fraction_, _nodeVisits_, _leafVisits_, _hit_)
228
+ instance = RayResult.new
229
+ instance[:shapeId] = _shapeId_
230
+ instance[:point] = _point_
231
+ instance[:normal] = _normal_
232
+ instance[:fraction] = _fraction_
233
+ instance[:nodeVisits] = _nodeVisits_
234
+ instance[:leafVisits] = _leafVisits_
235
+ instance[:hit] = _hit_
236
+ instance
237
+ end
238
+ end
239
+
240
+ class WorldDef < FFI::Struct
241
+ layout(
242
+ :gravity, Vec2,
243
+ :restitutionThreshold, :float,
244
+ :contactPushSpeed, :float,
245
+ :hitEventThreshold, :float,
246
+ :contactHertz, :float,
247
+ :contactDampingRatio, :float,
248
+ :jointHertz, :float,
249
+ :jointDampingRatio, :float,
250
+ :maximumLinearSpeed, :float,
251
+ :frictionMixingRule, :int,
252
+ :restitutionMixingRule, :int,
253
+ :enableSleep, :bool,
254
+ :enableContinuous, :bool,
255
+ :workerCount, :int,
256
+ :enqueueTask, :pointer,
257
+ :finishTask, :pointer,
258
+ :userTaskContext, :pointer,
259
+ :userData, :pointer,
260
+ :internalValue, :int,
261
+ )
262
+ def gravity = self[:gravity]
263
+ def gravity=(v) self[:gravity] = v end
264
+ def restitutionThreshold = self[:restitutionThreshold]
265
+ def restitutionThreshold=(v) self[:restitutionThreshold] = v end
266
+ def contactPushSpeed = self[:contactPushSpeed]
267
+ def contactPushSpeed=(v) self[:contactPushSpeed] = v end
268
+ def hitEventThreshold = self[:hitEventThreshold]
269
+ def hitEventThreshold=(v) self[:hitEventThreshold] = v end
270
+ def contactHertz = self[:contactHertz]
271
+ def contactHertz=(v) self[:contactHertz] = v end
272
+ def contactDampingRatio = self[:contactDampingRatio]
273
+ def contactDampingRatio=(v) self[:contactDampingRatio] = v end
274
+ def jointHertz = self[:jointHertz]
275
+ def jointHertz=(v) self[:jointHertz] = v end
276
+ def jointDampingRatio = self[:jointDampingRatio]
277
+ def jointDampingRatio=(v) self[:jointDampingRatio] = v end
278
+ def maximumLinearSpeed = self[:maximumLinearSpeed]
279
+ def maximumLinearSpeed=(v) self[:maximumLinearSpeed] = v end
280
+ def frictionMixingRule = self[:frictionMixingRule]
281
+ def frictionMixingRule=(v) self[:frictionMixingRule] = v end
282
+ def restitutionMixingRule = self[:restitutionMixingRule]
283
+ def restitutionMixingRule=(v) self[:restitutionMixingRule] = v end
284
+ def enableSleep = self[:enableSleep]
285
+ def enableSleep=(v) self[:enableSleep] = v end
286
+ def enableContinuous = self[:enableContinuous]
287
+ def enableContinuous=(v) self[:enableContinuous] = v end
288
+ def workerCount = self[:workerCount]
289
+ def workerCount=(v) self[:workerCount] = v end
290
+ def enqueueTask = self[:enqueueTask]
291
+ def enqueueTask=(v) self[:enqueueTask] = v end
292
+ def finishTask = self[:finishTask]
293
+ def finishTask=(v) self[:finishTask] = v end
294
+ def userTaskContext = self[:userTaskContext]
295
+ def userTaskContext=(v) self[:userTaskContext] = v end
296
+ def userData = self[:userData]
297
+ def userData=(v) self[:userData] = v end
298
+ def internalValue = self[:internalValue]
299
+ def internalValue=(v) self[:internalValue] = v end
300
+ def self.create_as(_gravity_, _restitutionThreshold_, _contactPushSpeed_, _hitEventThreshold_, _contactHertz_, _contactDampingRatio_, _jointHertz_, _jointDampingRatio_, _maximumLinearSpeed_, _frictionMixingRule_, _restitutionMixingRule_, _enableSleep_, _enableContinuous_, _workerCount_, _enqueueTask_, _finishTask_, _userTaskContext_, _userData_, _internalValue_)
301
+ instance = WorldDef.new
302
+ instance[:gravity] = _gravity_
303
+ instance[:restitutionThreshold] = _restitutionThreshold_
304
+ instance[:contactPushSpeed] = _contactPushSpeed_
305
+ instance[:hitEventThreshold] = _hitEventThreshold_
306
+ instance[:contactHertz] = _contactHertz_
307
+ instance[:contactDampingRatio] = _contactDampingRatio_
308
+ instance[:jointHertz] = _jointHertz_
309
+ instance[:jointDampingRatio] = _jointDampingRatio_
310
+ instance[:maximumLinearSpeed] = _maximumLinearSpeed_
311
+ instance[:frictionMixingRule] = _frictionMixingRule_
312
+ instance[:restitutionMixingRule] = _restitutionMixingRule_
313
+ instance[:enableSleep] = _enableSleep_
314
+ instance[:enableContinuous] = _enableContinuous_
315
+ instance[:workerCount] = _workerCount_
316
+ instance[:enqueueTask] = _enqueueTask_
317
+ instance[:finishTask] = _finishTask_
318
+ instance[:userTaskContext] = _userTaskContext_
319
+ instance[:userData] = _userData_
320
+ instance[:internalValue] = _internalValue_
321
+ instance
322
+ end
323
+ end
324
+
325
+ class BodyDef < FFI::Struct
326
+ layout(
327
+ :type, :int,
328
+ :position, Vec2,
329
+ :rotation, Rot,
330
+ :linearVelocity, Vec2,
331
+ :angularVelocity, :float,
332
+ :linearDamping, :float,
333
+ :angularDamping, :float,
334
+ :gravityScale, :float,
335
+ :sleepThreshold, :float,
336
+ :userData, :pointer,
337
+ :enableSleep, :bool,
338
+ :isAwake, :bool,
339
+ :fixedRotation, :bool,
340
+ :isBullet, :bool,
341
+ :isEnabled, :bool,
342
+ :allowFastRotation, :bool,
343
+ :internalValue, :int,
344
+ )
345
+ def type = self[:type]
346
+ def type=(v) self[:type] = v end
347
+ def position = self[:position]
348
+ def position=(v) self[:position] = v end
349
+ def rotation = self[:rotation]
350
+ def rotation=(v) self[:rotation] = v end
351
+ def linearVelocity = self[:linearVelocity]
352
+ def linearVelocity=(v) self[:linearVelocity] = v end
353
+ def angularVelocity = self[:angularVelocity]
354
+ def angularVelocity=(v) self[:angularVelocity] = v end
355
+ def linearDamping = self[:linearDamping]
356
+ def linearDamping=(v) self[:linearDamping] = v end
357
+ def angularDamping = self[:angularDamping]
358
+ def angularDamping=(v) self[:angularDamping] = v end
359
+ def gravityScale = self[:gravityScale]
360
+ def gravityScale=(v) self[:gravityScale] = v end
361
+ def sleepThreshold = self[:sleepThreshold]
362
+ def sleepThreshold=(v) self[:sleepThreshold] = v end
363
+ def userData = self[:userData]
364
+ def userData=(v) self[:userData] = v end
365
+ def enableSleep = self[:enableSleep]
366
+ def enableSleep=(v) self[:enableSleep] = v end
367
+ def isAwake = self[:isAwake]
368
+ def isAwake=(v) self[:isAwake] = v end
369
+ def fixedRotation = self[:fixedRotation]
370
+ def fixedRotation=(v) self[:fixedRotation] = v end
371
+ def isBullet = self[:isBullet]
372
+ def isBullet=(v) self[:isBullet] = v end
373
+ def isEnabled = self[:isEnabled]
374
+ def isEnabled=(v) self[:isEnabled] = v end
375
+ def allowFastRotation = self[:allowFastRotation]
376
+ def allowFastRotation=(v) self[:allowFastRotation] = v end
377
+ def internalValue = self[:internalValue]
378
+ def internalValue=(v) self[:internalValue] = v end
379
+ def self.create_as(_type_, _position_, _rotation_, _linearVelocity_, _angularVelocity_, _linearDamping_, _angularDamping_, _gravityScale_, _sleepThreshold_, _userData_, _enableSleep_, _isAwake_, _fixedRotation_, _isBullet_, _isEnabled_, _allowFastRotation_, _internalValue_)
380
+ instance = BodyDef.new
381
+ instance[:type] = _type_
382
+ instance[:position] = _position_
383
+ instance[:rotation] = _rotation_
384
+ instance[:linearVelocity] = _linearVelocity_
385
+ instance[:angularVelocity] = _angularVelocity_
386
+ instance[:linearDamping] = _linearDamping_
387
+ instance[:angularDamping] = _angularDamping_
388
+ instance[:gravityScale] = _gravityScale_
389
+ instance[:sleepThreshold] = _sleepThreshold_
390
+ instance[:userData] = _userData_
391
+ instance[:enableSleep] = _enableSleep_
392
+ instance[:isAwake] = _isAwake_
393
+ instance[:fixedRotation] = _fixedRotation_
394
+ instance[:isBullet] = _isBullet_
395
+ instance[:isEnabled] = _isEnabled_
396
+ instance[:allowFastRotation] = _allowFastRotation_
397
+ instance[:internalValue] = _internalValue_
398
+ instance
399
+ end
400
+ end
401
+
402
+ class Filter < FFI::Struct
403
+ layout(
404
+ :categoryBits, :ulong_long,
405
+ :maskBits, :ulong_long,
406
+ :groupIndex, :int,
407
+ )
408
+ def categoryBits = self[:categoryBits]
409
+ def categoryBits=(v) self[:categoryBits] = v end
410
+ def maskBits = self[:maskBits]
411
+ def maskBits=(v) self[:maskBits] = v end
412
+ def groupIndex = self[:groupIndex]
413
+ def groupIndex=(v) self[:groupIndex] = v end
414
+ def self.create_as(_categoryBits_, _maskBits_, _groupIndex_)
415
+ instance = Filter.new
416
+ instance[:categoryBits] = _categoryBits_
417
+ instance[:maskBits] = _maskBits_
418
+ instance[:groupIndex] = _groupIndex_
419
+ instance
420
+ end
421
+ end
422
+
423
+ class QueryFilter < FFI::Struct
424
+ layout(
425
+ :categoryBits, :ulong_long,
426
+ :maskBits, :ulong_long,
427
+ )
428
+ def categoryBits = self[:categoryBits]
429
+ def categoryBits=(v) self[:categoryBits] = v end
430
+ def maskBits = self[:maskBits]
431
+ def maskBits=(v) self[:maskBits] = v end
432
+ def self.create_as(_categoryBits_, _maskBits_)
433
+ instance = QueryFilter.new
434
+ instance[:categoryBits] = _categoryBits_
435
+ instance[:maskBits] = _maskBits_
436
+ instance
437
+ end
438
+ end
439
+
440
+ class ShapeDef < FFI::Struct
441
+ layout(
442
+ :userData, :pointer,
443
+ :friction, :float,
444
+ :restitution, :float,
445
+ :rollingResistance, :float,
446
+ :density, :float,
447
+ :filter, Filter,
448
+ :customColor, :uint,
449
+ :isSensor, :bool,
450
+ :enableSensorEvents, :bool,
451
+ :enableContactEvents, :bool,
452
+ :enableHitEvents, :bool,
453
+ :enablePreSolveEvents, :bool,
454
+ :invokeContactCreation, :bool,
455
+ :updateBodyMass, :bool,
456
+ :internalValue, :int,
457
+ )
458
+ def userData = self[:userData]
459
+ def userData=(v) self[:userData] = v end
460
+ def friction = self[:friction]
461
+ def friction=(v) self[:friction] = v end
462
+ def restitution = self[:restitution]
463
+ def restitution=(v) self[:restitution] = v end
464
+ def rollingResistance = self[:rollingResistance]
465
+ def rollingResistance=(v) self[:rollingResistance] = v end
466
+ def density = self[:density]
467
+ def density=(v) self[:density] = v end
468
+ def filter = self[:filter]
469
+ def filter=(v) self[:filter] = v end
470
+ def customColor = self[:customColor]
471
+ def customColor=(v) self[:customColor] = v end
472
+ def isSensor = self[:isSensor]
473
+ def isSensor=(v) self[:isSensor] = v end
474
+ def enableSensorEvents = self[:enableSensorEvents]
475
+ def enableSensorEvents=(v) self[:enableSensorEvents] = v end
476
+ def enableContactEvents = self[:enableContactEvents]
477
+ def enableContactEvents=(v) self[:enableContactEvents] = v end
478
+ def enableHitEvents = self[:enableHitEvents]
479
+ def enableHitEvents=(v) self[:enableHitEvents] = v end
480
+ def enablePreSolveEvents = self[:enablePreSolveEvents]
481
+ def enablePreSolveEvents=(v) self[:enablePreSolveEvents] = v end
482
+ def invokeContactCreation = self[:invokeContactCreation]
483
+ def invokeContactCreation=(v) self[:invokeContactCreation] = v end
484
+ def updateBodyMass = self[:updateBodyMass]
485
+ def updateBodyMass=(v) self[:updateBodyMass] = v end
486
+ def internalValue = self[:internalValue]
487
+ def internalValue=(v) self[:internalValue] = v end
488
+ def self.create_as(_userData_, _friction_, _restitution_, _rollingResistance_, _density_, _filter_, _customColor_, _isSensor_, _enableSensorEvents_, _enableContactEvents_, _enableHitEvents_, _enablePreSolveEvents_, _invokeContactCreation_, _updateBodyMass_, _internalValue_)
489
+ instance = ShapeDef.new
490
+ instance[:userData] = _userData_
491
+ instance[:friction] = _friction_
492
+ instance[:restitution] = _restitution_
493
+ instance[:rollingResistance] = _rollingResistance_
494
+ instance[:density] = _density_
495
+ instance[:filter] = _filter_
496
+ instance[:customColor] = _customColor_
497
+ instance[:isSensor] = _isSensor_
498
+ instance[:enableSensorEvents] = _enableSensorEvents_
499
+ instance[:enableContactEvents] = _enableContactEvents_
500
+ instance[:enableHitEvents] = _enableHitEvents_
501
+ instance[:enablePreSolveEvents] = _enablePreSolveEvents_
502
+ instance[:invokeContactCreation] = _invokeContactCreation_
503
+ instance[:updateBodyMass] = _updateBodyMass_
504
+ instance[:internalValue] = _internalValue_
505
+ instance
506
+ end
507
+ end
508
+
509
+ class ChainDef < FFI::Struct
510
+ layout(
511
+ :userData, :pointer,
512
+ :points, :pointer,
513
+ :count, :int,
514
+ :friction, :float,
515
+ :restitution, :float,
516
+ :filter, Filter,
517
+ :customColor, :uint,
518
+ :isLoop, :bool,
519
+ :internalValue, :int,
520
+ )
521
+ def userData = self[:userData]
522
+ def userData=(v) self[:userData] = v end
523
+ def points = self[:points]
524
+ def points=(v) self[:points] = v end
525
+ def count = self[:count]
526
+ def count=(v) self[:count] = v end
527
+ def friction = self[:friction]
528
+ def friction=(v) self[:friction] = v end
529
+ def restitution = self[:restitution]
530
+ def restitution=(v) self[:restitution] = v end
531
+ def filter = self[:filter]
532
+ def filter=(v) self[:filter] = v end
533
+ def customColor = self[:customColor]
534
+ def customColor=(v) self[:customColor] = v end
535
+ def isLoop = self[:isLoop]
536
+ def isLoop=(v) self[:isLoop] = v end
537
+ def internalValue = self[:internalValue]
538
+ def internalValue=(v) self[:internalValue] = v end
539
+ def self.create_as(_userData_, _points_, _count_, _friction_, _restitution_, _filter_, _customColor_, _isLoop_, _internalValue_)
540
+ instance = ChainDef.new
541
+ instance[:userData] = _userData_
542
+ instance[:points] = _points_
543
+ instance[:count] = _count_
544
+ instance[:friction] = _friction_
545
+ instance[:restitution] = _restitution_
546
+ instance[:filter] = _filter_
547
+ instance[:customColor] = _customColor_
548
+ instance[:isLoop] = _isLoop_
549
+ instance[:internalValue] = _internalValue_
550
+ instance
551
+ end
552
+ end
553
+
554
+ class Profile < FFI::Struct
555
+ layout(
556
+ :step, :float,
557
+ :pairs, :float,
558
+ :collide, :float,
559
+ :solve, :float,
560
+ :buildIslands, :float,
561
+ :solveConstraints, :float,
562
+ :prepareTasks, :float,
563
+ :solverTasks, :float,
564
+ :prepareConstraints, :float,
565
+ :integrateVelocities, :float,
566
+ :warmStart, :float,
567
+ :solveVelocities, :float,
568
+ :integratePositions, :float,
569
+ :relaxVelocities, :float,
570
+ :applyRestitution, :float,
571
+ :storeImpulses, :float,
572
+ :finalizeBodies, :float,
573
+ :splitIslands, :float,
574
+ :sleepIslands, :float,
575
+ :hitEvents, :float,
576
+ :broadphase, :float,
577
+ :continuous, :float,
578
+ )
579
+ def step = self[:step]
580
+ def step=(v) self[:step] = v end
581
+ def pairs = self[:pairs]
582
+ def pairs=(v) self[:pairs] = v end
583
+ def collide = self[:collide]
584
+ def collide=(v) self[:collide] = v end
585
+ def solve = self[:solve]
586
+ def solve=(v) self[:solve] = v end
587
+ def buildIslands = self[:buildIslands]
588
+ def buildIslands=(v) self[:buildIslands] = v end
589
+ def solveConstraints = self[:solveConstraints]
590
+ def solveConstraints=(v) self[:solveConstraints] = v end
591
+ def prepareTasks = self[:prepareTasks]
592
+ def prepareTasks=(v) self[:prepareTasks] = v end
593
+ def solverTasks = self[:solverTasks]
594
+ def solverTasks=(v) self[:solverTasks] = v end
595
+ def prepareConstraints = self[:prepareConstraints]
596
+ def prepareConstraints=(v) self[:prepareConstraints] = v end
597
+ def integrateVelocities = self[:integrateVelocities]
598
+ def integrateVelocities=(v) self[:integrateVelocities] = v end
599
+ def warmStart = self[:warmStart]
600
+ def warmStart=(v) self[:warmStart] = v end
601
+ def solveVelocities = self[:solveVelocities]
602
+ def solveVelocities=(v) self[:solveVelocities] = v end
603
+ def integratePositions = self[:integratePositions]
604
+ def integratePositions=(v) self[:integratePositions] = v end
605
+ def relaxVelocities = self[:relaxVelocities]
606
+ def relaxVelocities=(v) self[:relaxVelocities] = v end
607
+ def applyRestitution = self[:applyRestitution]
608
+ def applyRestitution=(v) self[:applyRestitution] = v end
609
+ def storeImpulses = self[:storeImpulses]
610
+ def storeImpulses=(v) self[:storeImpulses] = v end
611
+ def finalizeBodies = self[:finalizeBodies]
612
+ def finalizeBodies=(v) self[:finalizeBodies] = v end
613
+ def splitIslands = self[:splitIslands]
614
+ def splitIslands=(v) self[:splitIslands] = v end
615
+ def sleepIslands = self[:sleepIslands]
616
+ def sleepIslands=(v) self[:sleepIslands] = v end
617
+ def hitEvents = self[:hitEvents]
618
+ def hitEvents=(v) self[:hitEvents] = v end
619
+ def broadphase = self[:broadphase]
620
+ def broadphase=(v) self[:broadphase] = v end
621
+ def continuous = self[:continuous]
622
+ def continuous=(v) self[:continuous] = v end
623
+ def self.create_as(_step_, _pairs_, _collide_, _solve_, _buildIslands_, _solveConstraints_, _prepareTasks_, _solverTasks_, _prepareConstraints_, _integrateVelocities_, _warmStart_, _solveVelocities_, _integratePositions_, _relaxVelocities_, _applyRestitution_, _storeImpulses_, _finalizeBodies_, _splitIslands_, _sleepIslands_, _hitEvents_, _broadphase_, _continuous_)
624
+ instance = Profile.new
625
+ instance[:step] = _step_
626
+ instance[:pairs] = _pairs_
627
+ instance[:collide] = _collide_
628
+ instance[:solve] = _solve_
629
+ instance[:buildIslands] = _buildIslands_
630
+ instance[:solveConstraints] = _solveConstraints_
631
+ instance[:prepareTasks] = _prepareTasks_
632
+ instance[:solverTasks] = _solverTasks_
633
+ instance[:prepareConstraints] = _prepareConstraints_
634
+ instance[:integrateVelocities] = _integrateVelocities_
635
+ instance[:warmStart] = _warmStart_
636
+ instance[:solveVelocities] = _solveVelocities_
637
+ instance[:integratePositions] = _integratePositions_
638
+ instance[:relaxVelocities] = _relaxVelocities_
639
+ instance[:applyRestitution] = _applyRestitution_
640
+ instance[:storeImpulses] = _storeImpulses_
641
+ instance[:finalizeBodies] = _finalizeBodies_
642
+ instance[:splitIslands] = _splitIslands_
643
+ instance[:sleepIslands] = _sleepIslands_
644
+ instance[:hitEvents] = _hitEvents_
645
+ instance[:broadphase] = _broadphase_
646
+ instance[:continuous] = _continuous_
647
+ instance
648
+ end
649
+ end
650
+
651
+ class Counters < FFI::Struct
652
+ layout(
653
+ :bodyCount, :int,
654
+ :shapeCount, :int,
655
+ :contactCount, :int,
656
+ :jointCount, :int,
657
+ :islandCount, :int,
658
+ :stackUsed, :int,
659
+ :staticTreeHeight, :int,
660
+ :treeHeight, :int,
661
+ :byteCount, :int,
662
+ :taskCount, :int,
663
+ :colorCounts, [:int, 12],
664
+ )
665
+ def bodyCount = self[:bodyCount]
666
+ def bodyCount=(v) self[:bodyCount] = v end
667
+ def shapeCount = self[:shapeCount]
668
+ def shapeCount=(v) self[:shapeCount] = v end
669
+ def contactCount = self[:contactCount]
670
+ def contactCount=(v) self[:contactCount] = v end
671
+ def jointCount = self[:jointCount]
672
+ def jointCount=(v) self[:jointCount] = v end
673
+ def islandCount = self[:islandCount]
674
+ def islandCount=(v) self[:islandCount] = v end
675
+ def stackUsed = self[:stackUsed]
676
+ def stackUsed=(v) self[:stackUsed] = v end
677
+ def staticTreeHeight = self[:staticTreeHeight]
678
+ def staticTreeHeight=(v) self[:staticTreeHeight] = v end
679
+ def treeHeight = self[:treeHeight]
680
+ def treeHeight=(v) self[:treeHeight] = v end
681
+ def byteCount = self[:byteCount]
682
+ def byteCount=(v) self[:byteCount] = v end
683
+ def taskCount = self[:taskCount]
684
+ def taskCount=(v) self[:taskCount] = v end
685
+ def colorCounts = self[:colorCounts]
686
+ def colorCounts=(v) self[:colorCounts] = v end
687
+ def self.create_as(_bodyCount_, _shapeCount_, _contactCount_, _jointCount_, _islandCount_, _stackUsed_, _staticTreeHeight_, _treeHeight_, _byteCount_, _taskCount_, _colorCounts_)
688
+ instance = Counters.new
689
+ instance[:bodyCount] = _bodyCount_
690
+ instance[:shapeCount] = _shapeCount_
691
+ instance[:contactCount] = _contactCount_
692
+ instance[:jointCount] = _jointCount_
693
+ instance[:islandCount] = _islandCount_
694
+ instance[:stackUsed] = _stackUsed_
695
+ instance[:staticTreeHeight] = _staticTreeHeight_
696
+ instance[:treeHeight] = _treeHeight_
697
+ instance[:byteCount] = _byteCount_
698
+ instance[:taskCount] = _taskCount_
699
+ instance[:colorCounts] = _colorCounts_
700
+ instance
701
+ end
702
+ end
703
+
704
+ class DistanceJointDef < FFI::Struct
705
+ layout(
706
+ :bodyIdA, BodyId,
707
+ :bodyIdB, BodyId,
708
+ :localAnchorA, Vec2,
709
+ :localAnchorB, Vec2,
710
+ :length, :float,
711
+ :enableSpring, :bool,
712
+ :hertz, :float,
713
+ :dampingRatio, :float,
714
+ :enableLimit, :bool,
715
+ :minLength, :float,
716
+ :maxLength, :float,
717
+ :enableMotor, :bool,
718
+ :maxMotorForce, :float,
719
+ :motorSpeed, :float,
720
+ :collideConnected, :bool,
721
+ :userData, :pointer,
722
+ :internalValue, :int,
723
+ )
724
+ def bodyIdA = self[:bodyIdA]
725
+ def bodyIdA=(v) self[:bodyIdA] = v end
726
+ def bodyIdB = self[:bodyIdB]
727
+ def bodyIdB=(v) self[:bodyIdB] = v end
728
+ def localAnchorA = self[:localAnchorA]
729
+ def localAnchorA=(v) self[:localAnchorA] = v end
730
+ def localAnchorB = self[:localAnchorB]
731
+ def localAnchorB=(v) self[:localAnchorB] = v end
732
+ def length = self[:length]
733
+ def length=(v) self[:length] = v end
734
+ def enableSpring = self[:enableSpring]
735
+ def enableSpring=(v) self[:enableSpring] = v end
736
+ def hertz = self[:hertz]
737
+ def hertz=(v) self[:hertz] = v end
738
+ def dampingRatio = self[:dampingRatio]
739
+ def dampingRatio=(v) self[:dampingRatio] = v end
740
+ def enableLimit = self[:enableLimit]
741
+ def enableLimit=(v) self[:enableLimit] = v end
742
+ def minLength = self[:minLength]
743
+ def minLength=(v) self[:minLength] = v end
744
+ def maxLength = self[:maxLength]
745
+ def maxLength=(v) self[:maxLength] = v end
746
+ def enableMotor = self[:enableMotor]
747
+ def enableMotor=(v) self[:enableMotor] = v end
748
+ def maxMotorForce = self[:maxMotorForce]
749
+ def maxMotorForce=(v) self[:maxMotorForce] = v end
750
+ def motorSpeed = self[:motorSpeed]
751
+ def motorSpeed=(v) self[:motorSpeed] = v end
752
+ def collideConnected = self[:collideConnected]
753
+ def collideConnected=(v) self[:collideConnected] = v end
754
+ def userData = self[:userData]
755
+ def userData=(v) self[:userData] = v end
756
+ def internalValue = self[:internalValue]
757
+ def internalValue=(v) self[:internalValue] = v end
758
+ def self.create_as(_bodyIdA_, _bodyIdB_, _localAnchorA_, _localAnchorB_, _length_, _enableSpring_, _hertz_, _dampingRatio_, _enableLimit_, _minLength_, _maxLength_, _enableMotor_, _maxMotorForce_, _motorSpeed_, _collideConnected_, _userData_, _internalValue_)
759
+ instance = DistanceJointDef.new
760
+ instance[:bodyIdA] = _bodyIdA_
761
+ instance[:bodyIdB] = _bodyIdB_
762
+ instance[:localAnchorA] = _localAnchorA_
763
+ instance[:localAnchorB] = _localAnchorB_
764
+ instance[:length] = _length_
765
+ instance[:enableSpring] = _enableSpring_
766
+ instance[:hertz] = _hertz_
767
+ instance[:dampingRatio] = _dampingRatio_
768
+ instance[:enableLimit] = _enableLimit_
769
+ instance[:minLength] = _minLength_
770
+ instance[:maxLength] = _maxLength_
771
+ instance[:enableMotor] = _enableMotor_
772
+ instance[:maxMotorForce] = _maxMotorForce_
773
+ instance[:motorSpeed] = _motorSpeed_
774
+ instance[:collideConnected] = _collideConnected_
775
+ instance[:userData] = _userData_
776
+ instance[:internalValue] = _internalValue_
777
+ instance
778
+ end
779
+ end
780
+
781
+ class MotorJointDef < FFI::Struct
782
+ layout(
783
+ :bodyIdA, BodyId,
784
+ :bodyIdB, BodyId,
785
+ :linearOffset, Vec2,
786
+ :angularOffset, :float,
787
+ :maxForce, :float,
788
+ :maxTorque, :float,
789
+ :correctionFactor, :float,
790
+ :collideConnected, :bool,
791
+ :userData, :pointer,
792
+ :internalValue, :int,
793
+ )
794
+ def bodyIdA = self[:bodyIdA]
795
+ def bodyIdA=(v) self[:bodyIdA] = v end
796
+ def bodyIdB = self[:bodyIdB]
797
+ def bodyIdB=(v) self[:bodyIdB] = v end
798
+ def linearOffset = self[:linearOffset]
799
+ def linearOffset=(v) self[:linearOffset] = v end
800
+ def angularOffset = self[:angularOffset]
801
+ def angularOffset=(v) self[:angularOffset] = v end
802
+ def maxForce = self[:maxForce]
803
+ def maxForce=(v) self[:maxForce] = v end
804
+ def maxTorque = self[:maxTorque]
805
+ def maxTorque=(v) self[:maxTorque] = v end
806
+ def correctionFactor = self[:correctionFactor]
807
+ def correctionFactor=(v) self[:correctionFactor] = v end
808
+ def collideConnected = self[:collideConnected]
809
+ def collideConnected=(v) self[:collideConnected] = v end
810
+ def userData = self[:userData]
811
+ def userData=(v) self[:userData] = v end
812
+ def internalValue = self[:internalValue]
813
+ def internalValue=(v) self[:internalValue] = v end
814
+ def self.create_as(_bodyIdA_, _bodyIdB_, _linearOffset_, _angularOffset_, _maxForce_, _maxTorque_, _correctionFactor_, _collideConnected_, _userData_, _internalValue_)
815
+ instance = MotorJointDef.new
816
+ instance[:bodyIdA] = _bodyIdA_
817
+ instance[:bodyIdB] = _bodyIdB_
818
+ instance[:linearOffset] = _linearOffset_
819
+ instance[:angularOffset] = _angularOffset_
820
+ instance[:maxForce] = _maxForce_
821
+ instance[:maxTorque] = _maxTorque_
822
+ instance[:correctionFactor] = _correctionFactor_
823
+ instance[:collideConnected] = _collideConnected_
824
+ instance[:userData] = _userData_
825
+ instance[:internalValue] = _internalValue_
826
+ instance
827
+ end
828
+ end
829
+
830
+ class MouseJointDef < FFI::Struct
831
+ layout(
832
+ :bodyIdA, BodyId,
833
+ :bodyIdB, BodyId,
834
+ :target, Vec2,
835
+ :hertz, :float,
836
+ :dampingRatio, :float,
837
+ :maxForce, :float,
838
+ :collideConnected, :bool,
839
+ :userData, :pointer,
840
+ :internalValue, :int,
841
+ )
842
+ def bodyIdA = self[:bodyIdA]
843
+ def bodyIdA=(v) self[:bodyIdA] = v end
844
+ def bodyIdB = self[:bodyIdB]
845
+ def bodyIdB=(v) self[:bodyIdB] = v end
846
+ def target = self[:target]
847
+ def target=(v) self[:target] = v end
848
+ def hertz = self[:hertz]
849
+ def hertz=(v) self[:hertz] = v end
850
+ def dampingRatio = self[:dampingRatio]
851
+ def dampingRatio=(v) self[:dampingRatio] = v end
852
+ def maxForce = self[:maxForce]
853
+ def maxForce=(v) self[:maxForce] = v end
854
+ def collideConnected = self[:collideConnected]
855
+ def collideConnected=(v) self[:collideConnected] = v end
856
+ def userData = self[:userData]
857
+ def userData=(v) self[:userData] = v end
858
+ def internalValue = self[:internalValue]
859
+ def internalValue=(v) self[:internalValue] = v end
860
+ def self.create_as(_bodyIdA_, _bodyIdB_, _target_, _hertz_, _dampingRatio_, _maxForce_, _collideConnected_, _userData_, _internalValue_)
861
+ instance = MouseJointDef.new
862
+ instance[:bodyIdA] = _bodyIdA_
863
+ instance[:bodyIdB] = _bodyIdB_
864
+ instance[:target] = _target_
865
+ instance[:hertz] = _hertz_
866
+ instance[:dampingRatio] = _dampingRatio_
867
+ instance[:maxForce] = _maxForce_
868
+ instance[:collideConnected] = _collideConnected_
869
+ instance[:userData] = _userData_
870
+ instance[:internalValue] = _internalValue_
871
+ instance
872
+ end
873
+ end
874
+
875
+ class NullJointDef < FFI::Struct
876
+ layout(
877
+ :bodyIdA, BodyId,
878
+ :bodyIdB, BodyId,
879
+ :userData, :pointer,
880
+ :internalValue, :int,
881
+ )
882
+ def bodyIdA = self[:bodyIdA]
883
+ def bodyIdA=(v) self[:bodyIdA] = v end
884
+ def bodyIdB = self[:bodyIdB]
885
+ def bodyIdB=(v) self[:bodyIdB] = v end
886
+ def userData = self[:userData]
887
+ def userData=(v) self[:userData] = v end
888
+ def internalValue = self[:internalValue]
889
+ def internalValue=(v) self[:internalValue] = v end
890
+ def self.create_as(_bodyIdA_, _bodyIdB_, _userData_, _internalValue_)
891
+ instance = NullJointDef.new
892
+ instance[:bodyIdA] = _bodyIdA_
893
+ instance[:bodyIdB] = _bodyIdB_
894
+ instance[:userData] = _userData_
895
+ instance[:internalValue] = _internalValue_
896
+ instance
897
+ end
898
+ end
899
+
900
+ class PrismaticJointDef < FFI::Struct
901
+ layout(
902
+ :bodyIdA, BodyId,
903
+ :bodyIdB, BodyId,
904
+ :localAnchorA, Vec2,
905
+ :localAnchorB, Vec2,
906
+ :localAxisA, Vec2,
907
+ :referenceAngle, :float,
908
+ :enableSpring, :bool,
909
+ :hertz, :float,
910
+ :dampingRatio, :float,
911
+ :enableLimit, :bool,
912
+ :lowerTranslation, :float,
913
+ :upperTranslation, :float,
914
+ :enableMotor, :bool,
915
+ :maxMotorForce, :float,
916
+ :motorSpeed, :float,
917
+ :collideConnected, :bool,
918
+ :userData, :pointer,
919
+ :internalValue, :int,
920
+ )
921
+ def bodyIdA = self[:bodyIdA]
922
+ def bodyIdA=(v) self[:bodyIdA] = v end
923
+ def bodyIdB = self[:bodyIdB]
924
+ def bodyIdB=(v) self[:bodyIdB] = v end
925
+ def localAnchorA = self[:localAnchorA]
926
+ def localAnchorA=(v) self[:localAnchorA] = v end
927
+ def localAnchorB = self[:localAnchorB]
928
+ def localAnchorB=(v) self[:localAnchorB] = v end
929
+ def localAxisA = self[:localAxisA]
930
+ def localAxisA=(v) self[:localAxisA] = v end
931
+ def referenceAngle = self[:referenceAngle]
932
+ def referenceAngle=(v) self[:referenceAngle] = v end
933
+ def enableSpring = self[:enableSpring]
934
+ def enableSpring=(v) self[:enableSpring] = v end
935
+ def hertz = self[:hertz]
936
+ def hertz=(v) self[:hertz] = v end
937
+ def dampingRatio = self[:dampingRatio]
938
+ def dampingRatio=(v) self[:dampingRatio] = v end
939
+ def enableLimit = self[:enableLimit]
940
+ def enableLimit=(v) self[:enableLimit] = v end
941
+ def lowerTranslation = self[:lowerTranslation]
942
+ def lowerTranslation=(v) self[:lowerTranslation] = v end
943
+ def upperTranslation = self[:upperTranslation]
944
+ def upperTranslation=(v) self[:upperTranslation] = v end
945
+ def enableMotor = self[:enableMotor]
946
+ def enableMotor=(v) self[:enableMotor] = v end
947
+ def maxMotorForce = self[:maxMotorForce]
948
+ def maxMotorForce=(v) self[:maxMotorForce] = v end
949
+ def motorSpeed = self[:motorSpeed]
950
+ def motorSpeed=(v) self[:motorSpeed] = v end
951
+ def collideConnected = self[:collideConnected]
952
+ def collideConnected=(v) self[:collideConnected] = v end
953
+ def userData = self[:userData]
954
+ def userData=(v) self[:userData] = v end
955
+ def internalValue = self[:internalValue]
956
+ def internalValue=(v) self[:internalValue] = v end
957
+ def self.create_as(_bodyIdA_, _bodyIdB_, _localAnchorA_, _localAnchorB_, _localAxisA_, _referenceAngle_, _enableSpring_, _hertz_, _dampingRatio_, _enableLimit_, _lowerTranslation_, _upperTranslation_, _enableMotor_, _maxMotorForce_, _motorSpeed_, _collideConnected_, _userData_, _internalValue_)
958
+ instance = PrismaticJointDef.new
959
+ instance[:bodyIdA] = _bodyIdA_
960
+ instance[:bodyIdB] = _bodyIdB_
961
+ instance[:localAnchorA] = _localAnchorA_
962
+ instance[:localAnchorB] = _localAnchorB_
963
+ instance[:localAxisA] = _localAxisA_
964
+ instance[:referenceAngle] = _referenceAngle_
965
+ instance[:enableSpring] = _enableSpring_
966
+ instance[:hertz] = _hertz_
967
+ instance[:dampingRatio] = _dampingRatio_
968
+ instance[:enableLimit] = _enableLimit_
969
+ instance[:lowerTranslation] = _lowerTranslation_
970
+ instance[:upperTranslation] = _upperTranslation_
971
+ instance[:enableMotor] = _enableMotor_
972
+ instance[:maxMotorForce] = _maxMotorForce_
973
+ instance[:motorSpeed] = _motorSpeed_
974
+ instance[:collideConnected] = _collideConnected_
975
+ instance[:userData] = _userData_
976
+ instance[:internalValue] = _internalValue_
977
+ instance
978
+ end
979
+ end
980
+
981
+ class RevoluteJointDef < FFI::Struct
982
+ layout(
983
+ :bodyIdA, BodyId,
984
+ :bodyIdB, BodyId,
985
+ :localAnchorA, Vec2,
986
+ :localAnchorB, Vec2,
987
+ :referenceAngle, :float,
988
+ :enableSpring, :bool,
989
+ :hertz, :float,
990
+ :dampingRatio, :float,
991
+ :enableLimit, :bool,
992
+ :lowerAngle, :float,
993
+ :upperAngle, :float,
994
+ :enableMotor, :bool,
995
+ :maxMotorTorque, :float,
996
+ :motorSpeed, :float,
997
+ :drawSize, :float,
998
+ :collideConnected, :bool,
999
+ :userData, :pointer,
1000
+ :internalValue, :int,
1001
+ )
1002
+ def bodyIdA = self[:bodyIdA]
1003
+ def bodyIdA=(v) self[:bodyIdA] = v end
1004
+ def bodyIdB = self[:bodyIdB]
1005
+ def bodyIdB=(v) self[:bodyIdB] = v end
1006
+ def localAnchorA = self[:localAnchorA]
1007
+ def localAnchorA=(v) self[:localAnchorA] = v end
1008
+ def localAnchorB = self[:localAnchorB]
1009
+ def localAnchorB=(v) self[:localAnchorB] = v end
1010
+ def referenceAngle = self[:referenceAngle]
1011
+ def referenceAngle=(v) self[:referenceAngle] = v end
1012
+ def enableSpring = self[:enableSpring]
1013
+ def enableSpring=(v) self[:enableSpring] = v end
1014
+ def hertz = self[:hertz]
1015
+ def hertz=(v) self[:hertz] = v end
1016
+ def dampingRatio = self[:dampingRatio]
1017
+ def dampingRatio=(v) self[:dampingRatio] = v end
1018
+ def enableLimit = self[:enableLimit]
1019
+ def enableLimit=(v) self[:enableLimit] = v end
1020
+ def lowerAngle = self[:lowerAngle]
1021
+ def lowerAngle=(v) self[:lowerAngle] = v end
1022
+ def upperAngle = self[:upperAngle]
1023
+ def upperAngle=(v) self[:upperAngle] = v end
1024
+ def enableMotor = self[:enableMotor]
1025
+ def enableMotor=(v) self[:enableMotor] = v end
1026
+ def maxMotorTorque = self[:maxMotorTorque]
1027
+ def maxMotorTorque=(v) self[:maxMotorTorque] = v end
1028
+ def motorSpeed = self[:motorSpeed]
1029
+ def motorSpeed=(v) self[:motorSpeed] = v end
1030
+ def drawSize = self[:drawSize]
1031
+ def drawSize=(v) self[:drawSize] = v end
1032
+ def collideConnected = self[:collideConnected]
1033
+ def collideConnected=(v) self[:collideConnected] = v end
1034
+ def userData = self[:userData]
1035
+ def userData=(v) self[:userData] = v end
1036
+ def internalValue = self[:internalValue]
1037
+ def internalValue=(v) self[:internalValue] = v end
1038
+ def self.create_as(_bodyIdA_, _bodyIdB_, _localAnchorA_, _localAnchorB_, _referenceAngle_, _enableSpring_, _hertz_, _dampingRatio_, _enableLimit_, _lowerAngle_, _upperAngle_, _enableMotor_, _maxMotorTorque_, _motorSpeed_, _drawSize_, _collideConnected_, _userData_, _internalValue_)
1039
+ instance = RevoluteJointDef.new
1040
+ instance[:bodyIdA] = _bodyIdA_
1041
+ instance[:bodyIdB] = _bodyIdB_
1042
+ instance[:localAnchorA] = _localAnchorA_
1043
+ instance[:localAnchorB] = _localAnchorB_
1044
+ instance[:referenceAngle] = _referenceAngle_
1045
+ instance[:enableSpring] = _enableSpring_
1046
+ instance[:hertz] = _hertz_
1047
+ instance[:dampingRatio] = _dampingRatio_
1048
+ instance[:enableLimit] = _enableLimit_
1049
+ instance[:lowerAngle] = _lowerAngle_
1050
+ instance[:upperAngle] = _upperAngle_
1051
+ instance[:enableMotor] = _enableMotor_
1052
+ instance[:maxMotorTorque] = _maxMotorTorque_
1053
+ instance[:motorSpeed] = _motorSpeed_
1054
+ instance[:drawSize] = _drawSize_
1055
+ instance[:collideConnected] = _collideConnected_
1056
+ instance[:userData] = _userData_
1057
+ instance[:internalValue] = _internalValue_
1058
+ instance
1059
+ end
1060
+ end
1061
+
1062
+ class WeldJointDef < FFI::Struct
1063
+ layout(
1064
+ :bodyIdA, BodyId,
1065
+ :bodyIdB, BodyId,
1066
+ :localAnchorA, Vec2,
1067
+ :localAnchorB, Vec2,
1068
+ :referenceAngle, :float,
1069
+ :linearHertz, :float,
1070
+ :angularHertz, :float,
1071
+ :linearDampingRatio, :float,
1072
+ :angularDampingRatio, :float,
1073
+ :collideConnected, :bool,
1074
+ :userData, :pointer,
1075
+ :internalValue, :int,
1076
+ )
1077
+ def bodyIdA = self[:bodyIdA]
1078
+ def bodyIdA=(v) self[:bodyIdA] = v end
1079
+ def bodyIdB = self[:bodyIdB]
1080
+ def bodyIdB=(v) self[:bodyIdB] = v end
1081
+ def localAnchorA = self[:localAnchorA]
1082
+ def localAnchorA=(v) self[:localAnchorA] = v end
1083
+ def localAnchorB = self[:localAnchorB]
1084
+ def localAnchorB=(v) self[:localAnchorB] = v end
1085
+ def referenceAngle = self[:referenceAngle]
1086
+ def referenceAngle=(v) self[:referenceAngle] = v end
1087
+ def linearHertz = self[:linearHertz]
1088
+ def linearHertz=(v) self[:linearHertz] = v end
1089
+ def angularHertz = self[:angularHertz]
1090
+ def angularHertz=(v) self[:angularHertz] = v end
1091
+ def linearDampingRatio = self[:linearDampingRatio]
1092
+ def linearDampingRatio=(v) self[:linearDampingRatio] = v end
1093
+ def angularDampingRatio = self[:angularDampingRatio]
1094
+ def angularDampingRatio=(v) self[:angularDampingRatio] = v end
1095
+ def collideConnected = self[:collideConnected]
1096
+ def collideConnected=(v) self[:collideConnected] = v end
1097
+ def userData = self[:userData]
1098
+ def userData=(v) self[:userData] = v end
1099
+ def internalValue = self[:internalValue]
1100
+ def internalValue=(v) self[:internalValue] = v end
1101
+ def self.create_as(_bodyIdA_, _bodyIdB_, _localAnchorA_, _localAnchorB_, _referenceAngle_, _linearHertz_, _angularHertz_, _linearDampingRatio_, _angularDampingRatio_, _collideConnected_, _userData_, _internalValue_)
1102
+ instance = WeldJointDef.new
1103
+ instance[:bodyIdA] = _bodyIdA_
1104
+ instance[:bodyIdB] = _bodyIdB_
1105
+ instance[:localAnchorA] = _localAnchorA_
1106
+ instance[:localAnchorB] = _localAnchorB_
1107
+ instance[:referenceAngle] = _referenceAngle_
1108
+ instance[:linearHertz] = _linearHertz_
1109
+ instance[:angularHertz] = _angularHertz_
1110
+ instance[:linearDampingRatio] = _linearDampingRatio_
1111
+ instance[:angularDampingRatio] = _angularDampingRatio_
1112
+ instance[:collideConnected] = _collideConnected_
1113
+ instance[:userData] = _userData_
1114
+ instance[:internalValue] = _internalValue_
1115
+ instance
1116
+ end
1117
+ end
1118
+
1119
+ class WheelJointDef < FFI::Struct
1120
+ layout(
1121
+ :bodyIdA, BodyId,
1122
+ :bodyIdB, BodyId,
1123
+ :localAnchorA, Vec2,
1124
+ :localAnchorB, Vec2,
1125
+ :localAxisA, Vec2,
1126
+ :enableSpring, :bool,
1127
+ :hertz, :float,
1128
+ :dampingRatio, :float,
1129
+ :enableLimit, :bool,
1130
+ :lowerTranslation, :float,
1131
+ :upperTranslation, :float,
1132
+ :enableMotor, :bool,
1133
+ :maxMotorTorque, :float,
1134
+ :motorSpeed, :float,
1135
+ :collideConnected, :bool,
1136
+ :userData, :pointer,
1137
+ :internalValue, :int,
1138
+ )
1139
+ def bodyIdA = self[:bodyIdA]
1140
+ def bodyIdA=(v) self[:bodyIdA] = v end
1141
+ def bodyIdB = self[:bodyIdB]
1142
+ def bodyIdB=(v) self[:bodyIdB] = v end
1143
+ def localAnchorA = self[:localAnchorA]
1144
+ def localAnchorA=(v) self[:localAnchorA] = v end
1145
+ def localAnchorB = self[:localAnchorB]
1146
+ def localAnchorB=(v) self[:localAnchorB] = v end
1147
+ def localAxisA = self[:localAxisA]
1148
+ def localAxisA=(v) self[:localAxisA] = v end
1149
+ def enableSpring = self[:enableSpring]
1150
+ def enableSpring=(v) self[:enableSpring] = v end
1151
+ def hertz = self[:hertz]
1152
+ def hertz=(v) self[:hertz] = v end
1153
+ def dampingRatio = self[:dampingRatio]
1154
+ def dampingRatio=(v) self[:dampingRatio] = v end
1155
+ def enableLimit = self[:enableLimit]
1156
+ def enableLimit=(v) self[:enableLimit] = v end
1157
+ def lowerTranslation = self[:lowerTranslation]
1158
+ def lowerTranslation=(v) self[:lowerTranslation] = v end
1159
+ def upperTranslation = self[:upperTranslation]
1160
+ def upperTranslation=(v) self[:upperTranslation] = v end
1161
+ def enableMotor = self[:enableMotor]
1162
+ def enableMotor=(v) self[:enableMotor] = v end
1163
+ def maxMotorTorque = self[:maxMotorTorque]
1164
+ def maxMotorTorque=(v) self[:maxMotorTorque] = v end
1165
+ def motorSpeed = self[:motorSpeed]
1166
+ def motorSpeed=(v) self[:motorSpeed] = v end
1167
+ def collideConnected = self[:collideConnected]
1168
+ def collideConnected=(v) self[:collideConnected] = v end
1169
+ def userData = self[:userData]
1170
+ def userData=(v) self[:userData] = v end
1171
+ def internalValue = self[:internalValue]
1172
+ def internalValue=(v) self[:internalValue] = v end
1173
+ def self.create_as(_bodyIdA_, _bodyIdB_, _localAnchorA_, _localAnchorB_, _localAxisA_, _enableSpring_, _hertz_, _dampingRatio_, _enableLimit_, _lowerTranslation_, _upperTranslation_, _enableMotor_, _maxMotorTorque_, _motorSpeed_, _collideConnected_, _userData_, _internalValue_)
1174
+ instance = WheelJointDef.new
1175
+ instance[:bodyIdA] = _bodyIdA_
1176
+ instance[:bodyIdB] = _bodyIdB_
1177
+ instance[:localAnchorA] = _localAnchorA_
1178
+ instance[:localAnchorB] = _localAnchorB_
1179
+ instance[:localAxisA] = _localAxisA_
1180
+ instance[:enableSpring] = _enableSpring_
1181
+ instance[:hertz] = _hertz_
1182
+ instance[:dampingRatio] = _dampingRatio_
1183
+ instance[:enableLimit] = _enableLimit_
1184
+ instance[:lowerTranslation] = _lowerTranslation_
1185
+ instance[:upperTranslation] = _upperTranslation_
1186
+ instance[:enableMotor] = _enableMotor_
1187
+ instance[:maxMotorTorque] = _maxMotorTorque_
1188
+ instance[:motorSpeed] = _motorSpeed_
1189
+ instance[:collideConnected] = _collideConnected_
1190
+ instance[:userData] = _userData_
1191
+ instance[:internalValue] = _internalValue_
1192
+ instance
1193
+ end
1194
+ end
1195
+
1196
+ class ExplosionDef < FFI::Struct
1197
+ layout(
1198
+ :maskBits, :ulong_long,
1199
+ :position, Vec2,
1200
+ :radius, :float,
1201
+ :falloff, :float,
1202
+ :impulsePerLength, :float,
1203
+ )
1204
+ def maskBits = self[:maskBits]
1205
+ def maskBits=(v) self[:maskBits] = v end
1206
+ def position = self[:position]
1207
+ def position=(v) self[:position] = v end
1208
+ def radius = self[:radius]
1209
+ def radius=(v) self[:radius] = v end
1210
+ def falloff = self[:falloff]
1211
+ def falloff=(v) self[:falloff] = v end
1212
+ def impulsePerLength = self[:impulsePerLength]
1213
+ def impulsePerLength=(v) self[:impulsePerLength] = v end
1214
+ def self.create_as(_maskBits_, _position_, _radius_, _falloff_, _impulsePerLength_)
1215
+ instance = ExplosionDef.new
1216
+ instance[:maskBits] = _maskBits_
1217
+ instance[:position] = _position_
1218
+ instance[:radius] = _radius_
1219
+ instance[:falloff] = _falloff_
1220
+ instance[:impulsePerLength] = _impulsePerLength_
1221
+ instance
1222
+ end
1223
+ end
1224
+
1225
+ class SensorBeginTouchEvent < FFI::Struct
1226
+ layout(
1227
+ :sensorShapeId, ShapeId,
1228
+ :visitorShapeId, ShapeId,
1229
+ )
1230
+ def sensorShapeId = self[:sensorShapeId]
1231
+ def sensorShapeId=(v) self[:sensorShapeId] = v end
1232
+ def visitorShapeId = self[:visitorShapeId]
1233
+ def visitorShapeId=(v) self[:visitorShapeId] = v end
1234
+ def self.create_as(_sensorShapeId_, _visitorShapeId_)
1235
+ instance = SensorBeginTouchEvent.new
1236
+ instance[:sensorShapeId] = _sensorShapeId_
1237
+ instance[:visitorShapeId] = _visitorShapeId_
1238
+ instance
1239
+ end
1240
+ end
1241
+
1242
+ class SensorEndTouchEvent < FFI::Struct
1243
+ layout(
1244
+ :sensorShapeId, ShapeId,
1245
+ :visitorShapeId, ShapeId,
1246
+ )
1247
+ def sensorShapeId = self[:sensorShapeId]
1248
+ def sensorShapeId=(v) self[:sensorShapeId] = v end
1249
+ def visitorShapeId = self[:visitorShapeId]
1250
+ def visitorShapeId=(v) self[:visitorShapeId] = v end
1251
+ def self.create_as(_sensorShapeId_, _visitorShapeId_)
1252
+ instance = SensorEndTouchEvent.new
1253
+ instance[:sensorShapeId] = _sensorShapeId_
1254
+ instance[:visitorShapeId] = _visitorShapeId_
1255
+ instance
1256
+ end
1257
+ end
1258
+
1259
+ class SensorEvents < FFI::Struct
1260
+ layout(
1261
+ :beginEvents, :pointer,
1262
+ :endEvents, :pointer,
1263
+ :beginCount, :int,
1264
+ :endCount, :int,
1265
+ )
1266
+ def beginEvents = self[:beginEvents]
1267
+ def beginEvents=(v) self[:beginEvents] = v end
1268
+ def endEvents = self[:endEvents]
1269
+ def endEvents=(v) self[:endEvents] = v end
1270
+ def beginCount = self[:beginCount]
1271
+ def beginCount=(v) self[:beginCount] = v end
1272
+ def endCount = self[:endCount]
1273
+ def endCount=(v) self[:endCount] = v end
1274
+ def self.create_as(_beginEvents_, _endEvents_, _beginCount_, _endCount_)
1275
+ instance = SensorEvents.new
1276
+ instance[:beginEvents] = _beginEvents_
1277
+ instance[:endEvents] = _endEvents_
1278
+ instance[:beginCount] = _beginCount_
1279
+ instance[:endCount] = _endCount_
1280
+ instance
1281
+ end
1282
+ end
1283
+
1284
+ class ContactBeginTouchEvent < FFI::Struct
1285
+ layout(
1286
+ :shapeIdA, ShapeId,
1287
+ :shapeIdB, ShapeId,
1288
+ :manifold, Manifold,
1289
+ )
1290
+ def shapeIdA = self[:shapeIdA]
1291
+ def shapeIdA=(v) self[:shapeIdA] = v end
1292
+ def shapeIdB = self[:shapeIdB]
1293
+ def shapeIdB=(v) self[:shapeIdB] = v end
1294
+ def manifold = self[:manifold]
1295
+ def manifold=(v) self[:manifold] = v end
1296
+ def self.create_as(_shapeIdA_, _shapeIdB_, _manifold_)
1297
+ instance = ContactBeginTouchEvent.new
1298
+ instance[:shapeIdA] = _shapeIdA_
1299
+ instance[:shapeIdB] = _shapeIdB_
1300
+ instance[:manifold] = _manifold_
1301
+ instance
1302
+ end
1303
+ end
1304
+
1305
+ class ContactEndTouchEvent < FFI::Struct
1306
+ layout(
1307
+ :shapeIdA, ShapeId,
1308
+ :shapeIdB, ShapeId,
1309
+ )
1310
+ def shapeIdA = self[:shapeIdA]
1311
+ def shapeIdA=(v) self[:shapeIdA] = v end
1312
+ def shapeIdB = self[:shapeIdB]
1313
+ def shapeIdB=(v) self[:shapeIdB] = v end
1314
+ def self.create_as(_shapeIdA_, _shapeIdB_)
1315
+ instance = ContactEndTouchEvent.new
1316
+ instance[:shapeIdA] = _shapeIdA_
1317
+ instance[:shapeIdB] = _shapeIdB_
1318
+ instance
1319
+ end
1320
+ end
1321
+
1322
+ class ContactHitEvent < FFI::Struct
1323
+ layout(
1324
+ :shapeIdA, ShapeId,
1325
+ :shapeIdB, ShapeId,
1326
+ :point, Vec2,
1327
+ :normal, Vec2,
1328
+ :approachSpeed, :float,
1329
+ )
1330
+ def shapeIdA = self[:shapeIdA]
1331
+ def shapeIdA=(v) self[:shapeIdA] = v end
1332
+ def shapeIdB = self[:shapeIdB]
1333
+ def shapeIdB=(v) self[:shapeIdB] = v end
1334
+ def point = self[:point]
1335
+ def point=(v) self[:point] = v end
1336
+ def normal = self[:normal]
1337
+ def normal=(v) self[:normal] = v end
1338
+ def approachSpeed = self[:approachSpeed]
1339
+ def approachSpeed=(v) self[:approachSpeed] = v end
1340
+ def self.create_as(_shapeIdA_, _shapeIdB_, _point_, _normal_, _approachSpeed_)
1341
+ instance = ContactHitEvent.new
1342
+ instance[:shapeIdA] = _shapeIdA_
1343
+ instance[:shapeIdB] = _shapeIdB_
1344
+ instance[:point] = _point_
1345
+ instance[:normal] = _normal_
1346
+ instance[:approachSpeed] = _approachSpeed_
1347
+ instance
1348
+ end
1349
+ end
1350
+
1351
+ class ContactEvents < FFI::Struct
1352
+ layout(
1353
+ :beginEvents, :pointer,
1354
+ :endEvents, :pointer,
1355
+ :hitEvents, :pointer,
1356
+ :beginCount, :int,
1357
+ :endCount, :int,
1358
+ :hitCount, :int,
1359
+ )
1360
+ def beginEvents = self[:beginEvents]
1361
+ def beginEvents=(v) self[:beginEvents] = v end
1362
+ def endEvents = self[:endEvents]
1363
+ def endEvents=(v) self[:endEvents] = v end
1364
+ def hitEvents = self[:hitEvents]
1365
+ def hitEvents=(v) self[:hitEvents] = v end
1366
+ def beginCount = self[:beginCount]
1367
+ def beginCount=(v) self[:beginCount] = v end
1368
+ def endCount = self[:endCount]
1369
+ def endCount=(v) self[:endCount] = v end
1370
+ def hitCount = self[:hitCount]
1371
+ def hitCount=(v) self[:hitCount] = v end
1372
+ def self.create_as(_beginEvents_, _endEvents_, _hitEvents_, _beginCount_, _endCount_, _hitCount_)
1373
+ instance = ContactEvents.new
1374
+ instance[:beginEvents] = _beginEvents_
1375
+ instance[:endEvents] = _endEvents_
1376
+ instance[:hitEvents] = _hitEvents_
1377
+ instance[:beginCount] = _beginCount_
1378
+ instance[:endCount] = _endCount_
1379
+ instance[:hitCount] = _hitCount_
1380
+ instance
1381
+ end
1382
+ end
1383
+
1384
+ class BodyMoveEvent < FFI::Struct
1385
+ layout(
1386
+ :transform, Transform,
1387
+ :bodyId, BodyId,
1388
+ :userData, :pointer,
1389
+ :fellAsleep, :bool,
1390
+ )
1391
+ def transform = self[:transform]
1392
+ def transform=(v) self[:transform] = v end
1393
+ def bodyId = self[:bodyId]
1394
+ def bodyId=(v) self[:bodyId] = v end
1395
+ def userData = self[:userData]
1396
+ def userData=(v) self[:userData] = v end
1397
+ def fellAsleep = self[:fellAsleep]
1398
+ def fellAsleep=(v) self[:fellAsleep] = v end
1399
+ def self.create_as(_transform_, _bodyId_, _userData_, _fellAsleep_)
1400
+ instance = BodyMoveEvent.new
1401
+ instance[:transform] = _transform_
1402
+ instance[:bodyId] = _bodyId_
1403
+ instance[:userData] = _userData_
1404
+ instance[:fellAsleep] = _fellAsleep_
1405
+ instance
1406
+ end
1407
+ end
1408
+
1409
+ class BodyEvents < FFI::Struct
1410
+ layout(
1411
+ :moveEvents, :pointer,
1412
+ :moveCount, :int,
1413
+ )
1414
+ def moveEvents = self[:moveEvents]
1415
+ def moveEvents=(v) self[:moveEvents] = v end
1416
+ def moveCount = self[:moveCount]
1417
+ def moveCount=(v) self[:moveCount] = v end
1418
+ def self.create_as(_moveEvents_, _moveCount_)
1419
+ instance = BodyEvents.new
1420
+ instance[:moveEvents] = _moveEvents_
1421
+ instance[:moveCount] = _moveCount_
1422
+ instance
1423
+ end
1424
+ end
1425
+
1426
+ class ContactData < FFI::Struct
1427
+ layout(
1428
+ :shapeIdA, ShapeId,
1429
+ :shapeIdB, ShapeId,
1430
+ :manifold, Manifold,
1431
+ )
1432
+ def shapeIdA = self[:shapeIdA]
1433
+ def shapeIdA=(v) self[:shapeIdA] = v end
1434
+ def shapeIdB = self[:shapeIdB]
1435
+ def shapeIdB=(v) self[:shapeIdB] = v end
1436
+ def manifold = self[:manifold]
1437
+ def manifold=(v) self[:manifold] = v end
1438
+ def self.create_as(_shapeIdA_, _shapeIdB_, _manifold_)
1439
+ instance = ContactData.new
1440
+ instance[:shapeIdA] = _shapeIdA_
1441
+ instance[:shapeIdB] = _shapeIdB_
1442
+ instance[:manifold] = _manifold_
1443
+ instance
1444
+ end
1445
+ end
1446
+
1447
+ class DebugDraw < FFI::Struct
1448
+ layout(
1449
+ :DrawPolygon, :pointer,
1450
+ :DrawSolidPolygon, :pointer,
1451
+ :DrawCircle, :pointer,
1452
+ :DrawSolidCircle, :pointer,
1453
+ :DrawSolidCapsule, :pointer,
1454
+ :DrawSegment, :pointer,
1455
+ :DrawTransform, :pointer,
1456
+ :DrawPoint, :pointer,
1457
+ :DrawString, :pointer,
1458
+ :drawingBounds, AABB,
1459
+ :useDrawingBounds, :bool,
1460
+ :drawShapes, :bool,
1461
+ :drawJoints, :bool,
1462
+ :drawJointExtras, :bool,
1463
+ :drawAABBs, :bool,
1464
+ :drawMass, :bool,
1465
+ :drawContacts, :bool,
1466
+ :drawGraphColors, :bool,
1467
+ :drawContactNormals, :bool,
1468
+ :drawContactImpulses, :bool,
1469
+ :drawFrictionImpulses, :bool,
1470
+ :context, :pointer,
1471
+ )
1472
+ def DrawPolygon = self[:DrawPolygon]
1473
+ def DrawPolygon=(v) self[:DrawPolygon] = v end
1474
+ def DrawSolidPolygon = self[:DrawSolidPolygon]
1475
+ def DrawSolidPolygon=(v) self[:DrawSolidPolygon] = v end
1476
+ def DrawCircle = self[:DrawCircle]
1477
+ def DrawCircle=(v) self[:DrawCircle] = v end
1478
+ def DrawSolidCircle = self[:DrawSolidCircle]
1479
+ def DrawSolidCircle=(v) self[:DrawSolidCircle] = v end
1480
+ def DrawSolidCapsule = self[:DrawSolidCapsule]
1481
+ def DrawSolidCapsule=(v) self[:DrawSolidCapsule] = v end
1482
+ def DrawSegment = self[:DrawSegment]
1483
+ def DrawSegment=(v) self[:DrawSegment] = v end
1484
+ def DrawTransform = self[:DrawTransform]
1485
+ def DrawTransform=(v) self[:DrawTransform] = v end
1486
+ def DrawPoint = self[:DrawPoint]
1487
+ def DrawPoint=(v) self[:DrawPoint] = v end
1488
+ def DrawString = self[:DrawString]
1489
+ def DrawString=(v) self[:DrawString] = v end
1490
+ def drawingBounds = self[:drawingBounds]
1491
+ def drawingBounds=(v) self[:drawingBounds] = v end
1492
+ def useDrawingBounds = self[:useDrawingBounds]
1493
+ def useDrawingBounds=(v) self[:useDrawingBounds] = v end
1494
+ def drawShapes = self[:drawShapes]
1495
+ def drawShapes=(v) self[:drawShapes] = v end
1496
+ def drawJoints = self[:drawJoints]
1497
+ def drawJoints=(v) self[:drawJoints] = v end
1498
+ def drawJointExtras = self[:drawJointExtras]
1499
+ def drawJointExtras=(v) self[:drawJointExtras] = v end
1500
+ def drawAABBs = self[:drawAABBs]
1501
+ def drawAABBs=(v) self[:drawAABBs] = v end
1502
+ def drawMass = self[:drawMass]
1503
+ def drawMass=(v) self[:drawMass] = v end
1504
+ def drawContacts = self[:drawContacts]
1505
+ def drawContacts=(v) self[:drawContacts] = v end
1506
+ def drawGraphColors = self[:drawGraphColors]
1507
+ def drawGraphColors=(v) self[:drawGraphColors] = v end
1508
+ def drawContactNormals = self[:drawContactNormals]
1509
+ def drawContactNormals=(v) self[:drawContactNormals] = v end
1510
+ def drawContactImpulses = self[:drawContactImpulses]
1511
+ def drawContactImpulses=(v) self[:drawContactImpulses] = v end
1512
+ def drawFrictionImpulses = self[:drawFrictionImpulses]
1513
+ def drawFrictionImpulses=(v) self[:drawFrictionImpulses] = v end
1514
+ def context = self[:context]
1515
+ def context=(v) self[:context] = v end
1516
+ def self.create_as(_DrawPolygon_, _DrawSolidPolygon_, _DrawCircle_, _DrawSolidCircle_, _DrawSolidCapsule_, _DrawSegment_, _DrawTransform_, _DrawPoint_, _DrawString_, _drawingBounds_, _useDrawingBounds_, _drawShapes_, _drawJoints_, _drawJointExtras_, _drawAABBs_, _drawMass_, _drawContacts_, _drawGraphColors_, _drawContactNormals_, _drawContactImpulses_, _drawFrictionImpulses_, _context_)
1517
+ instance = DebugDraw.new
1518
+ instance[:DrawPolygon] = _DrawPolygon_
1519
+ instance[:DrawSolidPolygon] = _DrawSolidPolygon_
1520
+ instance[:DrawCircle] = _DrawCircle_
1521
+ instance[:DrawSolidCircle] = _DrawSolidCircle_
1522
+ instance[:DrawSolidCapsule] = _DrawSolidCapsule_
1523
+ instance[:DrawSegment] = _DrawSegment_
1524
+ instance[:DrawTransform] = _DrawTransform_
1525
+ instance[:DrawPoint] = _DrawPoint_
1526
+ instance[:DrawString] = _DrawString_
1527
+ instance[:drawingBounds] = _drawingBounds_
1528
+ instance[:useDrawingBounds] = _useDrawingBounds_
1529
+ instance[:drawShapes] = _drawShapes_
1530
+ instance[:drawJoints] = _drawJoints_
1531
+ instance[:drawJointExtras] = _drawJointExtras_
1532
+ instance[:drawAABBs] = _drawAABBs_
1533
+ instance[:drawMass] = _drawMass_
1534
+ instance[:drawContacts] = _drawContacts_
1535
+ instance[:drawGraphColors] = _drawGraphColors_
1536
+ instance[:drawContactNormals] = _drawContactNormals_
1537
+ instance[:drawContactImpulses] = _drawContactImpulses_
1538
+ instance[:drawFrictionImpulses] = _drawFrictionImpulses_
1539
+ instance[:context] = _context_
1540
+ instance
1541
+ end
1542
+ end
1543
+
1544
+
1545
+ # Function
1546
+
1547
+ def self.setup_types_symbols(method_naming: :original)
1548
+ entries = [
1549
+ [:DefaultWorldDef, :b2DefaultWorldDef, [], WorldDef.by_value],
1550
+ [:DefaultBodyDef, :b2DefaultBodyDef, [], BodyDef.by_value],
1551
+ [:DefaultFilter, :b2DefaultFilter, [], Filter.by_value],
1552
+ [:DefaultQueryFilter, :b2DefaultQueryFilter, [], QueryFilter.by_value],
1553
+ [:DefaultShapeDef, :b2DefaultShapeDef, [], ShapeDef.by_value],
1554
+ [:DefaultChainDef, :b2DefaultChainDef, [], ChainDef.by_value],
1555
+ [:DefaultDistanceJointDef, :b2DefaultDistanceJointDef, [], DistanceJointDef.by_value],
1556
+ [:DefaultMotorJointDef, :b2DefaultMotorJointDef, [], MotorJointDef.by_value],
1557
+ [:DefaultMouseJointDef, :b2DefaultMouseJointDef, [], MouseJointDef.by_value],
1558
+ [:DefaultNullJointDef, :b2DefaultNullJointDef, [], NullJointDef.by_value],
1559
+ [:DefaultPrismaticJointDef, :b2DefaultPrismaticJointDef, [], PrismaticJointDef.by_value],
1560
+ [:DefaultRevoluteJointDef, :b2DefaultRevoluteJointDef, [], RevoluteJointDef.by_value],
1561
+ [:DefaultWeldJointDef, :b2DefaultWeldJointDef, [], WeldJointDef.by_value],
1562
+ [:DefaultWheelJointDef, :b2DefaultWheelJointDef, [], WheelJointDef.by_value],
1563
+ [:DefaultExplosionDef, :b2DefaultExplosionDef, [], ExplosionDef.by_value],
1564
+ [:DefaultDebugDraw, :b2DefaultDebugDraw, [], DebugDraw.by_value],
1565
+ ]
1566
+ entries.each do |entry|
1567
+ api_name = if method_naming == :snake_case
1568
+ snake_case_name = entry[0].to_s.gsub(/([A-Z]+)([A-Z0-9][a-z])/, '\1_\2').gsub(/([a-z\d])([A-Z0-9])/, '\1_\2').downcase
1569
+ snake_case_name.gsub!('vector_3', 'vector3_') if snake_case_name.include?('vector_3')
1570
+ snake_case_name.gsub!('vector_2', 'vector2_') if snake_case_name.include?('vector_2')
1571
+ snake_case_name.chop! if snake_case_name.end_with?('_')
1572
+ snake_case_name.to_sym
1573
+ else
1574
+ entry[0]
1575
+ end
1576
+ attach_function api_name, entry[1], entry[2], entry[3]
1577
+ rescue FFI::NotFoundError => e
1578
+ warn "[Warning] Failed to import #{entry[0]} (#{e})."
1579
+ end
1580
+ end
1581
+
1582
+ end
1583
+