box2d-bindings 0.1.5-aarch64-linux → 0.1.6-aarch64-linux

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ef3529d2ba53ba76c1656129b5d4f6262334c5cb9224980d1f84b3c34b9610c
4
- data.tar.gz: a3b2807c1184b5a5ccd706199616630bf87a78dbc57647bfa72ee4a274fcf016
3
+ metadata.gz: 82def3d2a8519e7f1518a76996a0127f4328cd4195c4bb471d7c36b33979ecd7
4
+ data.tar.gz: ace953dcb903081f5e1c7bd57ca319d69302ce6ecf455d0cce7ffd9ccabc5281
5
5
  SHA512:
6
- metadata.gz: 72c774e313617ce5093f133a623630dbc59e039ef6d242963fd0e16f9e6d9542b3b5fb533dae69cc30badecc5851d15f5d2c02593263de38fc6d0c2647446663
7
- data.tar.gz: 1299eaf7ea366bf2fc5421856f19042c6979a6d3eaade97e56aea5e5365f00b54978152ddaf5f54f85a6c2dfb670d53d75c0f5cd54b7472fa4e970ce214732a9
6
+ metadata.gz: d6fb9947cdc62d72f56d94db4bb77f080d21c5c26cfe5e857040b57d138c49a0e57b6b850c64be5a9d14d637520f577ac9279a882c8e91275a27f6c85122d128
7
+ data.tar.gz: 773a532dd4433c9f7bc2563686a89d46e345d047179dad40e4a999b7e1675354776f801325fcb25de3bf0783389bfe079454748a0343dd918da3dbcd5580cb7f
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ 2026-04-26 vaiorabbit <http://twitter.com/vaiorabbit>
2
+
3
+ * https://github.com/erincatto/box2d/commit/ddfd9df727a06940af34b5bc2ef79bcaba287d50
4
+
1
5
  2026-03-11 vaiorabbit <http://twitter.com/vaiorabbit>
2
6
 
3
7
  * https://github.com/erincatto/box2d/commit/5778d748bb06fdabcd46cb0d56646d8b2d6a4be7
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  # Box2D bindings for Ruby #
4
4
 
5
5
  * Created : 2024-08-18
6
- * Last modified : 2026-03-11
6
+ * Last modified : 2026-04-26
7
7
 
8
8
  Provides Ruby bindings for Box2D
9
9
  * https://box2d.org
data/lib/box2d_base.rb CHANGED
@@ -10,6 +10,7 @@ module Box2D
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
13
+ ENABLE_VALIDATION = 0
13
14
  HASH_INIT = 5381
14
15
 
15
16
  # Enum
@@ -55,6 +56,7 @@ module Box2D
55
56
  [:SetAssertFcn, :b2SetAssertFcn, [:pointer], :void],
56
57
  [:SetLogFcn, :b2SetLogFcn, [:pointer], :void],
57
58
  [:GetVersion, :b2GetVersion, [], Version.by_value],
59
+ [:InternalAssert, :b2InternalAssert, [:pointer, :pointer, :int], :int],
58
60
  [:GetTicks, :b2GetTicks, [], :ulong_long],
59
61
  [:GetMilliseconds, :b2GetMilliseconds, [:ulong_long], :float],
60
62
  [:GetMillisecondsAndReset, :b2GetMillisecondsAndReset, [:pointer], :float],
@@ -82,44 +82,6 @@ module Box2D
82
82
  end
83
83
  end
84
84
 
85
- class SimplexCache < FFI::Struct
86
- layout(
87
- :count, :ushort,
88
- :indexA, [:uchar, 3],
89
- :indexB, [:uchar, 3],
90
- )
91
- def count = self[:count]
92
- def count=(v) self[:count] = v end
93
- def indexA = self[:indexA]
94
- def indexA=(v) self[:indexA] = v end
95
- def indexB = self[:indexB]
96
- def indexB=(v) self[:indexB] = v end
97
- def self.create_as(_count_, _indexA_, _indexB_)
98
- instance = SimplexCache.new
99
- instance[:count] = _count_
100
- instance[:indexA] = _indexA_
101
- instance[:indexB] = _indexB_
102
- instance
103
- end
104
- end
105
-
106
- class Hull < FFI::Struct
107
- layout(
108
- :points, [Vec2, 8],
109
- :count, :int,
110
- )
111
- def points = self[:points]
112
- def points=(v) self[:points] = v end
113
- def count = self[:count]
114
- def count=(v) self[:count] = v end
115
- def self.create_as(_points_, _count_)
116
- instance = Hull.new
117
- instance[:points] = _points_
118
- instance[:count] = _count_
119
- instance
120
- end
121
- end
122
-
123
85
  class RayCastInput < FFI::Struct
