import { ShadowMappedLightModel } from "./AbstractLightModel"; import SpotLight from "./SpotLight"; import { GlslCode } from "../interfaces/GlslCode"; import LightType from "./LightType"; import StandardModel from "./StandardModel"; import Program from "nanogl/program"; import { GLContext } from "nanogl/types"; export default class SpotLightModel extends ShadowMappedLightModel { readonly type = LightType.SPOT; _positions: Float32Array | null; _directions: Float32Array | null; _colors: Float32Array | null; _attenuation: Float32Array | null; constructor(code: GlslCode, preCode: GlslCode); genCodePerLights(light: SpotLight, index: number, shadowIndex: number): string; allocate(n: number): void; prepare(gl: GLContext, model: StandardModel): void; setup(prg: Program): void; }