Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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.

**Kind**: global function

## 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.

**Kind**: global function

## update()
Unlike the rebuild method, the update method does not restore subdivided empty Q43s.

**Kind**: global function

## size() ⇒ Number
Calculates the amount of points a Q43 has.

**Kind**: global function

## draw(ctx, tree, point)
For debugging purposes

**Kind**: global function

| Param | Type |
| --- | --- |
| ctx | CanvasRenderingContext2D |
| tree | Boolean |
| point | Boolean |