/shash

A simple, lightweight spatial hash for Lua

Primary LanguageLuaMIT LicenseMIT

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.