Skip to content

Commit

Permalink
Total rework of doc files to ease maintenance
Browse files Browse the repository at this point in the history
  • Loading branch information
viblo committed Jan 26, 2025
1 parent fb34d74 commit 06bf7fd
Show file tree
Hide file tree
Showing 43 changed files with 8,785 additions and 4,321 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/doxygen-gh-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Build documentation

on:
push:
branches: master

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Install dependencies
run: >
sudo apt-get update && sudo apt-get install -y doxygen
- name: Configure CMake
run: >
cmake -B . -D BUILD_DOCS=ON -D BUILD_DEMOS=OFF -S ${{ github.workspace
}}
- name: Build docs
run: cmake --build docs

- name: Deploy docs
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build/html
521 changes: 521 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,9 @@ add_subdirectory(src)
if(BUILD_DEMOS)
add_subdirectory(demo)
endif()

option(BUILD_DOCS "Build documentation" OFF)

if(BUILD_DOCS)
add_subdirectory(docs)
endif()
3 changes: 2 additions & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
Copyright (c) 2007-2015 Scott Lembcke and Howling Moon Software
Copyright (c) 2025 Victor Blomqvist
Copyright (c) 2007-2024 Scott Lembcke and Howling Moon Software

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
145 changes: 145 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# Munk2D

## FORK INFO

This is a fork of the original
[Chipmunk2D](https://github.com/slembcke/Chipmunk2D) 2D physics library.

The main purpose of this fork is to be a companion for the Python 2D physics
library [Pymunk](https://www.pymunk.org) which is built on Chipmunk2D. Given the
slow pace of development of Chipmunk2D, and some unique requirements and
opportunities of Pymunk this is something that have grown over a long time. What
really made me consider making it more formal was the discussion
[here](https://github.com/slembcke/Chipmunk2D/issues/237) with Slembcke, the
creator of Chipmunk2D.

I do not foresee that I have the time, motivation or skills to really revive
Chipmunk2D. However, I hope to incorporate minor new features, and a bunch of
fixes. Any changes are driven by what make sense from the Pymunk use case.
However, I do think many of these changes are useful also to users outside
Pymunk, and you are of course free to use the fork for other projects /
languages as well.

At the moment I don't have any formal release of this fork, but I plan to make
some kind of rename and a release if/when enough changes are accumulated.

/Victor 2025-01-25

### Differences

- This fork will have ABI breaking changes. For Pymunk it does not matter, a
Pymunk version is always compiled against a specific Chipmunk2D version.
- This fork might have API breaking changes. Since Pymunk wraps Chipmunk2D in a
Python friendly API, end users of Pymunk won't be affected.
- Some additional minor features, useful from Pymunk
- Fixes to various issues, mainly those affecting Pymunk

---

## NEW IN CHIPMUNK 7

Chipmunk 7 is complete and now includes the ARM NEON optimizations, the
autogeometry code, and the mulithreaded solver.

The latest "programming
guide":http://chipmunk-physics.net/release/ChipmunkLatest-Docs/ is available.

## ABOUT

Chipmunk2D is a simple, lightweight, fast and portable 2D rigid body physics
library written in C. It's licensed under the unrestrictive, OSI approved MIT
license. My aim is to give 2D developers access to the same quality of physics
you find in newer 3D games. I hope you enjoy using Chipmunk2D!

## FEATURES

- Designed specifically for 2D video games.
- Circle, convex polygon, and beveled line segment collision primitives.
- Multiple collision primitives can be attached to a single rigid body.
- Fast broad phase collision detection by using a bounding box tree with great
temporal coherence or a spatial hash.
- Extremely fast impulse solving by utilizing Erin Catto's contact persistence
algorithm.
- Supports sleeping objects that have come to rest to reduce the CPU load.
- Support for collision event callbacks based on user definable object types
types.
- Flexible collision filtering system with layers, exclusion groups and
callbacks. \*\* Can be used to create all sorts of effects like one way
platforms or buoyancy areas. (Examples included)
- Supports nearest point, segment (raycasting), shape and bounding box queries
to the collision detection system.
- Collision impulses amounts can be retrieved for gameplay effects, sound
effects, etc.
- Large variety of joints - easily make vehicles, ragdolls, and more.
- Joint callbacks. \*\* Can be used to easily implement breakable or animated
joints. (Examples included)
- Maintains a contact graph of all colliding objects.
- Lightweight C99 implementation with no external dependencies outside of the
Std. C library.
- "Many language bindings available":http://chipmunk2d.net/bindingsAndPorts.php.
- Simple, read the "documentation":http://chipmunk2d.net/documentation.php and
see!
- Unrestrictive MIT license

## CONTRACTING

Howling Moon Software (my company) is available for contracting if you want to
make the physics in your game really stand out. Given our unique experience with
the library, we can help you use Chipmunk to its fullest potential. Feel free to
contact us through our webpage: http://howlingmoonsoftware.com/

## BUILDING

Mac OS X: There is an included Xcode project file for building the static
library and demo application. Alternatively you could use the CMake files or the
macstatic.command script inside the xcode/ directory to build a static lib and
package up the headers for you.

iPhone: A native Objective-C API is included. The Xcode project can build a
static library with all the proper compiler settings. Alternatively, you can
just run iphonestatic.command in the xcode/ directory. It will build you a fat
library compiled as release for the device and debug for the simulator. After
running it, you can simply drop the Chipmunk-iOS directory into your iPhone
project!

UNIXes: A forum user was kind enough to make a set of CMake files for Chipmunk.
This will require you to have CMake installed. To build run 'cmake .' then
'make'. This should build a dynamic library, a static library, and the demo
application. A number of people have had build errors on Ubuntu due to not
having GLUT or libxmu installed.

Windows: Visual Studio projects are included in the msvc/ directory. While I try
to make sure the MSVC 10 project is up to date, I don't have MSVC 9 to keep that
project updated regularly. It may not work. I'd appreciate a hand fixing it if
that's the case.

## GET UP TO DATE

If you got the source from a point release download, you might want to consider
getting the latest source from GitHub. Bugs are fixed and new features are added
regularly. Big changes are done in branches and tested before merging them in
it's rare for the point release downloads to be better or more bug free than the
latest code.

Head on over to "GitHub":https://github.com/slembcke/Chipmunk2D and experience
the future TODAY! (Okay, so maybe it's not that exciting.)

## GETTING STARTED

First of all, you can find the C API documentation in the doc/ directory.

A good starting point is to take a look at the included Demo application. The
demos all just set up a Chipmunk simulation space and the demo app draws the
graphics directly out of that. This makes it easy to see how the Chipmunk API
works without worrying about the graphics code. You are free to use the demo
drawing routines in your own projects, though it is certainly not the
recommended way of drawing Chipmunk objects as it pokes around at the
undocumented/private APIs of Chipmunk.

## SUPPORT

The best way to get support is to visit the "Chipmunk
Forums":http://chipmunk2d.net/forum/. There are plenty of people around using
Chipmunk on the just about every platform I've ever heard of. If you are working
on a commercial project and want some more direct help, Howling Moon Software is
also available for "contracting":http://howlingmoonsoftware.com/.
85 changes: 0 additions & 85 deletions README.textile

This file was deleted.

2 changes: 2 additions & 0 deletions TODO.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
INFO: This TODO is not up to date

Priorities:
Basics tutorial.
Simple top down player controls.
Expand Down
Loading

0 comments on commit 06bf7fd

Please sign in to comment.