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.5 kB
text/typescript
import BinaryStream from '../../common/binarystream';
import IndexEntry from './indexentry';
/**
* A region.
*/
export default class M3ParserRegion {
version: number;
unknown0: number;
unknown1: number;
firstVertexIndex: number;
verticesCount: number;
firstTriangleIndex: number;
triangleIndicesCount: number;
bonesCount: number;
firstBoneLookupIndex: number;
boneLookupIndicesCount: number;
unknown2: number;
boneWeightPairsCount: number;
unknown3: number;
rootBoneIndex: number;
unknown4: number = 0;
unknown5: Uint8Array | null = null;
constructor(reader: BinaryStream, version: number, index: IndexEntry[]) {
this.version = version;
this.unknown0 = reader.readUint32();
this.unknown1 = reader.readUint32();
this.firstVertexIndex = reader.readUint32();
this.verticesCount = reader.readUint32();
this.firstTriangleIndex = reader.readUint32();
this.triangleIndicesCount = reader.readUint32();
this.bonesCount = reader.readUint16();
this.firstBoneLookupIndex = reader.readUint16();
this.boneLookupIndicesCount = reader.readUint16();
this.unknown2 = reader.readUint16();
this.boneWeightPairsCount = reader.readUint8();
this.unknown3 = reader.readUint8();
this.rootBoneIndex = reader.readUint16();
if (version > 3) {
this.unknown4 = reader.readUint32();
}
if (version > 4) {
this.unknown5 = reader.readUint8Array(8);
}
}
}