import { RGBA } from "../utils/math3d"; import { RpcSafeClient, SceneSettings } from "./rpcSafeClient"; /** * Render settings that extend SceneSettings with additional rendering-specific properties */ export type RenderSettings = SceneSettings & { /** Whether to lock the Image-Based Lighting rotation */ lockIblRotation: boolean; /** Color used for ghost/transparent rendering */ ghostColor: RGBA; }; /** * Default rendering settings */ export declare const defaultRenderSettings: RenderSettings; /** * Interface defining the basic renderer capabilities */ export interface IRenderer { ghostColor: RGBA; lockIblRotation: boolean; hdrScale: number; toneMappingWhitePoint: number; hdrBackgroundScale: number; hdrBackgroundSaturation: number; backgroundBlur: number; backgroundColor: RGBA; } /** * Renderer class that handles 3D scene rendering and settings management */ export declare class Renderer implements IRenderer { private _rpc; private _settings; private _animationFrame; private _updateLighting; private _updateGhostColor; private _updateIblRotation; /** * Creates a new Renderer instance * @param rpc - RPC client for communication with the rendering backend * @param settings - Optional partial render settings to override defaults */ constructor(rpc: RpcSafeClient, settings?: Partial); /** * Initializes the renderer when connection is established * Sets up initial scene settings, ghost color, and IBL rotation */ onConnect(): void; /** * Gets the ghost color used for transparent rendering * @returns Current ghost color as RGBA */ get ghostColor(): RGBA; /** * Gets the IBL rotation lock setting * @returns Whether IBL rotation is locked */ get lockIblRotation(): boolean; /** * Gets the tone mapping white point value * @returns Current tone mapping white point */ get toneMappingWhitePoint(): number; /** * Gets the HDR scale value * @returns Current HDR scale */ get hdrScale(): number; /** * Gets the HDR background scale value * @returns Current HDR background scale */ get hdrBackgroundScale(): number; /** * Gets the HDR background saturation value * @returns Current HDR background saturation */ get hdrBackgroundSaturation(): number; /** * Gets the background blur value * @returns Current background blur */ get backgroundBlur(): number; /** * Gets the background color * @returns Current background color as RGBA */ get backgroundColor(): RGBA; /** * Updates the ghost color used for transparent rendering * @param value - New ghost color as RGBA */ set ghostColor(value: RGBA); /** * Updates the IBL rotation lock setting * @param value - Whether to lock IBL rotation */ set lockIblRotation(value: boolean); /** * Sets the tone mapping white point value * @param value - New tone mapping white point value */ set toneMappingWhitePoint(value: number); /** * Sets the HDR scale value * @param value - New HDR scale value */ set hdrScale(value: number); /** * Sets the HDR background scale value * @param value - New HDR background scale value */ set hdrBackgroundScale(value: number); /** * Sets the HDR background saturation value * @param value - New HDR background saturation value */ set hdrBackgroundSaturation(value: number); /** * Sets the background blur value * @param value - New background blur value */ set backgroundBlur(value: number); /** * Sets the background color * @param value - New background color as RGBA */ set backgroundColor(value: RGBA); /** * Requests an update to be performed on the next animation frame. * Multiple setting changes will be batched into a single update. * @private */ private requestSettingsUpdate; private applySettings; /** * Cleans up renderer resources * Cancels any pending animation frames */ dispose(): void; }