mdx-m3-viewer
Version:
A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.
58 lines (57 loc) • 2.43 kB
TypeScript
import { vec3, quat } from 'gl-matrix';
import { Animation, InterpolationType } from '../../../parsers/mdlx/animations';
import MdxModel from './model';
/**
* Animated data for a specific sequence.
*/
declare class SdSequence {
sd: Sd;
start: number;
end: number;
frames: number[];
values: (Uint32Array | Float32Array)[];
inTans: (Uint32Array | Float32Array)[];
outTans: (Uint32Array | Float32Array)[];
constant: boolean;
constructor(sd: Sd, start: number, end: number, animation: Animation, isGlobal: boolean);
getValue(out: Uint32Array | Float32Array, frame: number): number;
}
/**
* Animated data.
*/
export declare abstract class Sd {
defval: Float32Array | Uint32Array;
model: MdxModel;
name: string;
globalSequence: SdSequence | null;
sequences: SdSequence[];
interpolationType: InterpolationType;
abstract copy(out: Uint32Array | Float32Array | vec3 | quat, value: Uint32Array | Float32Array | vec3 | quat): void;
abstract interpolate(out: Uint32Array | Float32Array | vec3 | quat, values: (Uint32Array | Float32Array | vec3 | quat)[], inTans: (Uint32Array | Float32Array | vec3 | quat)[], outTans: (Uint32Array | Float32Array | vec3 | quat)[], start: number, end: number, t: number): void;
constructor(model: MdxModel, animation: Animation);
getValue(out: Uint32Array | Float32Array, sequence: number, frame: number, counter: number): number;
isVariant(sequence: number): boolean;
}
/**
* A scalar animation.
*/
export declare class ScalarSd extends Sd {
copy<T extends Uint32Array | Float32Array>(out: T, value: T): void;
interpolate<T extends Uint32Array | Float32Array>(out: T, values: T[], inTans: T[], outTans: T[], start: number, end: number, t: number): void;
}
/**
* A vector animation.
*/
export declare class VectorSd extends Sd {
copy(out: vec3, value: vec3): void;
interpolate(out: vec3, values: vec3[], inTans: vec3[], outTans: vec3[], start: number, end: number, t: number): void;
}
/**
* A quaternion animation.
*/
export declare class QuatSd extends Sd {
copy(out: quat, value: quat): void;
interpolate(out: quat, values: quat[], inTans: quat[], outTans: quat[], start: number, end: number, t: number): void;
}
export declare function createTypedSd(model: MdxModel, animation: Animation): ScalarSd | VectorSd | QuatSd;
export {};