IFClite TypeScript API
    Preparing search index...

    Type Alias StreamingGeometryEvent

    StreamingGeometryEvent:
        | { totalEstimate: number; type: "start" }
        | { modelID: number; type: "model-open" }
        | {
            coordinateInfo?: CoordinateInfo;
            instancedGeometryAabbValues?: Float64Array;
            instancedGeometryHashIds?: Uint32Array;
            instancedGeometryHashValues?: BigUint64Array;
            instancedGeometryVolumeValues?: Float64Array;
            instancedShards?: ArrayBuffer[];
            meshes: MeshData[];
            nativeTelemetry?: NativeBatchTelemetry;
            totalSoFar: number;
            type: "batch";
        }
        | {
            type: "colorUpdate";
            updates: Map<number, [number, number, number, number]>;
        }
        | {
            hasRtc: boolean;
            rtcOffset: { x: number; y: number; z: number };
            type: "rtcOffset";
        }
        | {
            meshBytes: number;
            type: "workerMemory";
            wasmHeapBytes: number;
            workerIndex: number;
        }
        | { phase: "prepass"
        | "workers"; type: "progress" }
        | {
            coordinateInfo: CoordinateInfo;
            diagnostics?: GeometryDiagnostics;
            skippedHungElements?: SkippedHungElements;
            totalMeshes: number;
            type: "complete";
        }

    Type Declaration

    • { totalEstimate: number; type: "start" }
    • { modelID: number; type: "model-open" }
    • {
          coordinateInfo?: CoordinateInfo;
          instancedGeometryAabbValues?: Float64Array;
          instancedGeometryHashIds?: Uint32Array;
          instancedGeometryHashValues?: BigUint64Array;
          instancedGeometryVolumeValues?: Float64Array;
          instancedShards?: ArrayBuffer[];
          meshes: MeshData[];
          nativeTelemetry?: NativeBatchTelemetry;
          totalSoFar: number;
          type: "batch";
      }
      • OptionalcoordinateInfo?: CoordinateInfo
      • OptionalinstancedGeometryAabbValues?: Float64Array

        World boxes (#1891) for those same instanced-only entities: SIX values per instancedGeometryHashIds entry, minXYZ then maxXYZ, absolute world in the renderer's Y-up frame. A NaN span means that entity produced no box; the whole array is omitted when none did.

      • OptionalinstancedGeometryHashIds?: Uint32Array

        Geometry-diff hashes (#924) for instanced-ONLY entities — those whose whole geometry went to the shard, so no flat MeshData carries the hash. Parallel arrays (express id → hash) so compare still detects changes on repeated opaque elements. Present only when geometry hashing is on.

      • OptionalinstancedGeometryHashValues?: BigUint64Array
      • OptionalinstancedGeometryVolumeValues?: Float64Array

        Proved enclosed volumes in m³ (#1993) for those same instanced-only entities: ONE value per instancedGeometryHashIds entry, NaN where the kernel could not prove one. The whole array is omitted when no entity in the batch had a volume.

      • OptionalinstancedShards?: ArrayBuffer[]

        Emit-both GPU-instancing: per-batch IFNS shards (transferable). The consumer decodes + uploads them as instanced overlays; present only once the wasm exposes processGeometryBatchInstanced.

      • meshes: MeshData[]
      • OptionalnativeTelemetry?: NativeBatchTelemetry
      • totalSoFar: number
      • type: "batch"
    • { type: "colorUpdate"; updates: Map<number, [number, number, number, number]> }
    • {
          hasRtc: boolean;
          rtcOffset: { x: number; y: number; z: number };
          type: "rtcOffset";
      }
    • {
          meshBytes: number;
          type: "workerMemory";
          wasmHeapBytes: number;
          workerIndex: number;
      }
      • meshBytes: number
      • type: "workerMemory"

        Per-worker memory snapshot, emitted once per geometry worker once it has finished processing. Aggregated by the viewer's memoryAccounting module to surface total WASM heap and mesh byte counts across all parallel workers.

      • wasmHeapBytes: number
      • workerIndex: number
    • { phase: "prepass" | "workers"; type: "progress" }

      Liveness heartbeat from a long-running pre-pass / parallel pipeline. Carries no payload other than a phase tag. Consumers should treat any progress event as "pipeline still alive" and reset their watchdog. Existing consumers safely ignore unknown discriminants — this variant is additive.

    • {
          coordinateInfo: CoordinateInfo;
          diagnostics?: GeometryDiagnostics;
          skippedHungElements?: SkippedHungElements;
          totalMeshes: number;
          type: "complete";
      }
      • coordinateInfo: CoordinateInfo
      • Optionaldiagnostics?: GeometryDiagnostics

        CSG / opening diagnostics aggregated over the whole load (the GeometryDiagnostics contract). Omitted when none were recorded or on non-parallel load paths. See ./diagnostics.ts for the field semantics and which counts are exact vs batch-summed upper bounds.

      • OptionalskippedHungElements?: SkippedHungElements

        Elements skipped because their geometry never finished (#4884); omitted when none.

      • totalMeshes: number
      • type: "complete"