124
86
  layout(
125
87
  :origin, Vec2,
@@ -346,6 +308,23 @@ module Box2D
346
308
  end
347
309
  end
348
310
 
311
+ class Hull < FFI::Struct
312
+ layout(
313
+ :points, [Vec2, 8],
314
+ :count, :int,
315
+ )
316
+ def points = self[:points]
317
+ def points=(v) self[:points] = v end
318
+ def count = self[:count]
319
+ def count=(v) self[:count] = v end
320
+ def self.create_as(_points_, _count_)
321
+ instance = Hull.new
322
+ instance[:points] = _points_
323
+ instance[:count] = _count_
324
+ instance
325
+ end
326
+ end
327
+
349
328
  class SegmentDistanceResult < FFI::Struct
350
329
  layout(
351
330
  :closest1, Vec2,
@@ -375,6 +354,27 @@ module Box2D
375
354
  end
376
355
  end
377
356
 
357
+ class SimplexCache < FFI::Struct
358
+ layout(
359
+ :count, :ushort,
360
+ :indexA, [:uchar, 3],
361
+ :indexB, [:uchar, 3],
362
+ )
363
+ def count = self[:count]
364
+ def count=(v) self[:count] = v end
365
+ def indexA = self[:indexA]
366
+ def indexA=(v) self[:indexA] = v end
367
+ def indexB = self[:indexB]
368
+ def indexB=(v) self[:indexB] = v end
369
+ def self.create_as(_count_, _indexA_, _indexB_)
370
+ instance = SimplexCache.new
371
+ instance[:count] = _count_
372
+ instance[:indexA] = _indexA_
373
+ instance[:indexB] = _indexB_
374
+ instance
375
+ end
376
+ end
377
+
378
378
  class DistanceInput < FFI::Struct
379
379
  layout(
380
380
  :proxyA, ShapeProxy,
@@ -617,10 +617,11 @@ module Box2D
617
617
 
618
618
  class ManifoldPoint < FFI::Struct
619
619
  layout(
620
- :point, Vec2,
620
+ :clipPoint, Vec2,
621
621
  :anchorA, Vec2,
622
622
  :anchorB, Vec2,
623
623
  :separation, :float,
624
+ :baseSeparation, :float,
624
625
  :normalImpulse, :float,
625
626
  :tangentImpulse, :float,
626
627
  :totalNormalImpulse, :float,
@@ -628,14 +629,16 @@ module Box2D
628
629
  :id, :ushort,
629
630
  :persisted, :bool,
630
631
  )
631
- def point = self[:point]
632
- def point=(v) self[:point] = v end
632
+ def clipPoint = self[:clipPoint]
633
+ def clipPoint=(v) self[:clipPoint] = v end
633
634
  def anchorA = self[:anchorA]
634
635
  def anchorA=(v) self[:anchorA] = v end
635
636
  def anchorB = self[:anchorB]
636
637
  def anchorB=(v) self[:anchorB] = v end
637
638
  def separation = self[:separation]
638
639
  def separation=(v) self[:separation] = v end
640
+ def baseSeparation = self[:baseSeparation]
641
+ def baseSeparation=(v) self[:baseSeparation] = v end
639
642
  def normalImpulse = self[:normalImpulse]
640
643
  def normalImpulse=(v) self[:normalImpulse] = v end
641
644
  def tangentImpulse = self[:tangentImpulse]
@@ -648,12 +651,13 @@ module Box2D
648
651
  def id=(v) self[:id] = v end
649
652
  def persisted = self[:persisted]
650
653
  def persisted=(v) self[:persisted] = v end
651
- def self.create_as(_point_, _anchorA_, _anchorB_, _separation_, _normalImpulse_, _tangentImpulse_, _totalNormalImpulse_, _normalVelocity_, _id_, _persisted_)
654
+ def self.create_as(_clipPoint_, _anchorA_, _anchorB_, _separation_, _baseSeparation_, _normalImpulse_, _tangentImpulse_, _totalNormalImpulse_, _normalVelocity_, _id_, _persisted_)
652
655
  instance = ManifoldPoint.new
653
- instance[:point] = _point_
656
+ instance[:clipPoint] = _clipPoint_
654
657
  instance[:anchorA] = _anchorA_
655
658
  instance[:anchorB] = _anchorB_
656
659
  instance[:separation] = _separation_
660
+ instance[:baseSeparation] = _baseSeparation_
657
661
  instance[:normalImpulse] = _normalImpulse_
658
662
  instance[:tangentImpulse] = _tangentImpulse_
659
663
  instance[:totalNormalImpulse] = _totalNormalImpulse_
data/lib/box2d_main.rb CHANGED
@@ -54,6 +54,8 @@ module Box2D
54
54
  [:World_GetGravity, :b2World_GetGravity, [WorldId.by_value], Vec2.by_value],
55
55
  [:World_Explode, :b2World_Explode, [WorldId.by_value, :pointer], :void],
56
56
  [:World_SetContactTuning, :b2World_SetContactTuning, [WorldId.by_value, :float, :float, :float], :void],
57
+ [:World_SetContactRecycleDistance, :b2World_SetContactRecycleDistance, [WorldId.by_value, :float], :void],
58
+ [:World_GetContactRecycleDistance, :b2World_GetContactRecycleDistance, [WorldId.by_value], :float],
57
59
  [:World_SetMaximumLinearSpeed, :b2World_SetMaximumLinearSpeed, [WorldId.by_value, :float], :void],
58
60
  [:World_GetMaximumLinearSpeed, :b2World_GetMaximumLinearSpeed, [WorldId.by_value], :float],
59
61
  [:World_EnableWarmStarting, :b2World_EnableWarmStarting, [WorldId.by_value, :bool], :void],
@@ -65,6 +67,8 @@ module Box2D
65
67
  [:World_GetUserData, :b2World_GetUserData, [WorldId.by_value], :pointer],
66
68
  [:World_SetFrictionCallback, :b2World_SetFrictionCallback, [WorldId.by_value, :pointer], :void],
67
69
  [:World_SetRestitutionCallback, :b2World_SetRestitutionCallback, [WorldId.by_value, :pointer], :void],
70
+ [:World_SetWorkerCount, :b2World_SetWorkerCount, [WorldId.by_value, :int], :void],
71
+ [:World_GetWorkerCount, :b2World_GetWorkerCount, [WorldId.by_value], :int],
68
72
  [:World_DumpMemoryStats, :b2World_DumpMemoryStats, [WorldId.by_value], :void],
69
73
  [:World_RebuildStaticTree, :b2World_RebuildStaticTree, [WorldId.by_value], :void],
70
74
  [:World_EnableSpeculative, :b2World_EnableSpeculative, [WorldId.by_value, :bool], :void],
@@ -28,6 +28,7 @@ module Box2D
28
28
  [:MaxInt, :b2MaxInt, [:int, :int], :int],
29
29
  [:AbsInt, :b2AbsInt, [:int], :int],
30
30
  [:ClampInt, :b2ClampInt, [:int, :int, :int], :int],
31
+ [:CeilingInt, :b2CeilingInt, [:int, :int], :int],
31
32
  [:MinFloat, :b2MinFloat, [:float, :float], :float],
32
33
  [:MaxFloat, :b2MaxFloat, [:float, :float], :float],
33
34
  [:AbsFloat, :b2AbsFloat, [:float], :float],
data/lib/box2d_types.rb CHANGED
@@ -175,6 +175,11 @@ module Box2D
175
175
  HexColor_colorBox2DBlue = 3190463
176
176
  HexColor_colorBox2DGreen = 9226532
177
177
  HexColor_colorBox2DYellow = 16772748
178
+ ContactDrawType_drawContacts_None = 0
179
+ ContactDrawType_drawContacts_Clip = 1
180
+ ContactDrawType_drawContacts_AnchorA = 2
181
+ ContactDrawType_drawContacts_AnchorB = 3
182
+ ContactDrawType_drawContacts_Average = 4
178
183
 
179
184
  # Typedef
180
185
 
@@ -192,6 +197,7 @@ module Box2D
192
197
  typedef :pointer, :b2CastResultFcn
193
198
  typedef :pointer, :b2PlaneResultFcn
194
199
  typedef :int, :b2HexColor
200
+ typedef :int, :b2ContactDrawType
195
201
 
196
202
  # Struct
197
203
 
@@ -1449,13 +1455,13 @@ module Box2D
1449
1455
  :drawingBounds, AABB,
1450
1456
  :forceScale, :float,
1451
1457
  :jointScale, :float,
1458
+ :contactDrawType, :int,
1452
1459
  :drawShapes, :bool,
1453
1460
  :drawJoints, :bool,
1454
1461
  :drawJointExtras, :bool,
1455
1462
  :drawBounds, :bool,
1456
1463
  :drawMass, :bool,
1457
1464
  :drawBodyNames, :bool,
1458
- :drawContactPoints, :bool,
1459
1465
  :drawGraphColors, :bool,
1460
1466
  :drawContactFeatures, :bool,
1461
1467
  :drawContactNormals, :bool,
@@ -1488,6 +1494,8 @@ module Box2D
1488
1494
  def forceScale=(v) self[:forceScale] = v end
1489
1495
  def jointScale = self[:jointScale]
1490
1496
  def jointScale=(v) self[:jointScale] = v end
1497
+ def contactDrawType = self[:contactDrawType]
1498
+ def contactDrawType=(v) self[:contactDrawType] = v end
1491
1499
  def drawShapes = self[:drawShapes]
1492
1500
  def drawShapes=(v) self[:drawShapes] = v end
1493
1501
  def drawJoints = self[:drawJoints]
@@ -1500,8 +1508,6 @@ module Box2D
1500
1508
  def drawMass=(v) self[:drawMass] = v end
1501
1509
  def drawBodyNames = self[:drawBodyNames]
1502
1510
  def drawBodyNames=(v) self[:drawBodyNames] = v end
1503
- def drawContactPoints = self[:drawContactPoints]
1504
- def drawContactPoints=(v) self[:drawContactPoints] = v end
1505
1511
  def drawGraphColors = self[:drawGraphColors]
1506
1512
  def drawGraphColors=(v) self[:drawGraphColors] = v end
1507
1513
  def drawContactFeatures = self[:drawContactFeatures]
@@ -1516,7 +1522,7 @@ module Box2D
1516
1522
  def drawIslands=(v) self[:drawIslands] = v end
1517
1523
  def context = self[:context]
1518
1524
  def context=(v) self[:context] = v end
1519
- def self.create_as(_DrawPolygonFcn_, _DrawSolidPolygonFcn_, _DrawCircleFcn_, _DrawSolidCircleFcn_, _DrawSolidCapsuleFcn_, _DrawLineFcn_, _DrawTransformFcn_, _DrawPointFcn_, _DrawStringFcn_, _drawingBounds_, _forceScale_, _jointScale_, _drawShapes_, _drawJoints_, _drawJointExtras_, _drawBounds_, _drawMass_, _drawBodyNames_, _drawContactPoints_, _drawGraphColors_, _drawContactFeatures_, _drawContactNormals_, _drawContactForces_, _drawFrictionForces_, _drawIslands_, _context_)
1525
+ def self.create_as(_DrawPolygonFcn_, _DrawSolidPolygonFcn_, _DrawCircleFcn_, _DrawSolidCircleFcn_, _DrawSolidCapsuleFcn_, _DrawLineFcn_, _DrawTransformFcn_, _DrawPointFcn_, _DrawStringFcn_, _drawingBounds_, _forceScale_, _jointScale_, _contactDrawType_, _drawShapes_, _drawJoints_, _drawJointExtras_, _drawBounds_, _drawMass_, _drawBodyNames_, _drawGraphColors_, _drawContactFeatures_, _drawContactNormals_, _drawContactForces_, _drawFrictionForces_, _drawIslands_, _context_)
1520
1526
  instance = DebugDraw.new
1521
1527
  instance[:DrawPolygonFcn] = _DrawPolygonFcn_
1522
1528
  instance[:DrawSolidPolygonFcn] = _DrawSolidPolygonFcn_
@@ -1530,13 +1536,13 @@ module Box2D
1530
1536
  instance[:drawingBounds] = _drawingBounds_
1531
1537
  instance[:forceScale] = _forceScale_
1532
1538
  instance[:jointScale] = _jointScale_
1539
+ instance[:contactDrawType] = _contactDrawType_
1533
1540
  instance[:drawShapes] = _drawShapes_
1534
1541
  instance[:drawJoints] = _drawJoints_
1535
1542
  instance[:drawJointExtras] = _drawJointExtras_
1536
1543
  instance[:drawBounds] = _drawBounds_
1537
1544
  instance[:drawMass] = _drawMass_
1538
1545
  instance[:drawBodyNames] = _drawBodyNames_
1539
- instance[:drawContactPoints] = _drawContactPoints_
1540
1546
  instance[:drawGraphColors] = _drawGraphColors_
1541
1547
  instance[:drawContactFeatures] = _drawContactFeatures_
1542
1548
  instance[:drawContactNormals] = _drawContactNormals_
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: box2d-bindings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - vaiorabbit
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  - !ruby/object:Gem::Version
65
65
  version: '0'
66
66
  requirements: []
67
- rubygems_version: 4.0.3
67
+ rubygems_version: 4.0.6
68
68
  specification_version: 4
69
69
  summary: Ruby bindings for Box2D
70
70
  test_files: []