UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

115 lines (114 loc) 7.31 kB
import { Constructor } from '../../types/GlobalTypes'; import { DefaultOperationParams } from '../operations/_Base'; import { Group, Vector2, Color, SpotLight } from 'three'; import { CoreSpotLightHelperParams } from './spotlight/CoreSpotLightHelper'; import { TypedNodePathParamValue } from '../Walker'; export interface SpotLightParams extends DefaultOperationParams { color: Color; intensity: number; angle: number; penumbra: number; decay: number; distance: number; showHelper: boolean; helperSize: number; tmap: boolean; map: TypedNodePathParamValue; name: string; castShadow: boolean; shadowAutoUpdate: boolean; shadowUpdateOnNextRender: boolean; shadowRes: Vector2; shadowBias: number; shadowNear: number; shadowFar: number; shadowRadius: number; tvolumetric: boolean; volAttenuation: number; volAnglePower: number; raymarchingPenumbra: number; raymarchingShadowBiasAngle: number; raymarchingShadowBiasDistance: number; } export declare const DEFAULT_SPOT_LIGHT_PARAMS: SpotLightParams; export declare function SpotLightParamConfig<TBase extends Constructor>(Base: TBase): { new (...args: any[]): { light: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FOLDER>; /** @param light color */ color: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.COLOR>; /** @param light intensity */ intensity: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param angle */ angle: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param penumbra */ penumbra: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param decay */ decay: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param distance */ distance: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param toggle on to show helper */ showHelper: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.BOOLEAN>; /** @param helper size */ helperSize: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param toggle on to show helper */ tmap: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.BOOLEAN>; /** @param helper size */ map: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.NODE_PATH>; /** @param light name */ name: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.STRING>; shadow: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FOLDER>; /** @param toggle on to cast shadows */ castShadow: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.BOOLEAN>; /** @param toggle off if the shadows do not need to be regenerated */ shadowAutoUpdate: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.BOOLEAN>; /** @param press button to update the shadows on next render */ shadowUpdateOnNextRender: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.BOOLEAN>; /** @param shadows res */ shadowRes: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.VECTOR2>; /** @param shadows bias */ shadowBias: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param shadows near */ shadowNear: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param shadows far */ shadowFar: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param shadows radius. This only has effect when setting the ROP/WebGLRenderer's shadowMapType to VSM */ shadowRadius: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param display shadow on a plane behind the light */ volumetric: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FOLDER>; /** @param toggle on to add a volumetric effect to the spotlight */ tvolumetric: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.BOOLEAN>; /** @param volumetric attenuation */ volAttenuation: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param volumetric angle power */ volAnglePower: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; raymarching: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FOLDER>; /** @param this affects the shadows cast inside raymarchingBuilder materials */ raymarchingPenumbra: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param shadow bias */ raymarchingShadowBiasAngle: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; /** @param shadow bias */ raymarchingShadowBiasDistance: import("../../engine/nodes/utils/params/ParamsConfig").ParamTemplate<import("../../engine/index_all").ParamType.FLOAT>; }; } & TBase; export interface SpotLightContainerParams extends CoreSpotLightHelperParams { showHelper: boolean; tvolumetric: boolean; volAnglePower: number; volAttenuation: number; } export declare class SpotLightContainer extends Group { readonly nodeName: string; private _light; private _target; matrixAutoUpdate: boolean; params: SpotLightContainerParams; constructor(params: Partial<SpotLightContainerParams>, nodeName: string); updateParams(params: Partial<SpotLightContainerParams>): void; light(): SpotLight; copy(source: this, recursive?: boolean): this; clone(recursive?: boolean): this; private __helper__; updateHelper(): void; private __volumetric__; updateVolumetric(): void; }