import { Mat4 } from '@gglib/math'; import type { Model } from './Model'; import type { ModelNodePose } from './ModelNode'; import type { AnimationPlayer } from '../AnimationPlayer'; export declare class ModelPose { /** * The model this pose belongs to */ readonly model: Model; /** * Final global transforms (with animation applied) for each node in model */ readonly transforms: Mat4[]; /** * Array of local transform attributes for each node in model */ readonly localPose: ModelNodePose[]; private skins; constructor(model: Model); /** * Decodes local transforms from all nodes and calculates the absolute node transforms */ reset(): void; /** * Updates the absolute transforms array from current local pose * * @remarks * Call this after local pose has been altered (e.g. after animation) */ update(): void; /** * Samples the animation player with given time and updates the local pose, then updates the absolute transforms * * @param time - the animation time * @param animation - the animation player */ updateFromAnimation(time: number, animation: AnimationPlayer): void; /** * Updates the skin transforms by multiplying inverse bind transforms with current absolute transforms */ updateSkin(skinId: number, nodeId: number): Mat4[]; getJoints(skinid: number): Mat4[]; } //# sourceMappingURL=ModelPose.d.ts.map