GithubHelp home page GithubHelp logo

jslee02 / libccd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from danfis/libccd

0.0 3.0 0.0 436 KB

Library for collision detection between two convex shapes

Home Page: libccd.danfis.cz

License: Other

Shell 0.43% Makefile 2.00% C 87.21% C++ 2.16% Objective-C 2.50% Python 5.69%

libccd's Introduction

libccd is library for a collision detection between two convex shapes.
libccd implements variation on Gilbert–Johnson–Keerthi algorithm plus Expand
Polytope Algorithm (EPA) and also implements algorithm Minkowski Portal
Refinement (MPR, a.k.a. XenoCollide) as described in Game Programming Gems 7.

For more info see home of libccd: http://libccd.danfis.cz.

For implementation details on GJK algorithm, see
http://www.win.tue.nl/~gino/solid/jgt98convex.pdf.


Dependencies
-------------
This library is currently based only on standard libraries.
The only exception are testsuites that are built on top of CU
(cu.danfis.cz) library licensed under LGPL, however only testing depends on
it and libccd library itself can be distributed without it.


License
--------
libccd is licensed under OSI-approved 3-clause BSD License, text of license
is distributed along with source code in BSD-LICENSE file.
Each file should include license notice, the rest should be considered as
licensed under 3-clause BSD License.


Compile And Install
--------------------
Simply type 'make' and 'make install' in src/ directory.

Library libccd is by default compiled in double precision of floating point
numbers - you can controll this by options USE_SINGLE/USE_DOUBLE, i.e.:
    $ make USE_SINGLE=yes
will compile library in single precision.

Installation directory can be changed by options PREFIX, INCLUDEDIR and
LIBDIR.

For more info type 'make help'.


Compile And Install Using Autotools
------------------------------------
libccd also contains support for autotools:
1) Generate configure script etc.: $ ./bootstrap
2) Create new build/ directory: $ mkdir build && cd build
3) Run configure script: $ ../configure
4) Run make and make install: $ make && make install

configure script can change the way libccd is compiled and installed, most
significant option is --enable-double-precision which enables double
precision (single is default in this case).


Usage
------
See ccd.h for public API.
In your application include <ccd/ccd.h>, setup ccd_t structure and run some
of functions (all functions are reentrant). Then link with libccd.a.


Directories
------------
src/
    - contains source files of libccd.
src/testsuites
    - testsuites - libccd must be compiled before compiling this.
src/testsuites/cu
    - CU unit testing framework
src/testsuites/regressions
    - files ready for regression tests

doc/
    - some documentation.

libccd's People

Contributors

danfis avatar j-rivero avatar scpeters avatar

Watchers

James Cloos avatar Jeongseok (JS) Lee avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.