UNPKG

@babylonjs/core

Version:

Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.

93 lines (92 loc) 3.53 kB
import type { FlowGraphContext } from "../../../flowGraphContext.js"; import type { FlowGraphDataConnection } from "../../../flowGraphDataConnection.js"; import { FlowGraphAsyncExecutionBlock } from "../../../flowGraphAsyncExecutionBlock.js"; import type { IFlowGraphBlockConfiguration } from "../../../flowGraphBlock.js"; import { AnimationGroup } from "../../../../Animations/animationGroup.js"; import type { Animation } from "../../../../Animations/animation.js"; /** * @experimental * A block that plays an animation on an animatable object. */ export declare class FlowGraphPlayAnimationBlock extends FlowGraphAsyncExecutionBlock { /** * the configuration of the block */ config?: IFlowGraphBlockConfiguration | undefined; /** * Input connection: The speed of the animation. */ readonly speed: FlowGraphDataConnection<number>; /** * Input connection: Should the animation loop? * Not in glTF specs, but useful for the engine. */ readonly loop: FlowGraphDataConnection<boolean>; /** * Input connection: The starting frame of the animation. */ readonly from: FlowGraphDataConnection<number>; /** * Input connection: The ending frame of the animation. */ readonly to: FlowGraphDataConnection<number>; /** * Output connection: The current frame of the animation. */ readonly currentFrame: FlowGraphDataConnection<number>; /** * Output connection: The current time of the animation. */ readonly currentTime: FlowGraphDataConnection<number>; /** * Output connection: The animatable that is currently running. */ readonly currentAnimationGroup: FlowGraphDataConnection<AnimationGroup>; /** * Input: Will be initialized if no animation group was provided in the configuration. */ readonly animationGroup: FlowGraphDataConnection<AnimationGroup>; /** * Input: If provided this animation will be used. Priority will be given to the animation group input. */ readonly animation: FlowGraphDataConnection<Animation | Animation[]>; /** * Input connection: The target object that will be animated. If animation group is provided this input will be ignored. */ readonly object: FlowGraphDataConnection<any>; constructor( /** * the configuration of the block */ config?: IFlowGraphBlockConfiguration | undefined); /** * @internal * @param context */ _preparePendingTasks(context: FlowGraphContext): void; protected _reportError(context: FlowGraphContext, error: string | Error): void; /** * @internal */ _executeOnTick(_context: FlowGraphContext): void; _execute(context: FlowGraphContext): void; private _onAnimationGroupEnd; /** * The idea behind this function is to check every running animation group and check if the targeted animations it uses are interpolation animations. * If they are, we want to see that they don't collide with the current interpolation animations that are starting to play. * If they do, we want to stop the already-running animation group. * @internal */ private _checkInterpolationDuplications; private _stopAnimationGroup; private _removeFromCurrentlyRunning; /** * @internal * Stop any currently running animations. */ _cancelPendingTasks(context: FlowGraphContext): void; /** * @returns class name of the block. */ getClassName(): string; }