UNPKG

mdx-m3-viewer

Version:

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

51 lines (41 loc) 1.85 kB
import MdlxLight from '../../../parsers/mdlx/light'; import MdxModel from './model'; import GenericObject from './genericobject'; /** * An MDX light. */ export default class Light extends GenericObject { type: number; attenuation: Float32Array; color: Float32Array; intensity: number; ambientColor: Float32Array; ambientIntensity: number; constructor(model: MdxModel, light: MdlxLight, index: number) { super(model, light, index); this.type = light.type; this.attenuation = light.attenuation; this.color = light.color; this.intensity = light.intensity; this.ambientColor = light.ambientColor; this.ambientIntensity = light.ambientIntensity; } getAttenuationStart(out: Float32Array, sequence: number, frame: number, counter: number) { return this.getScalarValue(out, 'KLAS', sequence, frame, counter, this.attenuation[0]); } getAttenuationEnd(out: Float32Array, sequence: number, frame: number, counter: number) { return this.getScalarValue(out, 'KLAE', sequence, frame, counter, this.attenuation[1]); } getIntensity(out: Float32Array, sequence: number, frame: number, counter: number) { return this.getScalarValue(out, 'KLAI', sequence, frame, counter, this.intensity); } getColor(out: Float32Array, sequence: number, frame: number, counter: number) { return this.getVectorValue(out, 'KLAC', sequence, frame, counter, this.color); } getAmbientIntensity(out: Float32Array, sequence: number, frame: number, counter: number) { return this.getScalarValue(out, 'KLBI', sequence, frame, counter, this.ambientIntensity); } getAmbientColor(out: Float32Array, sequence: number, frame: number, counter: number) { return this.getVectorValue(out, 'KLBC', sequence, frame, counter, this.ambientColor); } }