import type { _IAnimationState } from "@babylonjs/core/Animations/animation"; import { Animation } from "@babylonjs/core/Animations/animation"; import { AnimationKeyInterpolation } from "@babylonjs/core/Animations/animationKey"; import { Color3, Color4 } from "@babylonjs/core/Maths/math.color"; import { Quaternion, Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector"; type AnimationKeyInterpolationBezier = AnimationKeyInterpolation & { readonly __type: PhantomType; }; /** * extends of AnimationKeyInterpolation to add bezier interpolation */ export declare const AnimationKeyInterpolationBezier: AnimationKeyInterpolationBezier; /** * Partial implementation of cubic bezier interpolated animation */ export declare class BezierAnimation extends Animation { /** * Slerped tangent quaternion animation type */ static readonly ANIMATIONTYPE_SLERP_TANGENT_QUATERNION = 8; /** * @internal Internal use only */ _interpolate(currentFrame: number, state: _IAnimationState, searchClosestKeyOnly?: boolean): any; /** * Interpolates a scalar cubically from control points * @param startValue Start value of the animation curve * @param outTangent End tangent of the animation * @param endValue End value of the animation curve * @param inTangent Start tangent of the animation curve * @param gradient Scalar amount to interpolate * @returns Interpolated scalar value */ floatInterpolateFunctionWithControlPoints(startValue: number, outTangent: Vector2, endValue: number, inTangent: Vector2, gradient: number): number; /** * Interpolates a quaternion cubically from control points * @param startValue Start value of the animation curve * @param outTangent End tangent of the animation curve * @param endValue End value of the animation curve * @param inTangent Start tangent of the animation curve * @param gradient Scalar amount to interpolate * @returns Interpolated quaternion value */ quaternionInterpolateFunctionWithControlPoints(startValue: Quaternion, outTangent: [Vector2, Vector2, Vector2, Vector2], endValue: Quaternion, inTangent: [Vector2, Vector2, Vector2, Vector2], gradient: number): Quaternion; /** * Interpolates a quaternion cubically from control points with slerp * @param startValue Start value of the animation curve * @param outTangent End tangent of the animation curve * @param endValue End value of the animation curve * @param inTangent Start tangent of the animation curve * @param gradient Scalar amount to interpolate * @returns Interpolated quaternion value */ quaternionInterpolateFunctionWithSlerpControlPoints(startValue: Quaternion, outTangent: Vector2, endValue: Quaternion, inTangent: Vector2, gradient: number): Quaternion; /** * Interpolates a Vector3 cubically from control points * @param startValue Start value of the animation curve * @param outTangent End tangent of the animation * @param endValue End value of the animation curve * @param inTangent Start tangent of the animation curve * @param gradient Scalar amount to interpolate (value between 0 and 1) * @returns InterpolatedVector3 value */ vector3InterpolateFunctionWithControlPoints(startValue: Vector3, outTangent: [Vector2, Vector2, Vector2], endValue: Vector3, inTangent: [Vector2, Vector2, Vector2], gradient: number): Vector3; /** * Interpolates a Vector2 cubically from control points * @param startValue Start value of the animation curve * @param outTangent End tangent of the animation * @param endValue End value of the animation curve * @param inTangent Start tangent of the animation curve * @param gradient Scalar amount to interpolate (value between 0 and 1) * @returns Interpolated Vector2 value */ vector2InterpolateFunctionWithControlPoints(startValue: Vector2, outTangent: [Vector2, Vector2], endValue: Vector2, inTangent: [Vector2, Vector2], gradient: number): Vector2; /** * Interpolates a Color3 cubically from control points * @param startValue Start value of the animation curve * @param outTangent End tangent of the animation * @param endValue End value of the animation curve * @param inTangent Start tangent of the animation curve * @param gradient Scalar amount to interpolate * @returns interpolated value */ color3InterpolateFunctionWithControlPoints(startValue: Color3, outTangent: [Vector2, Vector2, Vector2], endValue: Color3, inTangent: [Vector2, Vector2, Vector2], gradient: number): Color3; /** * Interpolates a Color4 cubically from control points * @param startValue Start value of the animation curve * @param outTangent End tangent of the animation * @param endValue End value of the animation curve * @param inTangent Start tangent of the animation curve * @param gradient Scalar amount to interpolate * @returns interpolated value */ color4InterpolateFunctionWithControlPoints(startValue: Color4, outTangent: Color4, endValue: Color4, inTangent: Color4, gradient: number): Color4; /** * Makes a copy of the animation * @returns Cloned animation */ clone(): BezierAnimation; } export {};