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
TypeScript
/**
* 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;
}