/** * SceneInspector.ts * * Comprehensive debugging and inspection system for HoloScript scenes. * Provides visual debugging overlays, performance metrics, and scene exploration tools. * * Features: * - Scene hierarchy visualization * - Object property inspection * - Performance metrics (FPS, draw calls, memory) * - Visual debug overlays (bounding boxes, normals, wireframe) * - Camera debugging * - Particle system visualization * - Physics debug rendering */ import * as THREE from 'three'; export interface InspectorConfig { /** Show FPS counter */ showFPS?: boolean; /** Show memory usage */ showMemory?: boolean; /** Show draw calls */ showDrawCalls?: boolean; /** Show scene hierarchy */ showHierarchy?: boolean; /** Show bounding boxes */ showBoundingBoxes?: boolean; /** Show wireframe overlay */ showWireframe?: boolean; /** Show normals */ showNormals?: boolean; /** Show camera frustum */ showCameraFrustum?: boolean; /** Show coordinate axes */ showAxes?: boolean; /** Show grid */ showGrid?: boolean; } export interface SceneStats { fps: number; frameTime: number; objectCount: number; triangleCount: number; drawCalls: number; memory: { geometries: number; textures: number; total: number; }; particleSystems: number; activeLights: number; cameras: number; } export interface ObjectInfo { name: string; type: string; uuid: string; position: THREE.Vector3; rotation: THREE.Euler; scale: THREE.Vector3; visible: boolean; children: number; triangles: number; } /** * Scene Inspector for debugging and visualization */ export declare class SceneInspector { private config; private scene; private camera; private renderer; private boundingBoxHelpers; private normalHelpers; private axesHelper; private gridHelper; private cameraHelper; private frameCount; private lastTime; private fps; private frameTime; private frameTimeSamples; constructor(config?: InspectorConfig); /** * Attach inspector to a scene */ attach(scene: THREE.Scene, camera: THREE.Camera, renderer: THREE.WebGLRenderer): void; /** * Detach inspector from scene */ detach(): void; /** * Initialize debug overlay objects */ private initializeDebugOverlays; /** * Clear all debug overlays */ private clearDebugOverlays; /** * Update debug visualizations (call each frame) */ update(): void; /** * Update performance metrics */ private updatePerformanceMetrics; /** * Update debug overlay objects */ private updateDebugOverlays; /** * Update bounding box helpers */ private updateBoundingBoxes; /** * Clear bounding box helpers */ private clearBoundingBoxes; /** * Update normal helpers */ private updateNormals; /** * Clear normal helpers */ private clearNormals; /** * Get comprehensive scene statistics */ getStats(): SceneStats; /** * Get empty stats structure */ private getEmptyStats; /** * Get scene hierarchy as tree structure */ getSceneHierarchy(): ObjectInfo[]; /** * Get detailed information about a specific object */ getObjectInfo(object: THREE.Object3D): ObjectInfo; /** * Find object by UUID */ findObject(uuid: string): THREE.Object3D | null; /** * Find objects by name */ findObjectsByName(name: string): THREE.Object3D[]; /** * Find objects by type */ findObjectsByType(type: string): THREE.Object3D[]; /** * Toggle debug feature */ toggleFeature(feature: keyof InspectorConfig, enabled?: boolean): void; /** * Get current configuration */ getConfig(): Required; /** * Update configuration */ setConfig(config: Partial): void; /** * Export scene statistics as JSON */ exportStats(): string; /** * Dispose inspector and cleanup */ dispose(): void; } //# sourceMappingURL=SceneInspector.d.ts.map