import * as THREE from "three"; import type { ZebraColorScheme, ZebraMappingMode } from "../../core/types.js"; /** * Internal settings for the zebra tool. */ interface ZebraSettings { stripeCount: number; stripeDirection: number; colorScheme: ZebraColorScheme; opacity: number; mappingMode: ZebraMappingMode; } /** * Zebra Analysis Tool for Three.js CAD Viewer * Visualizes surface continuity using alternating stripes */ export declare class ZebraTool { originalMaterials: Map; zebraMaterials: Map; settings: ZebraSettings; zebraTexture: THREE.CanvasTexture | null; constructor(); /** * Create the zebra stripe texture */ createZebraTexture(): void; /** * Create zebra shader material */ createZebraMaterial(): THREE.ShaderMaterial; /** * Apply zebra material to a mesh */ applyToMesh(mesh: THREE.Mesh, visible: boolean): void; /** * Restore original material to a mesh */ restoreMesh(mesh: THREE.Mesh, visible: boolean): void; /** * Update stripe count */ setStripeCount(count: number): void; /** * Update stripe direction (in degrees, 0-90° is sufficient) */ setStripeDirection(angle: number): void; /** * Update color scheme */ setColorScheme(scheme: "blackwhite" | "colorful" | "grayscale"): void; /** * Update stripe opacity (0.0 = show original material, 1.0 = full zebra) */ setStripeOpacity(opacity: number): void; /** * Update mapping mode ('reflection' = Onshape-like, 'normal' = Fusion360/Shapr3D-like) */ setMappingMode(mode: "reflection" | "normal"): void; /** * Update camera position for shaders (call in render loop). * No longer needed - view space calculations handle this automatically. * This method is kept for API compatibility. */ update(): void; /** * Clean up resources */ dispose(): void; } export {};