import { type IMaterialAbstractData, type IViewportApi } from "@shapediver/viewer"; import { type ITreeNode } from "@shapediver/viewer.shared.node-tree"; import { type IIntersectionDefinition, type IRay } from "@shapediver/viewer.shared.types"; import { INTERACTION_STATE } from "../../interfaces/IInteractionEngine"; import { type IInteractionFilterOptions } from "../../interfaces/IInteractionManager"; import { type IInteractionEffect } from "../../interfaces/utils/IInteractionEffectUtils"; import { AbstractInteractionManager } from "../AbstractInteractionManager"; export declare class HoverManager extends AbstractInteractionManager { #private; constructor(id?: string, interactionEffect?: IInteractionEffect | IMaterialAbstractData); get filter(): IInteractionFilterOptions; add(viewport: IViewportApi): void; /** * Deselect the current node. */ deselect(node: ITreeNode): void; /** * Deselect all nodes. */ deselectAll(): void; onDown(event: PointerEvent, ray: IRay, intersection: IIntersectionDefinition[]): void; onEnd(event: PointerEvent, ray: IRay, intersection: IIntersectionDefinition[], endState: INTERACTION_STATE): void; onKeyDown(event: KeyboardEvent, pointerInCanvas: boolean): void; onKeyUp(event: KeyboardEvent, pointerInCanvas: boolean): void; onMove(event: PointerEvent, ray: IRay, intersection: IIntersectionDefinition[]): void; remove(): void; /** * Select a node for hovering. * The point and distance of the intersection can be freely chosen and are provided in the event callbacks. * * @param intersection */ select(intersection: Omit & Partial>): void; /** * Utility function to make the node the current active node. * Set the according values, apply the effect and emit the event. * * @param intersection * @param event * @param ray */ private activateNode; private deactivateAllNodes; /** * Utility function to make the node inactive. * Set the according values, remove the effect and emit the event. * * @param event */ private deactivateNode; } //# sourceMappingURL=HoverManager.d.ts.map