mdx-m3-viewer
Version:
A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.
87 lines (77 loc) • 2.15 kB
JavaScript
import GenericObject from './genericobject';
/**
* An MDX particle emitter.
*/
export default class ParticleEmitter extends GenericObject {
/**
* @param {MdxModel} model
* @param {MdxParserParticleEmitter} emitter
* @param {number} index
*/
constructor(model, emitter, index) {
super(model, emitter, index);
this.internalResource = model.viewer.load(emitter.path.replace(/\\/g, '/').toLowerCase().replace('.mdl', '.mdx'), model.pathSolver);
this.speed = emitter.speed;
this.latitude = emitter.latitude;
this.longitude = emitter.longitude;
this.lifeSpan = emitter.lifeSpan;
this.gravity = emitter.gravity;
this.emissionRate = emitter.emissionRate;
}
/**
* @param {Float32Array} out
* @param {ModelInstance} instance
* @return {number}
*/
getSpeed(out, instance) {
return this.getFloatValue(out, 'KPES', instance, this.speed);
}
/**
* @param {Float32Array} out
* @param {ModelInstance} instance
* @return {number}
*/
getLatitude(out, instance) {
return this.getFloatValue(out, 'KPLTV', instance, this.latitude);
}
/**
* @param {Float32Array} out
* @param {ModelInstance} instance
* @return {number}
*/
getLongitude(out, instance) {
return this.getFloatValue(out, 'KPLN', instance, this.longitude);
}
/**
* @param {Float32Array} out
* @param {ModelInstance} instance
* @return {number}
*/
getLifeSpan(out, instance) {
return this.getFloatValue(out, 'KPEL', instance, this.lifeSpan);
}
/**
* @param {Float32Array} out
* @param {ModelInstance} instance
* @return {number}
*/
getGravity(out, instance) {
return this.getFloatValue(out, 'KPEG', instance, this.gravity);
}
/**
* @param {Float32Array} out
* @param {ModelInstance} instance
* @return {number}
*/
getEmissionRate(out, instance) {
return this.getFloatValue(out, 'KPEE', instance, this.emissionRate);
}
/**
* @param {Float32Array} out
* @param {ModelInstance} instance
* @return {number}
*/
getVisibility(out, instance) {
return this.getFloatValue(out, 'KPEV', instance, 1);
}
}