UNPKG

@needle-tools/engine

Version:

Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in

84 lines (83 loc) 2.77 kB
import { Color, Vector3 } from "three"; import type { ILight } from "../engine/engine_types.js"; import { type NeedleXREventArgs } from "../engine/xr/api.js"; import { Behaviour } from "./Component.js"; export declare enum LightType { Spot = 0, Directional = 1, Point = 2, Area = 3, Rectangle = 3, Disc = 4 } export declare enum LightmapBakeType { Realtime = 4, Baked = 2, Mixed = 1 } declare enum LightShadows { None = 0, Hard = 1, Soft = 2 } /** The Light component can be used to create a light source in the scene. * It can be used to create a directional light, a spot light or a point light. * The light can be set to cast shadows and the shadow type can be set to hard or soft shadows. * The light can be set to be baked or realtime. * The light can be set to be a main light which will be used for the main directional light in the scene. * @category Rendering * @group Components */ export declare class Light extends Behaviour implements ILight { private type; range: number; spotAngle: number; innerSpotAngle: number; set color(val: Color); get color(): Color; _color: Color; set shadowNearPlane(val: number); get shadowNearPlane(): number; private _shadowNearPlane; set shadowBias(val: number); get shadowBias(): number; private _shadowBias; set shadowNormalBias(val: number); get shadowNormalBias(): number; private _shadowNormalBias; /** when enabled this will remove the multiplication when setting the shadow bias settings initially */ private _overrideShadowBiasSettings; set shadows(val: LightShadows); get shadows(): LightShadows; private _shadows; private lightmapBakeType; set intensity(val: number); get intensity(): number; private _intensity; get shadowDistance(): number; set shadowDistance(val: number); private _shadowDistance?; private shadowWidth?; private shadowHeight?; get shadowResolution(): number; set shadowResolution(val: number); private _shadowResolution?; get isBaked(): boolean; private get selfIsLight(); private light; getWorldPosition(vec: Vector3): Vector3; awake(): void; onEnable(): void; onDisable(): void; private _webXRStartedListener?; private _webXREndedListener?; private _webARRoot?; onEnterXR(_args: NeedleXREventArgs): void; onLeaveXR(_args: NeedleXREventArgs): void; createLight(): void; updateMainLightRoutine(): Generator<undefined, void, unknown>; static allowChangingRendererShadowMapType: boolean; private updateShadowSoftHard; private setDirectionalLight; } export {};