import { Color } from './core/type'; import type Mesh from './Mesh'; import ClayNode, { ClayNodeOpts } from './Node'; import { UniformType } from './Shader'; export interface LightOpts extends ClayNodeOpts { /** * Light RGB color */ color: Color; /** * Light intensity */ intensity: number; /** * If light cast shadow */ castShadow: boolean; /** * Shadow map size */ shadowResolution: number; /** * Light group, shader with same `lightGroup` will be affected * * Only useful in forward rendering */ group: number; } interface Light extends LightOpts { } declare class Light extends ClayNode { color: number[]; intensity: number; castShadow: boolean; shadowResolution: number; group: number; /** * Volumn mesh for deferred rendering */ volumeMesh?: Mesh; /** * Light type */ type: string; uniformTemplates?: Record any; }>; constructor(opts?: Partial); /** * @return {clay.Light} * @memberOf clay.Light.prototype */ clone(): Light; } export default Light;