michalsanger / quadtree
An easy-to-modify Quadtree with standard 2D implementation.
v0.7.0
2014-10-28 23:31 UTC
Requires
- php: >=5.3.3
Requires (Dev)
- nette/tester: v1.2.0
This package is not auto-updated.
Last update: 2025-02-25 05:51:53 UTC
README
An easy-to-modify Quadtree with standard 2D implementation.
Usage
Standard 2D collision detection supports points and bounds (rectangular regions):
use \Quadtree\Quadtree; use \Quadtree\Geometry\Bounds; use \Quadtree\Geometry\Point; $qtBounds = new Bounds(1024, 1024); $qt = new Quadtree($qtBounds); $qt->insert(new Bounds(300, 200)); // TRUE $qt->insert(new Bounds(100, 50, 20, 10)); // FALSE $qt->insert(new Point(250, 100)); // FALSE $qt->insert(new Point(2000, 500)); // FALSE $qt->insert(new Point(299, 199)); // TRUE
Need more logic for collision detection? Create your own ICollisionDetector
.
Need to insert other objects then points and bounds? Implement Insertable
interface.
API
Installation
Use Composer:
composer require michalsanger/quadtree
Tests
Due to Nette Tester tests are simple and readable. Run:
> vendor/bin/tester tests/