box2d-bindings 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+