UNPKG

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
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'); } } }