mdx-m3-viewer
Version:
A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.
42 lines (41 loc) • 1.67 kB
TypeScript
import RibbonEmitter from '../../../parsers/mdlx/ribbonemitter';
import MdxModel from './model';
import GenericObject from './genericobject';
import Layer from './layer';
/**
* An MDX ribbon emitter.
*/
export default class RibbonEmitterObject extends GenericObject {
geometryEmitterType: number;
layer: Layer;
heightAbove: number;
heightBelow: number;
alpha: number;
color: Float32Array;
lifeSpan: number;
textureSlot: number;
emissionRate: number;
gravity: number;
columns: number;
rows: number;
/**
* Even if the internal texture isn't loaded, it's fine to run emitters based on this emitter object.
*
* The ribbons will simply be black.
*/
ok: boolean;
constructor(model: MdxModel, emitter: RibbonEmitter, index: number);
getHeightBelow(out: Float32Array, sequence: number, frame: number, counter: number): number;
getHeightAbove(out: Float32Array, sequence: number, frame: number, counter: number): number;
getTextureSlot(out: Uint32Array, sequence: number, frame: number, counter: number): number;
getColor(out: Float32Array, sequence: number, frame: number, counter: number): number;
getAlpha(out: Float32Array, sequence: number, frame: number, counter: number): number;
/**
* Ribbon emitters specifically have an alpha.
*
* When this alpha is 0, naturally ribbons shouldn't be emitted.
*
* Therefore first check the alpha animation, and only if it's >0 check the visibility animation.
*/
getVisibility(out: Float32Array, sequence: number, frame: number, counter: number): number;
}