UNPKG

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
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 {};