Fork of openGJK with minor fixes https://github.com/MattiaMontanari/openGJK/pull/42
 
 
Go to file
Mattia Montanari 5f03ab18f4 Merge branch 'cmakeWin' into dev 2021-07-03 13:33:36 +02:00
.github/workflows Add CI for cython 2020-05-21 18:39:20 +01:00
cmake Improve on C flag setup and support OpenMP 2020-05-03 23:27:21 +01:00
examples Merge branch 'cmakeWin' into dev 2021-07-03 13:33:36 +02:00
include/openGJK New sub-algorithm 2020-04-18 12:28:17 +01:00
src Amend tolerances and exit conditions 2020-05-05 16:34:22 +01:00
.gitignore Merge branch 'cmakeWin' into dev 2021-07-03 13:33:36 +02:00
CMakeLists.txt Merge branch 'cmakeWin' into dev 2021-07-03 13:33:36 +02:00
COPYING New sub-algorithm 2020-04-18 12:28:17 +01:00
INSTALL.md New sub-algorithm 2020-04-18 12:28:17 +01:00
LICENSE New sub-algorithm 2020-04-18 12:28:17 +01:00
README.md New sub-algorithm 2020-04-18 12:28:17 +01:00

README.md

openGJK

OpenGJK implements a new version of the Gilbert-Johnson-Keerthi (GJK) algorithm to compute the minimum distance between convex polytopes. OpenGJK is a C library which was tested on Unix and Windows using different compilers for multi-threaded applications.

Detailed information about the algorithm see "Improving the GJK Algorithm for Faster and More Reliable Distance Queries Between Convex Objects. ACM Trans. on Graph. 2017".

When should I use openGJK?

OpenGJK is designed with speed, accuracy and robustness in mind and is therefore suitable for engineering, robotics and computer graphics simulations. Basically, openGJK can be used in any application where the distance between any convex polytope is required.

Compile and run

To compile the OpenGJK library create a build dir, and in the build dir call 'cmake ..' followed by 'make'. More details can be found in the INSTALL file.

There are examples for C, C# and Matlab in the examples folder. The INSTALL file provides information on how to run the examples.

Repository content

This repository contains the following files and folders:

│   CMakeLists.txt
│   README.md
│   
├───doc
│       openGJKcustomfooter.html
│       openGJKcustomheader.html
│       openGJKcustomstyle.css
│       Doxyfile
│       oxfordLogo.jpg
│       
├───example1_c
│       CMakeLists.txt
│       main.c
│       userP.dat
│       userQ.dat
│       
├───example2_mex
│       main.m
│       runme.m
│       
├───example3_csharp
│       main.cs
│       
└───lib
    │   CMakeLists.txt
    │   
    ├───ext
    │       predicates.c
    │       predicates.h
    │       
    ├───include
    │   └───openGJK
    │           openGJK.h
    │           
    └───src
            openGJK.c

More information

OpenGJK was developed at the Impact Engineering Laboratory, University of Oxford.

A clear presentation of the GJK algorithm can be found in the book by Van der Bergen Collision Detection in Interactive 3D Environments, edited by Elsevier.

More details about the GJK algorithm can be found in the original paper from Gilbert, Johnson and Keerthi A fast procedure for computing the distance between complex objects in three-dimensional space.

How to cite openGJK

If you use openGJK for your research please cite OpenGJK for C, C# and Matlab: Reliable solutions to distance queries between convex bodies in three-dimensional space. SoftwareX. 2018.

License

This project is licensed undert the GNU General Public License v3.0.
openGJK: open-source Gilbert-Johnson-Keerthi algorithm
Copyright (C) Mattia Montanari 2018 - 2019
http://iel.eng.ox.ac.uk/?page_id=504