IFClite TypeScript API
    Preparing search index...

    Class VisibilityEpochTracker

    Content-based change tracking for the per-frame hide/isolate sets.

    The renderer caches per-batch visibility keyed by the version this tracker produces, so correctness demands the version bumps EXACTLY when the effective filter changes:

    • Callers may mutate the SAME Set object in place between frames (the per-mesh filters read the live set every frame, so a reference-compare epoch would silently diverge from them) — content comparison against a snapshot catches this.
    • Callers may pass a FRESH Set with identical content every frame (zustand slices rebuild the Set on every action) — content comparison avoids a needless cache rebuild that a reference compare would force.
    Index
    • Returns number

    • Feed the sets passed to render(); returns the current version, bumped when the content changed since the previous call. An EMPTY hidden set is equivalent to no hidden filter; an EMPTY isolated set is NOT equivalent to null (it isolates nothing, i.e. hides everything). Cost is O(|hidden| + |isolated|) membership checks per call — strictly below the O(scene elements) per-batch scan this version key lets the renderer skip.

      Parameters

      • hiddenIds: ReadonlySet<number> | null | undefined
      • isolatedIds: ReadonlySet<number> | null | undefined

      Returns number