// generated by diplomat-tool import type { NucleationError } from "./NucleationError.mjs" import type { pointer, codepoint } from "./diplomat-runtime.d.ts"; /** * Camera / output configuration for rendering. */ export class RenderConfig { /** @internal */ get ffiValue(): pointer; /** @internal */ constructor(); /** * Create a config with the given output size in pixels. Camera starts * at the defaults: yaw 45°, pitch 30°, zoom 1.0, fov 45°, perspective * projection, default sky background. */ static create(width: number, height: number): RenderConfig; /** * Set the camera yaw (horizontal orbit angle) in degrees. Default: 45. */ setYaw(yaw: number): void; /** * Set the camera pitch (downward tilt) in degrees. Default: 30. */ setPitch(pitch: number): void; /** * Set the zoom factor applied to the auto-fitted framing * (1.0 = frame the whole model; 2.0 = twice as close; 0.5 = twice * as far). Default: 1.0. */ setZoom(zoom: number): void; /** * Fit the camera to the model's bounding sphere instead of its * yaw-dependent silhouette. The sphere is rotation invariant, so * orbiting cameras (turntables) keep a constant distance instead * of pulsing as the silhouette changes. Frames slightly looser * than the default fit. Default: false. */ setSphereFit(sphereFit: boolean): void; /** * Set the vertical field of view in degrees (perspective projection * only). Default: 45. */ setFov(fov: number): void; /** * Set the world-space directional light and its non-negative intensity. */ setDirectionalLight(x: number, y: number, z: number, intensity: number): void; /** * Set the unlit floor for non-HDRI rendering, in `0..=1`. */ setAmbientLight(ambient: number): void; /** * Set a solid RGBA clear color (linear 0.0–1.0). Alpha < 1.0 yields a * transparent PNG. Ignored when HDRI is enabled. */ setBackground(r: number, g: number, b: number, a: number): void; /** * Clear the custom background — revert to default sky / HDRI. */ clearBackground(): void; /** * Configure a one-block world grid. Models are centred on integer * schematic coordinates, so grid lines are placed on half-integer * block boundaries automatically. */ setGrid(halfExtent: number, spacing: number, planeY: number, showAxes: boolean, red: number, green: number, blue: number, alpha: number): void; /** * Configure a compact grid fitted to half-integer block boundaries. */ setFittedGrid(margin: number, spacing: number, planeY: number, showAxes: boolean, red: number, green: number, blue: number, alpha: number): void; clearGrid(): void; /** * Enable (`true`) or disable orthographic projection. */ setOrthographic(orthographic: boolean): void; /** * Configure a true isometric view: orthographic at yaw 45° / * pitch ≈35.264° (preserves the current width/height). */ setIsometric(): void; }