UNPKG

geotiff.js

Version:

GeoTIFF image decoding in JavaScript

65 lines (52 loc) 1.6 kB
export default class DataView64 { constructor(arrayBuffer) { this._dataView = new DataView(arrayBuffer); } get buffer() { return this._dataView.buffer; } getUint64(offset, littleEndian) { const left = this.getUint32(offset, littleEndian); const right = this.getUint32(offset + 4, littleEndian); if (littleEndian) { return (left << 32) | right; } return (right << 32) | left; } getInt64(offset, littleEndian) { let left; let right; if (littleEndian) { left = this.getInt32(offset, littleEndian); right = this.getUint32(offset + 4, littleEndian); return (left << 32) | right; } left = this.getUint32(offset, littleEndian); right = this.getInt32(offset + 4, littleEndian); return (right << 32) | left; } getUint8(offset, littleEndian) { return this._dataView.getUint8(offset, littleEndian); } getInt8(offset, littleEndian) { return this._dataView.getInt8(offset, littleEndian); } getUint16(offset, littleEndian) { return this._dataView.getUint16(offset, littleEndian); } getInt16(offset, littleEndian) { return this._dataView.getInt16(offset, littleEndian); } getUint32(offset, littleEndian) { return this._dataView.getUint32(offset, littleEndian); } getInt32(offset, littleEndian) { return this._dataView.getInt32(offset, littleEndian); } getFloat32(offset, littleEndian) { return this._dataView.getFloat32(offset, littleEndian); } getFloat64(offset, littleEndian) { return this._dataView.getFloat64(offset, littleEndian); } }