Repository navigation
v0.4.0
What's New
Breaking Changes
QuadTreeis now generic over ID type:QuadTree(T)instead of fixedu32QuadTreeusesEntityPoint(T)withPositionfield instead of separatex/ycoordinates- Removed
QuadTreeNodeexport (now internal type)
New Features
-
Sweep and Prune: O(n log n) broad-phase collision detection
SweepAndPrune(T)- generic over ID typefindCollisions()- find all overlapping AABB pairsqueryRect()andqueryRadius()- spatial queriesAABBandCollisionPairhelper types
-
QuadTree enhancements:
queryRadius(center, radius, buffer)- circular queriesremove(id)- remove entities by IDupdate(id, new_pos)- update entity positionshasPointInRect(range)- existence check without collecting resultsresetWithBoundaries(positions)- reset with auto-computed bounds
-
Rectangle improvements:
fromPosition(pos, w, h)- create from Positioncentered(pos, w, h)- create centered on Positioncenter()- get center Positionposition()- get top-left PositioncontainsPosition(pos)- Position-based containment
Improvements
- QuadTree uses flat array storage for better cache efficiency
- All spatial queries now use
Positiontype consistently - Both QuadTree and SweepAndPrune support generic ID types
- 45 tests covering all functionality