LICENSE | ||
README.md | ||
shash.lua |
shash.lua
A simple, lightweight spatial hash for Lua.
Functions
shash.new([cellsize])
Creates a new spatial hash; if cellsize
is not specified a default value of
64
is used.
:add(obj, x, y, w, h)
Adds an object with the given bounding box to the spatial hash.
:update(obj, x, y [, w, h])
Updates the object's bounding box.
:remove(obj)
Removes the object from the spatial hash.
:clear()
Removes all objects from the spatial hash.
:each(x, y, w, h, fn, ...)
:each(obj, fn, ...)
For each object which overlaps with the given bounding box or object, the
function fn
is called. The first argument passed to fn
is the overlapping
object, followed by any additional arguments passed to each()
.
:info(opt, ...)
Returns information about the spatial hash which can be useful for debugging. Available options and their arguments are as follows:
Opt | Args | Description |
---|---|---|
entities |
Returns the total number of entities | |
cells |
Returns the total number of cells | |
cell |
x , y |
Returns the number of entities in the cell |
License
This library is free software; you can redistribute it and/or modify it under the terms of the MIT license. See LICENSE for details.