/** * SceneInspector.ts * * Professional scene inspection and debugging tool. * Provides Unity/Unreal-style inspector for HoloScript runtime. * * Features: * - Entity hierarchy viewer * - Property inspector with live editing * - Performance profiler and frame timeline * - Physics visualization (forces, collisions, bounds) * - Render statistics overlay * - Object selection and highlighting */ import type { RuntimeRenderer } from '@holoscript/engine/runtime/RuntimeRenderer'; import type { HoloComposition } from '@holoscript/core'; export interface InspectorEntity { /** Entity ID */ id: string; /** Entity name */ name: string; /** Entity type */ type: string; /** Parent ID (null for root) */ parentId: string | null; /** Children IDs */ childrenIds: string[]; /** Transform */ transform: { position: [number, number, number]; rotation: [number, number, number]; scale: [number, number, number]; }; /** Properties */ properties: Record; /** Traits */ traits: string[]; /** Visibility */ visible: boolean; /** Active in scene */ active: boolean; } export interface PerformanceFrame { /** Frame number */ frameNumber: number; /** Frame time (ms) */ frameTime: number; /** FPS */ fps: number; /** Physics time (ms) */ physicsTime: number; /** Render time (ms) */ renderTime: number; /** Sync time (ms) */ syncTime: number; /** Timestamp */ timestamp: number; } export interface SceneStatistics { /** Total entities */ totalEntities: number; /** Active entities */ activeEntities: number; /** Visible entities */ visibleEntities: number; /** Total vertices */ totalVertices: number; /** Total triangles */ totalTriangles: number; /** Draw calls */ drawCalls: number; /** Texture memory (MB) */ textureMemory: number; /** Geometry memory (MB) */ geometryMemory: number; /** Current FPS */ currentFPS: number; /** Average FPS (last 60 frames) */ averageFPS: number; /** Min FPS (last 60 frames) */ minFPS: number; /** Max FPS (last 60 frames) */ maxFPS: number; } export interface PhysicsVisualization { /** Show collision bounds */ showBounds: boolean; /** Show velocity vectors */ showVelocity: boolean; /** Show force vectors */ showForces: boolean; /** Show contact points */ showContacts: boolean; /** Show center of mass */ showCenterOfMass: boolean; } export interface InspectorConfig { /** Enable inspector */ enabled?: boolean; /** Show performance overlay */ showPerformance?: boolean; /** Show hierarchy panel */ showHierarchy?: boolean; /** Show properties panel */ showProperties?: boolean; /** Show statistics panel */ showStatistics?: boolean; /** Performance history size */ performanceHistorySize?: number; /** Update frequency (Hz) */ updateFrequency?: number; } /** * Scene Inspector - Professional debugging and development tool */ export declare class SceneInspector { private readonly config; private composition; private renderer; private entities; private selectedEntityId; private performanceHistory; private currentFrame; private lastUpdateTime; private physicsVisualization; constructor(config?: InspectorConfig); /** * Initialize inspector with composition */ initialize(composition: HoloComposition, renderer?: RuntimeRenderer): void; /** * Build entity hierarchy from composition */ private buildEntityHierarchy; /** * Extract properties from entity */ private extractProperties; /** * Update inspector (call per frame) */ update(deltaTime: number): void; /** * Record performance frame */ private recordPerformanceFrame; /** * Get entity hierarchy (for tree view) */ getEntityHierarchy(): InspectorEntity[]; /** * Get entity by ID */ getEntity(id: string): InspectorEntity | undefined; /** * Select entity */ selectEntity(id: string): void; /** * Get selected entity */ getSelectedEntity(): InspectorEntity | null; /** * Update entity property (live editing) */ updateEntityProperty(id: string, path: string, value: unknown): boolean; /** * Get scene statistics */ getStatistics(): SceneStatistics; /** * Get performance history */ getPerformanceHistory(): PerformanceFrame[]; /** * Toggle physics visualization */ togglePhysicsVisualization(type: keyof PhysicsVisualization): void; /** * Get physics visualization settings */ getPhysicsVisualization(): PhysicsVisualization; /** * Generate HTML for inspector UI */ generateInspectorHTML(): string; /** * Enable/disable inspector */ setEnabled(enabled: boolean): void; /** * Get configuration */ getConfig(): InspectorConfig; } //# sourceMappingURL=SceneInspector.d.ts.map