UNPKG

mdx-m3-viewer

Version:

A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.

37 lines (28 loc) 849 B
import BinaryStream from '../../common/binarystream'; import IndexEntry from './indexentry'; import Md34 from './md34'; import ModelHeader from './modelheader'; /** * A model. */ export default class Model { index: IndexEntry[] = []; model: ModelHeader | null = null; load(src: ArrayBuffer) { let stream = new BinaryStream(src); let header = new Md34(); header.load(stream, 11, this.index); if (header.tag !== 'MD34') { throw new Error('WrongMagicNumber'); } stream.seek(header.offset); // Read the index entries for (let i = 0, l = header.entries; i < l; i++) { this.index[i] = new IndexEntry(stream, this.index); } let modelEntries = this.index[header.model.id].entries; if (modelEntries) { this.model = modelEntries[0]; } } }