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

https://github.com/maosong2022/computation-geometry

Some algorithms in computation geometry
https://github.com/maosong2022/computation-geometry

algorithm geometry

Last synced: 4 months ago
JSON representation

Some algorithms in computation geometry

Awesome Lists containing this project

README

          

# Computation-Geometry
An C++ based computation geometry library, used to find the relationship between geometry shapes.
For details of implemented algorithms, check the github pages generated by [doxygen](https://www.doxygen.nl/):

https://maosong2022.github.io/Computation-Geometry/index.html

# Usage
To use this repository, first clone the repository:
```shell
git clone https://github.com/MaoSong2022/Computation-Geometry.git
cd Computation-Geometry/
```

then, navigate the `src/main.cpp` to view how to use algorithms.
You may modify the `main.cpp` to do something.

After modification, use [CMake](https://cmake.org/) to build the project:
```shell
# in root directory
mkdir build && cd build
cmake ..
cmake --build .
```

after building the project, you can run the program:
```shell
# in build directory
./src/Computation_Geometry_run
```

# Test
We use [googletest](https://github.com/google/googletest) as our test framework.
To check the test results, after building the project, run
```shell
# in build directory
ctest
```
to see the overall results.

For details of the project, run
```shell
# in build directory
./test/Computation_Geometry_test
```
to check the details of each test.

# Project Status
Done:
- [x] Implementation of GJK algorithm
- [x] Implementation of Separate Axis Theorem algorithm
- [x] add other collision detection algorithms
- [x] AABB-surrogate
- [x] circle-surrogate

Todo:
- [ ] add computations of distance if two shapes do not collide.
- [ ] add more test
- [ ] extend 2d to 3d

# Acknowledgement
When generating the github pages, I referred to the tutorial given by [Github-Documentation-With-Doxygen](https://github.com/satu0king/Github-Documentation-With-Doxygen).