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.
68 lines • 2.45 kB
TypeScript
import { AViewerPluginEventMap, AViewerPluginSync, ThreeViewer } from '../../viewer';
import { UiObjectConfig } from 'uiconfig.js';
import { AnimationResult, PopmotionPlugin } from './PopmotionPlugin';
import { AnimationObject, AnimationObjectEventMap } from '../../utils/AnimationObject';
import { Driver } from '@repalash/popmotion';
export interface AnimationObjectPluginEventMap extends AViewerPluginEventMap, AnimationObjectEventMap {
rebuildTimeline: {
timeline: [AnimationObject, AnimationResult][];
};
animationUpdate: {
animation: AnimationObject;
};
}
export declare class AnimationObjectPlugin extends AViewerPluginSync<AnimationObjectPluginEventMap> {
static readonly PluginType = "AnimationObjectPlugin";
enabled: boolean;
dependencies: (typeof PopmotionPlugin)[];
/**
* Main animation with target = viewer for global properties
*/
readonly animation: AnimationObject;
readonly runtimeAnimation: AnimationObject;
getAllAnimations(): AnimationObject<any>[];
private _fAnimationAdd;
private _fAnimationRemove;
private _fAnimationUpdate;
private _viewerTimelineUpdate;
private _refreshTriggerBtn;
private _getActiveIndex;
private _triggerButtonsShown;
get triggerButtonsShown(): boolean;
set triggerButtonsShown(v: boolean);
showTriggers(v?: boolean): void;
constructor();
private _currentTimeline;
private _refTimeline;
rebuildTimeline(): void;
protected _viewerListeners: {
postFrame: () => void;
preFrame: () => void;
};
getTimeline(): [AnimationObject<any>, AnimationResult][];
private _objectAdd;
private _objectRemove;
private _materialAdd;
private _materialRemove;
private _addAnimationObject;
private _removeAnimationObject;
private _removeAnimationFromObject;
private _visibleBtns;
private _iObservers;
private _setupUiConfig;
private _cleanUpUiConfig;
private _animatableUiConfigs;
onAdded(viewer: ThreeViewer): void;
onRemove(viewer: ThreeViewer): void;
fromJSON(data: any, meta?: any): this | null;
private _lastFrameTime;
private _updaters;
readonly popmotionDriver: Driver;
uiConfig: UiObjectConfig;
}
declare module '../../assetmanager/IAssetImporter' {
interface IImportResultUserData {
animationObjects?: AnimationObject[];
}
}
//# sourceMappingURL=AnimationObjectPlugin.d.ts.map