summaryrefslogtreecommitdiff
path: root/src/ix2.h
AgeCommit message (Collapse)Author
2018-12-14libix2: support nested area searchesVito Caputo
See 6ea78c53 in libix3 for more info, this replicates the change to keep them in something resembling API parity.
2018-11-30libix2: drop pointer from ix2_search_cb typedefVito Caputo
I despise hiding pointer types in typedefs, it makes usage less clear/obvious to the reader.
2018-11-27libix2: disambiguate ix2_search_status_tVito Caputo
Previously one could say stop/ignore/continue. There was no way to say stop and ignore, or stop but don't ignore. Now there are basically two classes of returns, stop and continue, and each of those have ignore/don't ignore sub-statuses. The naming is changed to STOP vs. MORE and HIT vs. MISS for brevity: typedef enum ix2_search_status_t { IX2_SEARCH_STOP_MISS, IX2_SEARCH_STOP_HIT, IX2_SEARCH_MORE_MISS, IX2_SEARCH_MORE_HIT } ix2_search_status_t;
2018-11-27libpad: add ix2_reset()Vito Caputo
This basically amounts to adding a pad_reset() wrapper. Also incorporated resets into the test, while fixing a stupid bug there.
2018-09-13libix2: s/aabb_t/bb2f_t/gVito Caputo
aabb_t is a dimensionless name, and I've started mixing 2D and 3D paradigms in the same projects so it's time to include the number of dimensions for the bounding box. bb2f_t is also more consistent with the vector and matrix header naming schemes I've been using.
2018-05-21libix2: introduce origin for anchoring positionVito Caputo
also use v2f_t everywhere for positions instead of the occasional float x, float y.
2018-05-18libix2: rename ix2_object_t functionsVito Caputo
ix2_insert_object ix2_remove_object ix2_move_object becomes ix2_object_new ix2_object_free ix2_object_move to be more consistent with the other libraries intended to be used with this.
2018-05-18libix2: introduce AABB-independent object positionVito Caputo
Much like libstage nodes can now have their position set using relative AABBs, it's convenient to have the same paradigm in libix2.
2018-05-14*: initial commitVito Caputo
libix2 implements a simple spatial index of objects described by 2D axis-aligned bounding boxes (AABB). It does so by internally utilizing a traditional quadtree data structure. At this time only simple AABB and point search queries are supported, with a simple per-match callback interface. It may make sense to in the future add support for indexing other 2D shapes than AABBs, like circles. It would also make senes to add more interesting search queries like radial ranges and such. The intended use is for broad-phase collision detection in 2D games.
© All Rights Reserved