/** * Renderer constants - extracted magic numbers for maintainability */ export declare const CAMERA_CONSTANTS: { /** Inertia damping factor (0-1), higher = more damping */ readonly DAMPING_FACTOR: 0.92; /** Minimum velocity threshold for inertia */ readonly MIN_VELOCITY_THRESHOLD: 0.001; /** First-person movement speed */ readonly FIRST_PERSON_SPEED: 0.1; /** Orbit sensitivity (radians per pixel) */ readonly ORBIT_SENSITIVITY: 0.01; /** Pan speed multiplier */ readonly PAN_SPEED_MULTIPLIER: 0.001; /** Zoom sensitivity */ readonly ZOOM_SENSITIVITY: 0.001; /** Maximum zoom delta per frame */ readonly MAX_ZOOM_DELTA: 0.1; /** Minimum perspective camera distance from target */ readonly MIN_PERSPECTIVE_DISTANCE: 0.00001; readonly DEFAULT_POSITION: { readonly x: 50; readonly y: 50; readonly z: 100; }; readonly DEFAULT_TARGET: { readonly x: 0; readonly y: 0; readonly z: 0; }; readonly DEFAULT_UP: { readonly x: 0; readonly y: 1; readonly z: 0; }; readonly DEFAULT_FOV: number; readonly DEFAULT_NEAR: 0.1; readonly DEFAULT_FAR: 100000; /** Maximum near/far ratio for depth precision */ readonly MAX_NEAR_FAR_RATIO: 10000; /** Near plane as percentage of distance */ readonly NEAR_DISTANCE_FACTOR: 0.001; /** Far plane multiplier of distance */ readonly FAR_DISTANCE_MULTIPLIER: 10; /** Minimum phi angle. Top preset uses this — keeps phi off the +Y pole. */ readonly MIN_PHI: 0.01; /** Maximum phi angle. Bottom preset uses this — keeps phi off the −Y pole. */ readonly MAX_PHI: number; /** Sin phi threshold for pole detection */ readonly POLE_THRESHOLD: 0.05; /** Default animation duration in ms */ readonly DEFAULT_ANIMATION_DURATION: 500; /** Quick animation duration in ms */ readonly QUICK_ANIMATION_DURATION: 300; /** Distance multiplier for fitToBounds */ readonly FIT_DISTANCE_MULTIPLIER: 2; /** Padding multiplier for frame selection */ readonly FRAME_PADDING_MULTIPLIER: 1.2; /** Padding multiplier for zoom extent */ readonly ZOOM_EXTENT_PADDING: 1.5; readonly ISOMETRIC_OFFSET: { readonly right: 0.6; readonly up: 0.5; readonly front: 0.6; }; }; export declare const PIPELINE_CONSTANTS: { /** Total uniform buffer size */ readonly UNIFORM_BUFFER_SIZE: 224; /** Byte offset for flags in uniform buffer */ readonly FLAGS_BYTE_OFFSET: 176; /** Default MSAA sample count */ readonly DEFAULT_SAMPLE_COUNT: 4; /** * Depth/stencil format used by RenderPipeline. Switched from depth32float * to depth24plus-stencil8 when the 3D section work introduced a render * pass shared by the main opaque, the section-plane preview, and the 2D * overlay cap — WebGPU requires a single depth-stencil format across all * pipelines that write to the same pass attachment. */ readonly DEPTH_FORMAT: "depth24plus-stencil8"; }; export declare const BATCH_CONSTANTS: { /** Safety factor for GPU buffer size — use 90% of device limit to leave headroom */ readonly BUFFER_SIZE_SAFETY_FACTOR: 0.9; /** Fallback max buffer size when device limit is unavailable (256 MB) */ readonly FALLBACK_MAX_BUFFER_SIZE: number; /** Bytes per vertex in the interleaved layout (pos3 + norm3 + entityId1 = 7 × 4) */ readonly BYTES_PER_VERTEX: number; /** Bytes per index (uint32) */ readonly BYTES_PER_INDEX: 4; }; //# sourceMappingURL=constants.d.ts.map