5 releases

✓ Uses Rust 2018 edition

0.2.2 Jan 6, 2019
0.2.1 Jan 5, 2019
0.2.0 Jan 3, 2019
0.1.1 Nov 5, 2018
0.1.0 Nov 4, 2018

#297 in Data structures

44 downloads per month

MIT/Apache

111KB
2K SLoC

License

Provides various query aabb broad phase algorithms such as collision pair finding, raycast, or k_nearest, on the dinotree data structure.

Inner projects

The dinotree_alg_demo inner project is meant to show case the use of these algorithms. It depends on the piston 2d engine to draw to the screen.

The dinotree_alg_data project generates some graphs using RustGnuPlot. These graphs are used to create the reports in the dinotree_report project that is a seperate dinotree project.

Analysis

Please see the dinotree_report github project for a writeup of the design and analysis of the algorithms in this project.

License

Licensed under the terms of MIT license and the Apache License (Version 2.0).

See LICENSE-MIT and LICENSE-APACHE for details.


lib.rs:

Goal

To provide useful algorithms that you can perform on a dinotree.

Notes

Checkout the inner demo project to see how all these algorithms can be used.

Testing

A quick way to verify to a good level a lot of these algorithms is visually, so the demo inner project is used to verify correctness of a lot of these algorithms. Some of the algorithms demos additionally have an option to verify the algorithm against the naive algorithm. This is to catch more subtle corner case bugs. The demo projects are not deterministic. Its up to the user to try and trigger corner cases by moving their mouse around. More rigorous automated + visual testing and benchmarking is needed.

Simply testing for correctness doesnt mean the algorithms are working as expected. The dinotree_alg_data inner project measures a lot of these algorithms to give an even better feel that they are working as anticipated.

Analysis

Please see the dinotree_report github project, for a writeup of the design and analysis of the algorithms in this project.

Dependencies

~2MB
~35K SLoC