@pmndrs/handle
Version:
framework agnostic expandable handle implementation for threejs
31 lines (30 loc) • 1.34 kB
TypeScript
import { PointerEventsMap } from '@pmndrs/pointer-events';
import { Object3D, Object3DEventMap } from 'three';
import { HandleState } from '../state.js';
import { HandleOptions, HandleStore } from '../store.js';
import { TransformHandlesSpace } from './index.js';
export declare class HandlesContext {
readonly target: Object3D | {
current?: Object3D | null;
};
private readonly getOptions?;
private handles;
private hoveredTagMap;
private hoverSubscriptions;
private applySubscriptions;
space?: TransformHandlesSpace;
constructor(target: Object3D | {
current?: Object3D | null;
}, getOptions?: (() => HandleOptions<unknown>) | undefined);
getSpace(): TransformHandlesSpace;
getTarget(): Object3D<Object3DEventMap> | null | undefined;
getHandleOptions<T>(tag: string, getOverrideOptions?: () => HandleOptions<unknown>): HandleOptions<T>;
registerHandle(store: HandleStore<unknown>, object: Object3D<PointerEventsMap & Object3DEventMap>, tag: string): () => void;
subscribeHover(fn: (tags: Array<string>) => void): () => void;
subscribeApply(fn: (tag: string, state: HandleState<unknown>, target: Object3D) => void): () => void;
update(time: number): void;
private onPointerEnter;
private onPointerLeave;
private updateHover;
private onApply;
}