UNPKG

arx-convert

Version:

Converts various Arx Fatalis formats to JSON or YAML and back

51 lines 1.93 kB
import { BinaryIO } from '../common/BinaryIO.js'; import { repeat } from '../common/helpers.js'; export var ArxZoneAndPathPointType; (function (ArxZoneAndPathPointType) { ArxZoneAndPathPointType[ArxZoneAndPathPointType["Standard"] = 0] = "Standard"; ArxZoneAndPathPointType[ArxZoneAndPathPointType["Bezier"] = 1] = "Bezier"; ArxZoneAndPathPointType[ArxZoneAndPathPointType["BezierControlPoint"] = 2] = "BezierControlPoint"; })(ArxZoneAndPathPointType || (ArxZoneAndPathPointType = {})); export class ZoneAndPathPoint { static readFrom(binary, pos) { const rpos = binary.readVector3(); const data = { pos: { x: rpos.x + pos.x, y: rpos.y + pos.y, z: rpos.z + pos.z, }, type: binary.readInt32(), time: binary.readUint32(), }; binary.readFloat32Array(2); // fpad - ? binary.readInt32Array(2); // lpad - ? binary.readUint8Array(32); // cpad - ? return data; } static allocateFrom(point, pos) { const buffer = new ArrayBuffer(ZoneAndPathPoint.sizeOf()); const binary = new BinaryIO(buffer); const rpos = { x: point.pos.x - pos.x, y: point.pos.y - pos.y, z: point.pos.z - pos.z, }; binary.writeVector3(rpos); binary.writeInt32(point.type); binary.writeUint32(point.time); binary.writeFloat32Array(repeat(0, 2)); binary.writeInt32Array(repeat(0, 2)); binary.writeUint8Array(repeat(0, 32)); return buffer; } static sizeOf() { return (BinaryIO.sizeOfVector3() + BinaryIO.sizeOfInt32() + BinaryIO.sizeOfUint32() + BinaryIO.sizeOfFloat32Array(2) + BinaryIO.sizeOfInt32Array(2) + BinaryIO.sizeOfUint8Array(32)); } } //# sourceMappingURL=ZoneAndPathPoint.js.map