Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chriscamacho/bulletcapi

C API for Bullet Physics
https://github.com/chriscamacho/bulletcapi

bullet-physics c99 wrapper

Last synced: 4 days ago
JSON representation

C API for Bullet Physics

Awesome Lists containing this project

README

        

### Depricated not suggested for use

Unfortunately over the years I have found the bullet API to be quite fragile often new versions of bullet have caused breaking changes.
Contrast this with the much more straight forward and more importantly *stable* API of OpenDE for example...

### Why?

I wanted to use bullet physics from C (not a C++ fan)

### But doesn't bullet already have a C API?

Yes but alas its tightly enmeshed with the rest of the example code,
like the exampleBrowser, I want to just use the core code of bullet I
need and also provide my own graphics routines.

### So whats the point again?

The primary goal of this C API is to provide the core functionallity of
bullet without weighing it down with unrelated graphics or other utility
code

## Instructions
start off in the capi sub directory

compiling this project will provide you with a textual demonstration
and also a static library of the parts bullet the C API is currently
using. In addition this is where the C header lives (capi.h)
In order for the makefile to work you will have to locate where you
have extracted the bullet sdk. Look inside bullet.mk

# root of bullet source code
BULL=../../bullet3/src/

adjust this path to point to the source directory of bullet, this part
of the build system is possibly less than optimal but it does ensure
complete independence from the bullet build system.

Once you have verified that the CAPI example works you can move onto the
simple graphical example.

alternativly if you are not bothered about playing with the console test
you can just do

make lib/libbullet.a

in addition to libbullet.a you will need capi.o (compiled from capi.cpp)

### gluTest
This is a horror, no truly, its NOT an example of how you should produce
graphics. That said its a minimum amount of code that can show some
kind of 3d graphics, without there being the confusion of a mini
graphics engine, with model loaders, shaders and lots of other things
that could enmesh it into a very specific use case...
This example does show using some basic modifications to a body such as
changing basic properties like friction and restitution to make a
pleasing demonstration

external to this folder gluTest links in libbullet.a and compiles
capi.cpp and links that to main.o the C frontend of this example.

### GL3v3
while a better (though probably not ideal) example of producing 3d graphics
this does add a bunch of extra clutter (theres way more OpenGL and support
stuff than actual bullet use!) This example is where new features are introduced
you will need to adjust the makefile for its dependancy (https://github.com/Kazade/kazmath)
if you clone it to a location alongside bulletCapi you should be good to go

### cppHello
This is a simple cpp reference example, building this with libraries
compiled by bullets own build system lead to difficult to diagnose
memory corruption (hence I decided to implement bullet.mk...) it was
initially used to provide a reference design that I used to begin
writing capi.cpp and capi.hpp which constitutes the C++ layer between
the C front end and the C++ backend
This will be removed before long as the "wrapper" is already more fully
featured that this example.

## The API

please see the doxygen docs

### Conclusion
This is very early days, there is lots to do, any contributions
especially examples most apreciated, if an example needs some missing
functionallity please do post an issue.