IFClite TypeScript API
    Preparing search index...

    Interface CoordinateInfo

    interface CoordinateInfo {
        boundsRecoveryFallbackCount?: number;
        buildingRotation?: number;
        hasLargeCoordinates: boolean;
        lengthUnitScale?: number;
        originalBounds: AABB;
        originShift: Vec3;
        shiftedBounds: AABB;
        wasmRtcFrame?: RtcFrame;
        wasmRtcOffset?: Vec3;
    }
    Index
    boundsRecoveryFallbackCount?: number

    Number of batches (#5210) where the fast bounds path sampled a vertex beyond MAX_REASONABLE_COORD and calculateBounds fell back to the filtered slow path for that batch. Recovery is silent to the caller — the corrupted vertex is dropped, not reported — so this is the only way to learn that the mesher emitted a qualifying vertex at all. 0 means every batch stayed on the fast path.

    buildingRotation?: number

    Building rotation angle in radians, resolved from the IfcSite placement.

    hasLargeCoordinates: boolean

    True only when the JS-side originShift fired: the geometry reaching CoordinateHandler was still beyond NORMAL_COORD_THRESHOLD_M, which in practice means WASM did not re-base it. Stays false when WASM applied wasmRtcOffset instead, and wasmRtcOffset is absent when only originShift fired, so neither field alone answers "was this model shifted?". Use hasLargeCoordinates || wasmRtcOffset !== undefined.

    lengthUnitScale?: number

    Length-unit scale (file units to metres) from IfcProject's unit assignment, e.g. 0.001 for millimetre files. Lets consumers map externally-resolved geometry into the render frame. See issue #945.

    originalBounds: AABB
    originShift: Vec3
    shiftedBounds: AABB
    wasmRtcFrame?: RtcFrame

    Exact RTC frame selected by the WASM mesh producer, in IFC Z-up metres. Absence means the producer did not publish provenance (for example a native path), not that no shift was applied.

    wasmRtcOffset?: Vec3

    RTC offset applied by WASM in IFC coordinates (Z-up).