./graphics/box2d, 2D physics engine for games

[ Image CVSweb ] [ Image Homepage ] [ Image RSS ] [ Image Required by ]


Branch: CURRENT, Version: 3.1.1, Package name: box2d-3.1.1, Maintainer: ryoon

Box2D is a 2D physics engine for games. It features:

Collision
Continuous collision detection
Contact callbacks: begin, end, pre-solve, post-solve
Convex polygons and circles
Multiple shapes per body
One-shot contact manifolds
Dynamic tree broadphase
Efficient pair management
Fast broadphase AABB queries
Collision groups and categories

Physics
Continuous physics with time of impact solver
Persistent body-joint-contact graph
Island solution and sleep management
Contact, friction, and restitution
Stable stacking with a linear-time solver
Revolute, prismatic, distance, pulley, gear, mouse joint,
and other joint types
Joint limits, motors, and friction
Momentum decoupled position correction
Fairly accurate reaction forces/impulses


Master sites:

Filesize: 761.831 KB

Version history: (Expand)


CVS history: (Expand)


   2026-09-22 09:55:31 by Ryo ONODERA | Files touched by this commit (4) | Package updated
Log message:
graphics/box2d: Update to 3.1.1

Changelog:
3.1.1:
What's Changed

    Warning as error off by default by @erincatto in #914
    functions to get and set surface material by @erincatto in #921
    Fixed another shape distance assert by @erincatto in #926
    Revolute and prismatic targets by @erincatto in #929
    Cast initial overlap by @erincatto in #933
    Tunable joint stiffness by @erincatto in #934
    _aligned_free for mingw by @erincatto in #939
    Removed MSVC static library setting by @erincatto in #940

# v3.1 Release Notes

## API Changes
- 64-bit filter categories and masks
- 64-bit dynamic tree user data
- Renamed `b2SmoothSegment` to `b2ChainSegment`
- Cast and overlap functions modified for argument consistency
- Contact begin events now provide the manifold
- More consistent functions to make polygons
- Contact events are now disabled by default
- Replaced `b2Timer` with `uint64_t`
- Shape material properties now use `b2SurfaceMaterial`

## New Features
- New character mover features and sample
- Revised sensor system is now independent of body type and sleep
- Rolling resistance and tangent speed
- Friction and restitution mixing callbacks
- World explosions
- World access to the maximum linear speed
- More control over body mass updates
- Filter joint to disable collision between specific bodies
- Bodies can now have names for debugging
- Added `b2Body_SetTargetTransform` for kinematic bodies

## Improvements
- Cross-platform determinism
- Custom SSE2 and Neon for significantly improved performance
- SSE2 is the default instead of AVX2
- Removed SIMDE library dependency
- Faster ray and shape casts
- Faster continuous collision
- Each segment of a chain shape may have a different surface material
- Reduced overhead of restitution when not used
- Implemented atomic platform wrappers eliminating the `experimental:c11atomics` flag

## Bugs Fixes
- Many bug fixes based on user testing
- Fixed missing hit events
- Capsule and polygon manifold fixes
- Fixed missing contact end events
- PreSolve is now called in continuous collision
- Reduced clipping into chain shapes by fast bodies
- Friction and restitution are now remixed in the contact solver every time step
- Body move events are now correctly adjusted for time of impact

## Infrastructure
- Unit test for API coverage
- macOS and Windows samples built in GitHub actions
- CMake install
- imgui and glfw versions are now pinned in FetchContent
- Initial Emscripten support
   2024-08-25 08:19:21 by Thomas Klausner | Files touched by this commit (575)
Log message:
*: replace CMAKE_ARGS with CMAKE_CONFIGURE_ARGS
   2024-08-11 08:39:04 by Thomas Klausner | Files touched by this commit (4) | Package updated
Log message:
box2d: update to 2.4.2.

This is the final release of version 2. The next commit with be version 3.0.

This has a few bug fixes, but is mainly being created for people
who want to stay on version 2.

What's Changed

    Remove unnecessary function by @erincatto in #659
    Typo fix by @gittem01 in #684
    Update box2d's version of Doctest to latest version by @PatrickHoward in #682
    Create cmake.yml by @erincatto in #707
    Added macos and windows actions by @erincatto in #708
    Issue Fixes by @erincatto in #709
    Making hull builder more robust by @erincatto in #735
    Miscellaneous fixes by @erincatto in #736
    Adjust mouse joint damping with time step by @erincatto in #737
    Add benchmark test by @erincatto in #744
   2023-03-05 15:56:36 by Tobias Nygren | Files touched by this commit (1)
Log message:
box2d: disable building unit test

Broken on at least Fedora 37 by:
unit-test/doctest.h:4021:47: error: size of array 'altStackMem' is not
  an integral constant-expression
   2023-01-24 19:36:36 by Thomas Klausner | Files touched by this commit (103)
Log message:
*: convert to cmake/build.mk
   2021-10-26 12:47:26 by Nia Alarie | Files touched by this commit (800)
Log message:
graphics: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes
   2021-10-07 16:13:27 by Nia Alarie | Files touched by this commit (800)
Log message:
graphics: Remove SHA1 hashes for distfiles
   2021-02-06 07:41:33 by Ryo ONODERA | Files touched by this commit (5)
Log message:
graphics/box2d: import box2d-2.4.1

Box2D is a 2D physics engine for games.

Features:
Collision
    Continuous collision detection
    Contact callbacks: begin, end, pre-solve, post-solve
    Convex polygons and circles
    Multiple shapes per body
    One-shot contact manifolds
    Dynamic tree broadphase
    Efficient pair management
    Fast broadphase AABB queries
    Collision groups and categories

Physics
    Continuous physics with time of impact solver
    Persistent body-joint-contact graph
    Island solution and sleep management
    Contact, friction, and restitution
    Stable stacking with a linear-time solver
    Revolute, prismatic, distance, pulley, gear, mouse joint,
      and other joint types
    Joint limits, motors, and friction
    Momentum decoupled position correction
    Fairly accurate reaction forces/impulses

System
    Small block and stack allocators
    Centralized tuning parameters
    Highly portable C++ with no use of STL containers