import { THREE, EventInfo, InputManager } from "@x-viewer/core"; import type { BaseViewer } from "@x-viewer/core"; import { Tooltip } from "@x-viewer/ui"; import { BaseSection } from "../sections/BaseSection"; import { SectionGizmo } from "../sections/SectionGizmo"; import { SectionPlaneMesh } from "../sections/SectionPlaneMesh"; export declare class PickPlaneSection extends BaseSection { protected pickedFaceInfo?: { position: THREE.Vector3; normal: THREE.Vector3; }; protected gizmo?: SectionGizmo; protected planeMesh?: SectionPlaneMesh; protected capsWireframe?: SectionPlaneMesh; protected clipPlane?: THREE.Plane; protected selectedObject?: SectionPlaneMesh | THREE.Mesh | THREE.Object3D; protected center: THREE.Vector3; protected tooltip?: Tooltip; protected lastMouseMoveIntersection?: THREE.Intersection; private readonly rotationQuat; constructor(viewer: BaseViewer, input: InputManager); activate(): void; deactivate(keepSectionState?: boolean): void; setSection(): void; reset(): void; setSectionPlaneVisible(visible: boolean): void; protected initOrUpdateClipPlanes(): void; protected initOrUpdateSectionPlaneMeshes(): void; private createCapsWireframe; protected applyCapsMaterial(): void; protected initOrUpdateGizmo(): void; mousedown: (e: EventInfo) => void; mousemove: (e: EventInfo) => void; onDragStart(e: EventInfo): void; onDragMove(e: EventInfo): void; /** * Rotate gizmo/section plane/caps with the same world-axis quaternion. */ private rotateSectionByAxis; onDragEnd(e: EventInfo): void; getIntersectObjects(): THREE.Object3D[]; activateSelectedObject(active: boolean): void; /** * Picks an object by mouse position. */ pickObject(e: EventInfo): THREE.Intersection> | undefined; setCapsVisible(visible: boolean): void; }