UNPKG

mdx-m3-viewer

Version:

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

110 lines (102 loc) 4.18 kB
import M3ParserReference from './reference'; import {M3ParserFloat32AnimationReference, M3ParserUint32AnimationReference} from './animationreference'; /** * A standard material. */ export default class M3ParserStandardMaterial { /** * @param {BinaryReader} reader * @param {number} version * @param {Array<M3ParserIndexEntry>} index */ constructor(reader, version, index) { /** @member {number} */ this.version = version; /** @member {M3ParserReference} */ this.name = new M3ParserReference(reader, index); /** @member {number} */ this.additionalFlags = reader.readUint32(); /** @member {number} */ this.flags = reader.readUint32(); /** @member {number} */ this.blendMode = reader.readUint32(); /** @member {number} */ this.priority = reader.readInt32(); /** @member {number} */ this.usedRTTChannels = reader.readUint32(); /** @member {number} */ this.specularity = reader.readFloat32(); /** @member {number} */ this.depthBlendFalloff = reader.readFloat32(); /** @member {number} */ this.cutoutThreshold = reader.readUint8(); /** @member {number} */ this.unknown1 = reader.readUint8(); // ? /** @member {number} */ this.unknown2 = reader.readUint8(); // ? /** @member {number} */ this.unknown3 = reader.readUint8(); // ? /** @member {number} */ this.specMult = reader.readFloat32(); /** @member {number} */ this.emisMult = reader.readFloat32(); /** @member {M3ParserReference} */ this.diffuseLayer = new M3ParserReference(reader, index); /** @member {M3ParserReference} */ this.decalLayer = new M3ParserReference(reader, index); /** @member {M3ParserReference} */ this.specularLayer = new M3ParserReference(reader, index); if (version > 15) { /** @member {?M3ParserReference} */ this.glossLayer = new M3ParserReference(reader, index); } /** @member {M3ParserReference} */ this.emissiveLayer = new M3ParserReference(reader, index); /** @member {M3ParserReference} */ this.emissive2Layer = new M3ParserReference(reader, index); /** @member {M3ParserReference} */ this.evioLayer = new M3ParserReference(reader, index); /** @member {M3ParserReference} */ this.evioMaskLayer = new M3ParserReference(reader, index); /** @member {M3ParserReference} */ this.alphaMaskLayer = new M3ParserReference(reader, index); /** @member {M3ParserReference} */ this.alphaMask2Layer = new M3ParserReference(reader, index); /** @member {M3ParserReference} */ this.normalLayer = new M3ParserReference(reader, index); /** @member {M3ParserReference} */ this.heightLayer = new M3ParserReference(reader, index); /** @member {M3ParserReference} */ this.lightMapLayer = new M3ParserReference(reader, index); /** @member {M3ParserReference} */ this.ambientOcclusionLayer = new M3ParserReference(reader, index); if (version > 18) { /** @member {?M3ParserReference} */ this.unknown4 = new M3ParserReference(reader, index); // Unknown layer /** @member {?M3ParserReference} */ this.unknown5 = new M3ParserReference(reader, index); // Unknown layer /** @member {?M3ParserReference} */ this.unknown6 = new M3ParserReference(reader, index); // Unknown layer /** @member {?M3ParserReference} */ this.unknown7 = new M3ParserReference(reader, index); // Unknown layer } /** @member {number} */ this.unknown8 = reader.readUint32(); // ? /** @member {number} */ this.layerBlendType = reader.readUint32(); /** @member {number} */ this.emisBlendType = reader.readUint32(); /** @member {number} */ this.emisMode = reader.readUint32(); /** @member {number} */ this.specType = reader.readUint32(); /** @member {M3ParserFloat32AnimationReference} */ this.unknown9 = new M3ParserFloat32AnimationReference(reader); // ? /** @member {M3ParserUint32AnimationReference} */ this.unknown10 = new M3ParserUint32AnimationReference(reader); // ? if (version > 18) { /** @member {?} */ this.unknown11 = reader.read(12); // ? } } }