@phi-ag/rvt
Version:
Parse Revit file format
19 lines (18 loc) • 840 B
JavaScript
import * as array from "../utils/array.js";
export const assertEqual = (chunk, position, expected, message) => {
const data = chunk.subarray(position, position + expected.length);
if (!array.isEqual(data, expected))
throw Error(`Unexpected compound file ${message} [${data}]`);
};
export const assertZero = (chunk, position, length, message) => {
const data = chunk.subarray(position, position + length);
if (!array.isZero(data))
throw Error(`Unexpected compound file non-zero ${message} [${data}]`);
};
export const readDate = (view, offset) => {
const leftShift32Factor = 4294967296;
const filetimeOffset = 116444736e5;
const low = view.getUint32(offset, true);
const high = view.getUint32(offset + 4, true);
return new Date((high * leftShift32Factor + low) / 1e4 - filetimeOffset);
};