Class: LightSourceRegistry
Pooled structure-of-arrays storage for every registered local light. Handles are generation-checked packed integers; all mutators are in-place writes with zero allocation. The registry knows nothing about selection, chunks, or the GPU — it is the single source of truth the rest of the system reads.
Constructors
constructor
• new LightSourceRegistry(capacity): LightSourceRegistry
Parameters
| Name | Type |
|---|---|
capacity | number |
Returns
Properties
aliveCount
• aliveCount: number = 0
aliveIndices
• Readonly aliveIndices: Uint32Array<ArrayBufferLike>
Dense list of alive slot indices, iteration order = allocation order.
aux
• Readonly aux: Float32Array<ArrayBufferLike>
Spot: direction xyz + cosOuter. Capsule: end offset xyz + 0.
capacity
• Readonly capacity: number
colors
• Readonly colors: Float32Array<ArrayBufferLike>
flags
• Readonly flags: Uint8Array<ArrayBufferLike>
flickers
• Readonly flickers: Float32Array<ArrayBufferLike>
Flicker speed, amplitude, phase, and the spot's inverse cos delta.
intensities
• Readonly intensities: Float32Array<ArrayBufferLike>
positions
• Readonly positions: Float32Array<ArrayBufferLike>
priorityBiases
• Readonly priorityBiases: Float32Array<ArrayBufferLike>
ranges
• Readonly ranges: Float32Array<ArrayBufferLike>
revision
• revision: number = 1
Bumped on any mutation that can change selection or packed data; the clustering pass compares it to decide whether any work exists at all.
shapes
• Readonly shapes: Uint8Array<ArrayBufferLike>
shares
• Readonly shares: Float32Array<ArrayBufferLike>
Methods
add
▸ add(descriptor, x, y, z): number
Parameters
| Name | Type |
|---|---|
descriptor | LocalLightDescriptor |
x | number |
y | number |
z | number |
Returns
number
generationAt
▸ generationAt(index): number
Current generation of a slot, for state keyed to a light's lifetime rather than its slot (selection hysteresis must not survive slot reuse).
Parameters
| Name | Type |
|---|---|
index | number |
Returns
number
isEnabledAt
▸ isEnabledAt(index): boolean
Parameters
| Name | Type |
|---|---|
index | number |
Returns
boolean
remove
▸ remove(handle): boolean
Parameters
| Name | Type |
|---|---|
handle | number |
Returns
boolean
resolve
▸ resolve(handle): number
Slot index for a live handle, or -1 for stale/invalid ones.
Parameters
| Name | Type |
|---|---|
handle | number |
Returns
number
setColor
▸ setColor(handle, color): boolean
Parameters
| Name | Type |
|---|---|
handle | number |
color | [number, number, number] |
Returns
boolean
setDirection
▸ setDirection(handle, x, y, z): boolean
Parameters
| Name | Type |
|---|---|
handle | number |
x | number |
y | number |
z | number |
Returns
boolean
setEnabled
▸ setEnabled(handle, isOn): boolean
Parameters
| Name | Type |
|---|---|
handle | number |
isOn | boolean |
Returns
boolean
setIntensity
▸ setIntensity(handle, intensity): boolean
Parameters
| Name | Type |
|---|---|
handle | number |
intensity | number |
Returns
boolean
setPosition
▸ setPosition(handle, x, y, z): boolean
Parameters
| Name | Type |
|---|---|
handle | number |
x | number |
y | number |
z | number |
Returns
boolean
setRange
▸ setRange(handle, range): boolean
Parameters
| Name | Type |
|---|---|
handle | number |
range | number |
Returns
boolean