mirror of
https://github.com/rxi/shash.git
synced 2024-11-24 16:54:34 +00:00
43 lines
1.3 KiB
Markdown
43 lines
1.3 KiB
Markdown
# 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](LICENSE) for details.
|