ReadonlystateMonotonic counter that bumps every time the strategy's internal state changes in a way that invalidates cached results — for example, when a RoutingPickStrategy's renderer becomes available, or its WebGL context is lost. A future memoising decorator compares this against the epoch stamped on cached results to know when to drop them.
Strategies whose state never changes (e.g. BVHPickStrategy)
may always return 0.
OptionaldisposeTear down any held subscriptions or cached resources. Idempotent. Optional — most leaves don't need it.
Run one pick. Sync — even when the GPU backend is involved,
gl.readPixels blocks until the result is in. See
PickResult for what's populated.
Abstract picking backend.
Implementations:
A future MemoisingPickStrategy (decorator) is anticipated in the same module — the interface stays minimal so decorators compose naturally.
Lifetime
Strategies that subscribe to events (renderer attach, context loss) implement dispose to unwind those subscriptions. Pure adapters can leave it unimplemented.