Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lxsmnsyc/q43
A Quadtree class for JS/ES
https://github.com/lxsmnsyc/q43
aabb axis-aligned-bounding-box data-structures datastructures game game-dev game-development game-engine graph-algorithms quad-tree quadtree space-partitioning tree tree-structure
Last synced: about 2 months ago
JSON representation
A Quadtree class for JS/ES
- Host: GitHub
- URL: https://github.com/lxsmnsyc/q43
- Owner: lxsmnsyc
- License: mit
- Created: 2018-07-12T15:16:39.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-07-27T14:55:45.000Z (over 6 years ago)
- Last Synced: 2024-10-20T01:11:39.751Z (2 months ago)
- Topics: aabb, axis-aligned-bounding-box, data-structures, datastructures, game, game-dev, game-development, game-engine, graph-algorithms, quad-tree, quadtree, space-partitioning, tree, tree-structure
- Language: JavaScript
- Size: 388 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Q43
A Quadtree class for JS/ES
## Install
```bash
npm i q43
```### API
## Q43(ax, ay, bx, by, cap) ⇒Q43
Create a Q43 instance**Kind**: global function
| Param | Type | Description |
| --- | --- | --- |
| ax |Number
| minimum X of the Q43 boundary |
| ay |Number
| minimum Y of the Q43 boundary |
| bx |Number
| maximum X of the Q43 boundary |
| by |Number
| maximum Y of the Q43 boundary |
| cap |Number
| The amount of points a Q43 instance can store. |
## containsX(px) ⇒Boolean
Check if x is within the Q43's x-axis**Kind**: global function
| Param | Type |
| --- | --- |
| px |Number
|## containsY(py) ⇒
Boolean
Check if y is within the Q43's x-axis**Kind**: global function
| Param | Type |
| --- | --- |
| py |Number
|## containsPoint(px, py) ⇒
Boolean
Check if point is within the Q43's x-axis**Kind**: global function
| Param | Type |
| --- | --- |
| px |Number
|
| py |Number
|## subdivide()
Subdivide the Q43 into four equal parts.## insert(pt) ⇒
Boolean
Insert a point to the Q43**Kind**: global function
| Param | Type |
| --- | --- |
| pt |Array
|## remove(pt) ⇒
Boolean
Remove a point from the Q43**Kind**: global function
| Param | Type |
| --- | --- |
| pt |Array
|## query(cond) ⇒
Array
Get all points from the Q43 given a condition**Kind**: global function
**Returns**:Array
- - array of points| Param | Type | Description |
| --- | --- | --- |
| cond |function
| the filter function |## all() ⇒
Array
Get all points from the Q43**Kind**: global function
**Returns**:Array
- - array of points## queryBounds(ax, ay, bx, by, cond) ⇒
Array
Get all points from a Q43 that is within a given boundary and passes the condition**Kind**: global function
**Returns**:Array
- - array of points| Param | Type | Description |
| --- | --- | --- |
| ax |Number
| minimum x of the given boundary |
| ay |Number
| minimum y of the given boundary |
| bx |Number
| maximum x of the given boundary |
| by |Number
| maximum y of the given boundary |
| cond |function
| a filter function, optional |## queryRange(px, py, radius, cond) ⇒
Array
Gets all points within the radius of another point from the Q43**Kind**: global function
| Param | Type | Description |
| --- | --- | --- |
| px |Number
| |
| py |Number
| |
| radius |Number
| |
| cond |function
| filter function, optional |## for(handler)
Iterates all points in the Q43 and passes them to a handler function**Kind**: global function
| Param | Type |
| --- | --- |
| handler |function
|## forBounds(ax, ay, bx, by, handler)
Iterates all points in the Q43 that are within the bounds
and passes them to a handler function.
**Kind**: global function| Param | Type |
| --- | --- |
| ax |Number
|
| ay |Number
|
| bx |Number
|
| by |Number
|
| handler |function
|## forRange(px, py, radius, handler)
Iterates all points within the radius of another point in the Q43
and passes them to a handler.**Kind**: global function
| Param | Type |
| --- | --- |
| px |Number
|
| py |Number
|
| radius |Number
|
| handler |function
|## rebuild() ⇒
Q43
This is useful for rebuilding a quadtree whose points have updated coordinates.## update()
Unlike the rebuild method, the update method does not restore subdivided empty Q43s.## size() ⇒
Number
Calculates the amount of points a Q43 has.## draw(ctx, tree, point)
For debugging purposes**Kind**: global function
| Param | Type |
| --- | --- |
| ctx |CanvasRenderingContext2D
|
| tree |Boolean
|
| point |Boolean
|