UNPKG

react-native-filament

Version:

A real-time physically based 3D rendering engine for React Native

86 lines 3.69 kB
import { Entity } from './Entity'; import { LightConfig, LightType, SpotLightExtraConfig } from './LightConfig'; import { PointerHolder } from './PointerHolder'; import { Float3 } from './Math'; /** * LightManager allows to create a light source in the scene, such as a sun or street lights. * * At least one light must be added to a scene in order to see anything * (unless the Material.Shading.UNLIT is used). */ export interface LightManager extends PointerHolder { createLightEntity(type: LightType, colorKelvin: LightConfig['colorKelvin'], intensity: LightConfig['intensity'], direction: LightConfig['direction'], position: LightConfig['position'], castShadows: LightConfig['castShadows'], falloffRadius: SpotLightExtraConfig['falloffRadius'], spotLightCone: SpotLightExtraConfig['spotLightCone']): Entity; /** * Destroys this component from the given entity, should only be called when removed from the scene */ destroy(entityWrapper: Entity): void; /** * Dynamically updates the light's position. * * @param position Light's position in world space. The default is at the origin. */ setPosition(entityWrapper: Entity, position: Float3[]): void; /** * Returns the light's position in world space. */ getPosition(entityWrapper: Entity): Float3[]; /** * Dynamically updates the light's direction * * @param direction Light's direction in world space. Should be a unit vector. * The default is {0,-1,0}. */ setDirection(entityWrapper: Entity, direction: Float3[]): void; /** * Returns the light's direction in world space. */ getDirection(entityWrapper: Entity): Float3[]; /** * Dynamically updates the light's hue as linear sRGB * * @param color Color of the light specified in the linear sRGB color-space. * The default is white {1,1,1}. */ setColor(entityWrapper: Entity, linearSRGBColor: Float3[]): void; /** * Returns the light's color in linear sRGB color-space. */ getColor(entityWrapper: Entity): Float3[]; /** * Dynamically updates the light's intensity. The intensity can be negative. * * @param intensity This parameter depends on the Light.Type: * - For directional lights, it specifies the illuminance in *lux* * (or *lumen/m^2*). * - For point lights and spot lights, it specifies the luminous power * in *lumen*. */ setIntensity(entityWrapper: Entity, intensity: number): void; /** * returns the light's luminous intensity in candela. * * @note for Type.FOCUSED_SPOT lights, the returned value depends on the \p outer cone angle. * * @return luminous intensity in candela. */ getIntensity(entityWrapper: Entity): number; /** * Set the falloff distance for point lights and spot lights. * * @param radius falloff distance in world units. Default is 1 meter. */ setFalloff(entityWrapper: Entity, falloffRadius: number): void; /** * @return the falloff distance of this light. */ getFalloff(entityWrapper: Entity): number; /** * Dynamically updates a spot light's cone as angles * * @param inner inner cone angle in *radians* between 0.00873 and outer * @param outer outer cone angle in *radians* between 0.00873 and pi/2 */ setSpotLightCone(entityWrapper: Entity, spotLightCone: [innerRadians: number, outerRadians: number]): void; getSpotLightCone(entityWrapper: Entity): Float3[]; } //# sourceMappingURL=LightManager.d.ts.map