To provide useful algorithms that you can perform on a dinotree.
Checkout the inner demo project to see how all these algorithms can be used.
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.
Please see the dinotree_report github project, for a writeup of the design and analysis of the algorithms in this project.
Contains aabb broadphase query code
Contains find element code.
Provides functionality to draw the dividers of a dinotree.
Allows user to intersect the tree with a seperate group of bots.
Contains all k_nearest code.
Contains multirect code.
Contains all nbody code.
Contains all raycast code.
Contains rect code. Provides two basic functions: for_all_in_rect, for_all_intersect_rect that both have similar api like this: