@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
115 lines (114 loc) • 7.31 kB
TypeScript
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;
}