Single-file C libraries under the MIT license. Documentation can be found at the top of each header file, but some libraries have an accompanying blog post.
|par_msquares.h||efficient marching squares implementation||blog post|
|par_shapes.h||generate parametric surfaces and other simple shapes||blog post|
|par_bubbles.h||pack circles into hierarchical diagrams||blog post|
|par_bluenoise.h||generate progressive 2D point sequences||blog post|
|par_sprune.h||efficient broad-phase collision detection in 2D||web demo|
|par_easycurl.h||simple HTTP requests using libcurl|
|par_filecache.h||LRU caching on your device's filesystem|
|par_easings.h||Robert Penner's easing functions|
To run tests, you need CMake and libcurl. On OS X, these can be installed with homebrew:
$ brew install cmake pkg-config curl
Here's how you can tell CMake to use the CMakeLists in the
test folder, placing all the messy stuff in a new folder called
$ cmake test -Bbuild # Create makefiles $ cmake --build build # Invoke the build
The tests are executed by simply running the programs:
$ build/test_msquares $ build/test_bluenoise $ build/test_bubbles $ build/test_shapes
This library's code style is strictly enforced to be vertically dense (no consecutive newlines) and horizontally narrow (80 columns or less).
tools/format.py script invokes a two-step code formatting process:
uncrustifywith our custom configuration. This auto-formats all code in the root folder, up to a point. For example, it does not enforce the 80-character line constraint because line breaking is best done by a human.
- Checks for violations that are not otherwise enforced with uncrustify.
The aforementioned Python script is also invoked from Travis, but using the
--check option, which checks for conformance without editing the code.
Beyond what our uncrustify configuration enforces, the Python script does the following:
- Checks that no lines are more than 80 chars.
- Checks for extra newlines before an end brace.