import {PointLight} from '@xeokit/xeokit-sdk/src/viewer/scene/lights/PointLight.js'PointLight
A positional light source that originates from a single point and spreads outward in all directions, with optional attenuation over distance.
- Has a position in PointLight#pos, but no direction.
- Defined in either World or View coordinate space. When in World-space, PointLight#pos is relative to the World coordinate system, and will appear to move as the Camera moves. When in View-space, PointLight#pos is relative to the View coordinate system, and will behave as if fixed to the viewer's head.
- Has PointLight#constantAttenuation, PointLight#linearAttenuation and PointLight#quadraticAttenuation factors, which indicate how intensity attenuates over distance.
- AmbientLights, PointLights and PointLights are registered by their Component#id on Scene#lights.
Usage
In the example below we'll replace the Scene's default light sources with three World-space PointLights.
import {Viewer, Mesh, buildSphereGeometry, buildPlaneGeometry,
     ReadableGeometry, PhongMaterial, Texture, PointLight} from "xeokit-sdk.es.js";
// Create a Viewer and arrange the camera
const viewer = new Viewer({
     canvasId: "myCanvas"
});
viewer.scene.camera.eye = [0, 0, 5];
viewer.scene.camera.look = [0, 0, 0];
viewer.scene.camera.up = [0, 1, 0];
// Replace the Scene's default lights with three custom world-space PointLights
viewer.scene.clearLights();
new PointLight(viewer.scene,{
     id: "keyLight",
     pos: [-80, 60, 80],
     color: [1.0, 0.3, 0.3],
     intensity: 1.0,
     space: "world"
});
new PointLight(viewer.scene,{
     id: "fillLight",
     pos: [80, 40, 40],
     color: [0.3, 1.0, 0.3],
     intensity: 1.0,
     space: "world"
});
new PointLight(viewer.scene,{
     id: "rimLight",
     pos: [-20, 80, -80],
     color: [0.6, 0.6, 0.6],
     intensity: 1.0,
     space: "world"
});
// Create a sphere and ground plane
new Mesh(viewer.scene, {
     geometry: new ReadableGeometry(viewer.scene, buildSphereGeometry({
         radius: 1.3
     }),
     material: new PhongMaterial(viewer.scene, {
         diffuse: [0.7, 0.7, 0.7],
         specular: [1.0, 1.0, 1.0],
         emissive: [0, 0, 0],
         alpha: 1.0,
         ambient: [1, 1, 0],
         diffuseMap: new Texture(viewer.scene, {
             src: "textures/diffuse/uvGrid2.jpg"
         })
     })
});
new Mesh(viewer.scene, {
     geometry: buildPlaneGeometry(ReadableGeometry, viewer.scene, {
         xSize: 30,
         zSize: 30
     }),
     material: new PhongMaterial(viewer.scene, {
         diffuseMap: new Texture(viewer.scene, {
              src: "textures/diffuse/uvGrid2.jpg"
         }),
         backfaces: true
     }),
     position: [0, -2.1, 0]
});
Constructor Summary
| Public Constructor | ||
| public | constructor(owner: Component, cfg: *) | |
Member Summary
| Public Members | ||
| public set | castsShadow(castsShadow: Boolean) Sets if this PointLight casts a shadow. | |
| public get | castsShadow: Boolean: * Gets if this PointLight casts a shadow. | |
| public set | Sets the RGB color of this PointLight. | |
| public get | Gets the RGB color of this PointLight. | |
| public set | constantAttenuation(value: Number) Sets the constant attenuation factor for this PointLight. | |
| public get | Gets the constant attenuation factor for this PointLight. | |
| public set | Sets the intensity of this PointLight. | |
| public get | Gets the intensity of this PointLight. | |
| public set | linearAttenuation(value: Number) Sets the linear attenuation factor for this PointLight. | |
| public get | Gets the linear attenuation factor for this PointLight. | |
| public set | Sets the position of this PointLight. | |
| public get | Gets the position of this PointLight. | |
| public set | quadraticAttenuation(value: Number) Sets the quadratic attenuation factor for this PointLight. | |
| public get | Gets the quadratic attenuation factor for this PointLight. | |
Method Summary
| Public Methods | ||
| public | destroy() Destroys this PointLight. | |
Inherited Summary
| From class Component | ||
| public get | The Component that owns the lifecycle of this Component, if any. | |
| public | True as soon as this Component has been destroyed | |
| public | ID of this Component, unique within the Scene. | |
| public | meta: * Arbitrary, user-defined metadata on this component. | |
| public | The parent Scene that contains this Component. | |
| public | viewer: Viewer The viewer that contains this Scene. | |
| public | clear() Destroys all Components that are owned by this. | |
| public | destroy() Destroys this component. | |
| public | Logs an error for this component to the JavaScript console. | |
| public | Fires an event on this component. | |
| public | Returns true if there are any subscribers to the given event on this component. | |
| public | Tests if this component is of the given type, or is a subclass of the given type. | |
| public | Logs a console debugging message for this component. | |
| public | Cancels an event subscription that was previously made with Component#on or Component#once. | |
| public | Subscribes to an event on this component. | |
| public | Subscribes to the next occurrence of the given event, then un-subscribes as soon as the event is subIdd. | |
| public | scheduleTask(task: *) Schedule a task to perform on the next browser interval | |
| public | Logs a warning for this component to the JavaScript console. | |
Public Constructors
public constructor(owner: Component, cfg: *) source
Override:
Light#constructorParams:
| Name | Type | Attribute | Description | 
| owner | Component | Owner component. When destroyed, the owner will destroy this PointLight as well. | |
| cfg | * | 
 | The PointLight configuration | 
| cfg.id | String | 
 | Optional ID, unique among all components in the parent Scene, generated automatically when omitted. | 
| cfg.pos | Number[] | 
 | Position, in either World or View space, depending on the value of the space parameter. | 
| cfg.color | Number[] | 
 | Color of this PointLight. | 
| cfg.intensity | Number | 
 | Intensity of this PointLight, as a factor in range  | 
| cfg.constantAttenuation | Number | 
 | Constant attenuation factor. | 
| cfg.linearAttenuation | Number | 
 | Linear attenuation factor. | 
| cfg.quadraticAttenuation | Number | 
 | Quadratic attenuation factor. | 
| cfg.space | String | 
 | The coordinate system this PointLight is defined in - "view" or "world". | 
| cfg.castsShadow | Boolean | 
 | Flag which indicates if this PointLight casts a castsShadow. | 
Public Members
public set castsShadow(castsShadow: Boolean) source
Sets if this PointLight casts a shadow.
Default value is false.
public get castsShadow: Boolean: * source
Gets if this PointLight casts a shadow.
Default value is false.
public set color(color: Number[]) source
Sets the RGB color of this PointLight.
Default value is [0.7, 0.7, 0.8].
public get color: Number[]: * source
Gets the RGB color of this PointLight.
Default value is [0.7, 0.7, 0.8].
public set constantAttenuation(value: Number) source
Sets the constant attenuation factor for this PointLight.
Default value is 0.
public get constantAttenuation: Number: * source
Gets the constant attenuation factor for this PointLight.
Default value is 0.
public set intensity(intensity: Number) source
Sets the intensity of this PointLight.
Default intensity is 1.0 for maximum intensity.
public get intensity: Number: * source
Gets the intensity of this PointLight.
Default value is 1.0 for maximum intensity.
public set linearAttenuation(value: Number) source
Sets the linear attenuation factor for this PointLight.
Default value is 0.
public get linearAttenuation: Number: * source
Gets the linear attenuation factor for this PointLight.
Default value is 0.
public set pos(pos: Number[]) source
Sets the position of this PointLight.
This will be either World- or View-space, depending on the value of PointLight#space.
Default value is [1.0, 1.0, 1.0].
public get pos: Number[]: * source
Gets the position of this PointLight.
This will be either World- or View-space, depending on the value of PointLight#space.
Default value is [1.0, 1.0, 1.0].
 Reference
  Source
  
  Reference
  Source
  
   
    
  