UNPKG

mdx-m3-viewer

Version:

A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.

185 lines (184 loc) 5.01 kB
/** * A binary stream. */ export default class BinaryStream { buffer: ArrayBuffer; uint8array: Uint8Array; index: number; byteLength: number; remaining: number; constructor(buffer: ArrayBuffer | Uint8Array, byteOffset?: number, byteLength?: number); /** * Create a subreader of this reader, at its position, with the given byte length. */ substream(byteLength: number): BinaryStream; /** * Skip a number of bytes. */ skip(bytes: number): void; /** * Set the reader's index. */ seek(index: number): void; /** * Read a UTF8 string with the given number of bytes. * * The entire size will be read, however the string returned is NULL terminated in its memory block. * * For example, the MDX format has many strings that have a constant maximum size, where any bytes after the string are NULLs. * Such strings will be loaded correctly given the maximum size. */ read(bytes: number): string; /** * Read a UTF8 NULL terminated string. */ readNull(): string; /** * Read a binary string with the given number of bytes. */ readBinary(bytes: number): string; /** * Read a 8 bit signed integer. */ readInt8(): number; /** * Read a 16 bit signed integer. */ readInt16(): number; /** * Read a 32 bit signed integer. */ readInt32(): number; /** * Read a 8 bit unsigned integer. */ readUint8(): number; /** * Read a 16 bit unsigned integer. */ readUint16(): number; /** * Read a 32 bit unsigned integer. */ readUint32(): number; /** * Read a 32 bit float. */ readFloat32(): number; /** * Read a 64 bit float. */ readFloat64(): number; /** * Read an array of 8 bit signed integers. */ readInt8Array(view: number | Int8Array): Int8Array; /** * Read an array of 16 bit signed integers. */ readInt16Array(view: number | Int16Array): Int16Array; /** * Read an array of 32 bit signed integers. */ readInt32Array(view: number | Int32Array): Int32Array; /** * Read an array of 8 bit unsigned integers. */ readUint8Array(view: number | Uint8Array): Uint8Array; /** * Read an array of 16 bit unsigned integers. */ readUint16Array(view: number | Uint16Array): Uint16Array; /** * Read an array of 32 bit unsigned integers. */ readUint32Array(view: number | Uint32Array): Uint32Array; /** * Read an array of 32 bit floats. */ readFloat32Array(view: number | Float32Array): Float32Array; /** * Read an array of 64 bit floats. */ readFloat64Array(view: number | Float64Array): Float64Array; /** * Write a UTF8 string. * * Returns the number of bytes that were written, */ write(utf8: string): number; /** * Write a UTF8 string as a NULL terminated string. * * Returns the number of bytes that were written, including the terminating NULL. */ writeNull(utf8: string): number; /** * Write a binary string. */ writeBinary(value: string): void; /** * Write a 8 bit signed integer. */ writeInt8(value: number): void; /** * Write a 16 bit signed integer. */ writeInt16(value: number): void; /** * Write a 32 bit signed integer. */ writeInt32(value: number): void; /** * Write a 8 bit unsigned integer. */ writeUint8(value: number): void; /** * Write a 16 bit unsigned integer. */ writeUint16(value: number): void; /** * Write a 32 bit unsigned integer. */ writeUint32(value: number): void; /** * Write a 32 bit float. */ writeFloat32(value: number): void; /** * Write a 64 bit float. */ writeFloat64(value: number): void; /** * Write an array of 8 bit signed integers. */ writeInt8Array(view: Int8Array): void; /** * Write an array of 16 bit signed integers. */ writeInt16Array(view: Int16Array): void; /** * Write an array of 32 bit signed integers. */ writeInt32Array(view: Int32Array): void; /** * Write an array of 8 bit unsigned integers. */ writeUint8Array(view: Uint8Array): void; /** * Write an array of 16 bit unsigned integers. */ writeUint16Array(view: Uint16Array): void; /** * Write an array of 32 bit unsigned integers. */ writeUint32Array(view: Uint32Array): void; /** * Write an array of 32 bit floats. */ writeFloat32Array(view: Float32Array): void; /** * Write an array of 64 bit floats. */ writeFloat64Array(view: Float64Array): void; }