UNPKG

threepipe

Version:

A modern 3D viewer framework built on top of three.js, written in TypeScript, designed to make creating high-quality, modular, and extensible 3D experiences on the web simple and enjoyable.

89 lines 3.73 kB
import { animate, AnimationOptions, Driver, KeyframeOptions, PlaybackOptions } from '@repalash/popmotion'; import { AViewerPluginSync, ThreeViewer } from '../../viewer'; import { IAnimationObject, IAnimSet } from '../../utils'; import { ICamera, ICameraView } from '../../core'; import { animateKeyframes } from '../../utils/animation'; export interface AnimationResult { id: string; promise: Promise<string>; options: AnimationOptions<any>; stop: () => void; anims: AnimationResult[]; stopped?: boolean; _stop?: () => void; } /** * Popmotion plugin * * Provides animation capabilities to the viewer using the popmotion library: https://popmotion.io/ * * Overrides the driver in popmotion to sync with the viewer and provide ways to keep track and stop animations. * * @category Plugins */ export declare class PopmotionPlugin extends AViewerPluginSync { static readonly PluginType = "PopmotionPlugin"; enabled: boolean; toJSON: any; fromJSON: any; constructor(enabled?: boolean); private _lastFrameTime; private _lastPreFrameTime; private _updaters; private _timelineUpdaters; dependencies: never[]; private _fadeDisabled; /** * Disable the frame fade plugin while animation is running */ disableFrameFade: boolean; autoIncrementTime: boolean; private _postFrame; private _preFrame; readonly defaultDriver: Driver; readonly timelineDriver: Driver; onAdded(viewer: ThreeViewer): void; onRemove(viewer: ThreeViewer): void; readonly animations: Record<string, AnimationResult>; animate<V>(options1: AnimationOptions<V> & { target?: any; key?: string; }, animateFunc?: typeof animate | typeof animateKeyframes): AnimationResult; animateAsync<V>(options: AnimationOptions<V> & { target?: any; key?: string; }, animations?: AnimationResult[]): Promise<string>; /** * Similar to animate, but specifically for numbers, defaults from 0 to 1. Also calls onUpdate with the delta value. * @param options */ animateNumber(options: Omit<PlaybackOptions<number> & KeyframeOptions<number>, 'from' | 'to' | 'onUpdate'> & { from?: number; to?: number; onUpdate?: (value: number, delta: number) => void; }): AnimationResult; timeout(ms: number, options?: AnimationOptions<number>): AnimationResult; animateTargetAsync<T>(target: T, key: keyof T, options: AnimationOptions<T[keyof T]>, animations?: AnimationResult[]): Promise<string>; /** * @deprecated - use {@link animate} instead * @param target * @param key * @param options */ animateTarget<T>(target: T, key: keyof T, options: AnimationOptions<T[keyof T]>): AnimationResult; animateCamera(camera: ICamera, view: ICameraView, spherical?: boolean, options?: Partial<AnimationOptions<any>>): AnimationResult; animateCameraAsync(camera: ICamera, view: ICameraView, spherical?: boolean, options?: Partial<AnimationOptions<any>>, animations?: AnimationResult[]): Promise<string>; createAnimationResult(options?: AnimationOptions<any>): { id: string; options: AnimationOptions<any>; stop: () => void; stopped: false; _stop: () => void; anims: AnimationResult[]; promise: any; }; stopAnimationResult(uuid: string): void; animateObject<V>(o: IAnimationObject<V>, delay?: number, canComplete?: boolean, driver?: Driver, delay2?: number): AnimationResult; animateSet(anims: IAnimSet, parallel?: boolean, delay1?: number, canComplete?: boolean, driver?: Driver): AnimationResult; } //# sourceMappingURL=../../src/plugins/animation/PopmotionPlugin.d.ts.map