animouse
Version:
lightweight animation state machine for three js
36 lines (35 loc) • 1.44 kB
TypeScript
import { Eventail } from "eventail";
import type { Anchor } from "../mescellaneous/miscellaneous";
/**
* Abstract base class for animation states in the animation state machine.
* Manages state influence (weight) and provides lifecycle event handling.
*
* This class is designed to be extended by concrete animation states and
* controlled by the animation state machine.
*/
export declare abstract class AnimationState extends Eventail {
/**
* The name identifier for this animation state.
* Used to identify and reference the state within the animation state machine.
*/
name: string;
/**
* Internal storage for the state's influence value.
* Represents the weight/contribution of this state in the animation state machine.
*/
protected influenceInternal: number;
/**
* Map storing time-based event callbacks for each anchor.
* Maps anchors to their respective time events, where each time event
* is identified by a normalized time value and associated event name.
*/
protected timeEvents: Map<Anchor, Map<number, string>>;
/**
* Gets the current influence (weight) of this animation state.
* The influence determines how much this state contributes to the overall animation.
*
* @returns The current influence value, always in range [0, 1]
*/
get influence(): number;
protected resetFinishedAction(anchor: Anchor): void;
}