Documentation
    Preparing search index...

    Class SpatialHash<T>

    Fixed-capacity uniform grid for radius neighbour queries.

    Generic over the payload type stored at each key — SteeringNeighbor for flocking, a pool index wrapper for particles, or undefined when only positions matter.

    Type Parameters

    • T
    Index
    cellSize: number

    Cubic cell edge length in world units.

    • Insert or replace an entry.

      A fresh key receives the next insertion-order ticket. Replacing an existing key keeps the original ticket so steering order stays stable when positions are updated in place via SpatialHash.update.

      Parameters

      • key: number
      • x: number
      • y: number
      • z: number
      • data: T

      Returns void

    • Collect payloads of every entry within radius of (cx, cy, cz).

      out is cleared, then filled in insertion order. Pass excludeKey to omit self-neighbours (typical when the query centre is an agent's own position). Returns out for chaining.

      Parameters

      • cx: number
      • cy: number
      • cz: number
      • radius: number
      • out: T[]
      • OptionalexcludeKey: number

      Returns readonly T[]

    • Collect keys of every entry within radius of (cx, cy, cz).

      Same ordering rules as SpatialHash.query. Useful when payloads are looked up elsewhere (for example a parallel SoA particle pool).

      Parameters

      • cx: number
      • cy: number
      • cz: number
      • radius: number
      • out: number[]
      • OptionalexcludeKey: number

      Returns readonly number[]

    • Remove an entry. Returns false when the key was not present.

      Parameters

      • key: number

      Returns boolean

    • Move an existing entry to a new position. Throws if the key is absent.

      Parameters

      • key: number
      • x: number
      • y: number
      • z: number

      Returns void