yy-spatialmap

1.0.3 • Public • Published

spatialMap

2D Spatial Map for javascript

Live Example with Source

https://davidfig.github.io/spatialmap/

Installation

npm install yy-spatialmap

API Reference

SpatialMap

Kind: global class

new SpatialMap(cellSize, width, height, options)

2D spatial map

Param Type Description
cellSize number used to create map
width number of world
height number of world
options object
options.update boolean keep a second list of elements to enable update

Example

var map = new SpatialMap();

// use your own 2D graphics libraries--I like PIXI.js
var circle = new Circle(10, 10, 5);

// each object must have an AABB bounding box [x1, y1, x2, y2],
// see yy-intersects (github:davidfig/intersects) for a library that provides this with various shapes
circle.AABB = [5, 5, 10, 10];
map.insert(circle);

// returns the circle
var results = map.query([0, 0, 10, 10]);

// or iterate over the results to avoid creating new arrays
map.query([0, 0, 10, 10],
 function(object)
 {
     object.draw();
 }
);

spatialMap.insert(object, AABB)

inserts an object into the map (also removes object from last insertion) side effect: adds object.spatial to track last insertion

Kind: instance method of SpatialMap

Param Type Description
object object
AABB Array.<number> bounding box [x1, y1, x2, y2]

spatialMap.remove(object)

removes existing object from the map

Kind: instance method of SpatialMap

Param Type
object object

spatialMap.query(AABB) ⇒ Array.<object>

returns an array of objects contained within bounding box NOTE: this may include duplicates

Kind: instance method of SpatialMap
Returns: Array.<object> - search results

Param Type Description
AABB Array.<number> bounding box to search [x1, y1, x2, y2]

spatialMap.queryCallbackArticle(AABB, callback) ⇒ boolean

iterates through objects in the same buckets as article stops iterating if the callback returns true

Kind: instance method of SpatialMap
Returns: boolean - true if callback returned early

Param Type Description
AABB Array.<number> bounding box to search [x1, y1, x2, y2]
callback function

spatialMap.queryCallback(AABB, callback) ⇒ boolean

iterates through objects contained within bounding box stops iterating if the callback returns true

Kind: instance method of SpatialMap
Returns: boolean - true if callback returned early

Param Type Description
AABB Array.<number> bounding box to search [x1, y1, x2, y2]
callback function

spatialMap.getAverageSize() ⇒ number

helper function to evaluate proper cell size

Kind: instance method of SpatialMap
Returns: number - the average number of entries in each bucket

spatialMap.getLargest() ⇒ number

helper function to evaluate proper cell size

Kind: instance method of SpatialMap
Returns: number - the largest sized bucket

spatialMap.getBuckets() ⇒ Array.<object>

helper function to evaluate SpatialMap

Kind: instance method of SpatialMap
Returns: Array.<object> - an array of buckets in the form of [x1, y1, x2, y2]


Copyright (c) 2016 YOPEY YOPEY LLC - MIT License - Documented by jsdoc-to-markdown

Readme

Keywords

none

Package Sidebar

Install

npm i yy-spatialmap

Weekly Downloads

1

Version

1.0.3

License

MIT

Last publish

Collaborators

  • davidfig