mdx-m3-viewer
Version:
A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.
50 lines (45 loc) • 1.54 kB
text/typescript
import BinaryStream from '../../common/binarystream';
import IndexEntry from './indexentry';
/**
* A region.
*/
export default class Region {
version: number = -1;
unknown0: number = 0;
unknown1: number = 0;
firstVertexIndex: number = -1;
verticesCount: number = 0;
firstTriangleIndex: number = -1;
triangleIndicesCount: number = 0;
bonesCount: number = 0;
firstBoneLookupIndex: number = -1;
boneLookupIndicesCount: number = 0;
unknown2: number = 0;
boneWeightPairsCount: number = 0;
unknown3: number = 0;
rootBoneIndex: number = -1;
unknown4: number = 0;
unknown5: Uint8Array = new Uint8Array(8);
load(stream: BinaryStream, version: number, index: IndexEntry[]) {
this.version = version;
this.unknown0 = stream.readUint32();
this.unknown1 = stream.readUint32();
this.firstVertexIndex = stream.readUint32();
this.verticesCount = stream.readUint32();
this.firstTriangleIndex = stream.readUint32();
this.triangleIndicesCount = stream.readUint32();
this.bonesCount = stream.readUint16();
this.firstBoneLookupIndex = stream.readUint16();
this.boneLookupIndicesCount = stream.readUint16();
this.unknown2 = stream.readUint16();
this.boneWeightPairsCount = stream.readUint8();
this.unknown3 = stream.readUint8();
this.rootBoneIndex = stream.readUint16();
if (version > 3) {
this.unknown4 = stream.readUint32();
}
if (version > 4) {
stream.readUint8Array(this.unknown5);
}
}
}