Detailed Description

The space cost for n elements is O(n). For data with approximately uniform density (with respect to the radius hint), the time cost of searching for neighbors is O(1).

You can move members of the data set by first removing them and then adding them with a new location.

Template argument PosFunc must provide a static getPosition method and EqualsFunc must provide a static equals method, as described below. You can either write classes that support these yourself, provide template specializations of G3D::PositionTrait and G3D::EqualsTrait, or rely on the default template specializations, which already exist for common G3D classes like G3D::Point3. For example:

the radius that will typically be used with beginBallIntersection and beginBoxIntersection. If two Values are equal, their positions must be within this radius as well. You can later change this value with clearAndSetRadiusHint().

Calls delete on all of the values, which are assumed to be pointers. This is a helper to avoid requiring you to iterate through the data structure, removing and deleting each one. Clears the PointHashGrid at the end.

Using objects (instead of pointers) or reference counted pointers is recommended over using pointers and this deleteAll method.