import { OrbitCamera, OrbitCameraOptions } from './camera/OrbitCamera'; import { OrbitControllerOptions } from './controls/OrbitController'; import { Axes3DOptions } from './Axes3D'; import { Tooltip3DOptions } from './Tooltip3D'; import { SurfaceMesh3DData } from './series/types'; import { Renderer3DOptions, RenderStats3D, Renderer3DEventCallback } from './types'; export interface SurfaceMesh3DRendererOptions extends Renderer3DOptions { camera?: OrbitCameraOptions; controls?: OrbitControllerOptions; axes?: Axes3DOptions; showAxes?: boolean; wireframe?: boolean; opacity?: number; enableLighting?: boolean; ambient?: number; lightDirection?: [number, number, number]; /** Enable tooltips on hover (default: true) */ enableTooltip?: boolean; /** Tooltip configuration */ tooltip?: Tooltip3DOptions; } export declare class SurfaceMesh3DRenderer { private canvas; private gl; private dpr; private programs; private mesh; private camera; private controller; private axes; private backgroundColor; private showAxes; private wireframe; private opacity; private enableLighting; private ambient; private lightDirection; private bounds; private vertexCount; private animationFrameId; private needsRender; private eventListeners; private tooltip; private enableTooltipOption; private meshData; private boundHandleMouseMove; private boundHandleMouseLeave; private lastFrameTime; private frameCount; private fps; private lastFpsUpdate; constructor(options: SurfaceMesh3DRendererOptions); private handleMouseMove; private handleMouseLeave; private handleResize; resize(): void; /** * Set surface mesh data */ setData(data: SurfaceMesh3DData): void; private calculateBounds; /** * Fit camera to show all data */ fitToData(): void; /** * Render a single frame */ render(): void; startRenderLoop(): void; stopRenderLoop(): void; /** * Set wireframe mode */ setWireframe(enabled: boolean): void; /** * Set background color */ setBackgroundColor(color: [number, number, number, number]): void; /** * Get rendering stats */ getStats(): RenderStats3D; /** * Get the camera */ getCamera(): OrbitCamera; /** * Get axis labels for 2D text overlay */ getAxisLabels(): { text: string; worldPosition: [number, number, number]; axis: string; color: [number, number, number]; }[]; /** * Project world coordinates to screen coordinates */ projectToScreen(worldPos: [number, number, number]): { x: number; y: number; visible: boolean; }; /** * Get the current view-projection matrix */ getViewProjectionMatrix(): Float32Array; /** * Get canvas dimensions */ getCanvasSize(): { width: number; height: number; }; /** * Add event listener */ on(event: string, callback: Renderer3DEventCallback): void; /** * Remove event listener */ off(event: string, callback: Renderer3DEventCallback): void; private emitEvent; /** * Clean up all resources */ destroy(): void; }