mdx-m3-viewer
Version:
A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.
35 lines (29 loc) • 827 B
JavaScript
import BinaryStream from '../../common/binarystream';
import M3ParserMd34 from './md34';
import M3ParserIndexEntry from './indexentry';
/**
* A model.
*/
export default class Model {
/**
* @param {ArrayBuffer} src
*/
constructor(src) {
let reader = new BinaryStream(src);
let header = new M3ParserMd34(reader);
/** @member {Array<M3ParserIndexEntry>} */
this.entries = [];
/** @member {?ModelHeader} */
this.model = null;
if (header.tag === 'MD34') {
reader.seek(header.offset);
// Read the index entries
for (let i = 0, l = header.entries; i < l; i++) {
this.entries[i] = new M3ParserIndexEntry(reader, this.entries);
}
this.model = this.entries[header.model.id].entries[0];
} else {
throw new Error('WrongMagicNumber');
}
}
}