A simple, lightweight spatial hash for Lua
Go to file
2022-06-16 16:39:09 +03:00
LICENSE Updated copyright year 2016 -> 2017 2017-04-03 19:35:52 +01:00
README.md Initial commit 2016-08-20 09:13:52 +01:00
shash.lua Version 0.1.2 2022-06-16 16:39:09 +03:00

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.