mdx-m3-viewer
Version:
A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.
45 lines • 1.55 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const emitter_1 = require("./emitter");
const particle2_1 = require("./particle2");
const emissionRateHeap = new Float32Array(1);
/**
* An MDX particle emitter type 2.
*/
class ParticleEmitter2 extends emitter_1.default {
constructor(instance, emitterObject) {
super(instance, emitterObject);
this.lastEmissionKey = -1;
this.node = instance.nodes[emitterObject.index];
}
updateEmission(dt) {
const instance = this.instance;
if (instance.allowParticleSpawn) {
const emitterObject = this.emitterObject;
const keyframe = emitterObject.getEmissionRate(emissionRateHeap, instance.sequence, instance.frame, instance.counter);
if (emitterObject.squirt) {
if (keyframe !== this.lastEmissionKey) {
this.currentEmission += emissionRateHeap[0];
}
this.lastEmissionKey = keyframe;
}
else {
this.currentEmission += emissionRateHeap[0] * dt;
}
}
}
emit() {
const emitterObject = this.emitterObject;
if (emitterObject.head) {
this.emitObject(0);
}
if (emitterObject.tail) {
this.emitObject(1);
}
}
createObject() {
return new particle2_1.default(this);
}
}
exports.default = ParticleEmitter2;
//# sourceMappingURL=particleemitter2.js.map
;