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.
35 lines • 1.53 kB
TypeScript
import { IAnimationLoopEvent, IObject3D } from '../../../core';
import { UiObjectConfig } from 'uiconfig.js';
import { ComponentCtx, ComponentDefn, ComponentJSON } from './componentTypes';
export type TObject3DComponent = typeof Object3DComponent;
export declare class Object3DComponent {
['constructor']: TObject3DComponent & ComponentDefn;
enabled: boolean;
static StateProperties: ComponentDefn['StateProperties'];
static ComponentType: string;
readonly isObject3DComponent = true;
protected _object: IObject3D | null;
get object(): IObject3D;
set object(_: IObject3D);
uuid: string;
uiConfig?: UiObjectConfig;
state: never;
protected _state: ComponentJSON['state'];
get stateRef(): Record<string, any>;
setState(state: ComponentJSON['state']): this | undefined;
ctx: ComponentCtx;
constructor();
start(): void;
stop(): void;
update(_e: IAnimationLoopEvent): boolean | void;
init(object: IObject3D, state: ComponentJSON['state']): void;
destroy(): Record<string, any>;
stateChangeHandlers: Record<string, ((value: any, oldValue: any, key?: string) => void)[]>;
onStateChange<K extends keyof this & string>(key: K, fn: (value: this[K], oldValue: this[K], key?: K) => void): void;
/**
* @internal
*/
['_sType']?: string;
getComponent<T extends TObject3DComponent>(type: T | string, self?: boolean): InstanceType<T> | null;
}
//# sourceMappingURL=../../../src/plugins/extras/components/Object3DComponent.d.ts.map