PointLight Class
A PointLight is a Light that defines a positional light source that originates from a single point and spreads outward in all directions.
Overview
- PointLights have a position, but no direction.
- PointLights may be defined in either World or View coordinate space. When in World-space, their position is relative to the World coordinate system, and will appear to move as the Camera moves. When in View-space, their position is relative to the View coordinate system, and will behave as if fixed to the viewer's head as the Camera moves.
- PointLights have constantAttenuation, linearAttenuation and quadraticAttenuation factors, which indicate how their intensity attenuates over distance.
Example
In the example below we're illuminating a TeapotObject with a single PointLight.
// Create a Viewer
var viewer = new BIMSURFER.Viewer({ element: "myDiv" });
// Create a Camera
var camera = new BIMSURFER.Camera(viewer, {
eye: [5, 5, -5]
});
// Create a camera orbit control
var control = new BIMSURFER.CameraControl(viewer, {
camera: camera
});
// Create a TeapotObject
var teapot = new BIMSURFER.TeapotObject(viewer);
// Create a PointLight
var pointLight = new BIMSURFER.PointLight(viewer, {
color: [0.9, 0.9, 0.9],
pos: [-10.0, 10.0, 10.0],
constantAttenuation: 0.0,
linearAttenuation: 0.0,
quadraticAttenuation: 0.0,
space: "view"
});
Constructor
PointLight
-
[viewer]
-
[cfg]
Parameters:
-
[viewer]
Viewer optionalParent Viewer.
-
[cfg]
optionalThe PointLight configuration
-
[id]
String optionalOptional ID, unique among all components in the parent Viewer, generated automatically when omitted.
-
[meta]
String:Object optionalOptional map of user-defined metadata to attach to this PointLight.
-
[pos=[ 1.0, 1.0, 1.0 ]]
Array(Number) optionalPosition, in either World or View space, depending on the value of the space parameter.
-
[color=[0.7, 0.7, 0.8 ]]
Array(Number) optionalDiffuse color of this PointLight.
-
[constantAttenuation=0]
Number optionalConstant attenuation factor.
-
[linearAttenuation=0]
Number optionalLinear attenuation factor.
-
[quadraticAttenuation=0]
Number optionalQuadratic attenuation factor.
-
[space="view"]
String optionalThe coordinate system this PointLight is defined in - "view" or "space".
-
Item Index
Properties
Methods
destroy
()
error
-
message
Logs an error for this component to the JavaScript console.
The console message will have this format: [ERROR] <component id>: <message>
Parameters:
-
message
StringThe message to log
fire
-
event
-
value
-
[forget=false]
Fires an event on this component.
Notifies existing subscribers to the event, retains the event to give to any subsequent notifications on that location as they are made.
Parameters:
-
event
StringThe event type name
-
value
ObjectThe event
-
[forget=false]
Boolean optionalWhen true, does not retain for subsequent subscribers
log
-
message
Logs a console debugging message for this component.
The console message will have this format: [LOG] <component id>: <message>
Parameters:
-
message
StringThe message to log
off
-
handle
Parameters:
-
handle
StringSubscription handle
on
-
event
-
callback
-
[scope=this]
Subscribes to an event on this component.
The callback is be called with this component as scope.
Parameters:
-
event
StringPublication event
-
callback
FunctionCalled when fresh data is available at the event
-
[scope=this]
Object optionalScope for the callback
Returns:
Handle to the subscription, which may be used to unsubscribe with {@link #off}.
once
-
event
-
callback
-
[scope=this]
Subscribes to the next occurrence of the given event, then un-subscribes as soon as the event is handled.
Parameters:
-
event
StringData event to listen to
-
callback
Function(data)Called when fresh data is available at the event
-
[scope=this]
Object optionalScope for the callback
warn
-
message
Logs a warning for this component to the JavaScript console.
The console message will have this format: [WARN] <component id>: <message>
Parameters:
-
message
StringThe message to log
Properties
active
Boolean
Flag which indicates whether this Light is active or not.
Fires an active event on change.
className
String
final
JavaScript class name for this Component.
color
Array(Number)
The color of this PointLight.
Default: [0.7, 0.7, 0.8]
constantAttenuation
Number
The constant attenuation factor for this PointLight.
Default: 0
destroyed
Boolean
True as soon as this Component has been destroyed
Items in this map
Unknown
linearAttenuation
Number
The linear attenuation factor for this PointLight.
Default: 0
metadata
Object
Metadata on this component.
pos
Array(Number)
The position of this PointLight.
This will be either World- or View-space, depending on the value of space.
Default: [1.0, 1.0, 1.0]
quadraticAttenuation
Number
The quadratic attenuation factor for this Pointlight.
Default: 0
space
String
Indicates which coordinate space this PointLight is in.
Supported values are:
- "view" - View space, aligned within the view volume as if fixed to the viewer's head
- "world" - World space, fixed within the world, moving within the view volume with respect to camera
Default: "view"
Events
active
Fired whenever this Light's active property changes.
Event Payload:
-
value
ObjectThe property's new value
destroyed
Fired when this Component is destroyed.