API Docs for: 2.0.0
Show:

PointLight Class

Extends Light
Module: lighting
Parent Module: BIMSURFER

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 optional

    Parent Viewer.

  • [cfg] optional

    The PointLight configuration

    • [id] String optional

      Optional ID, unique among all components in the parent Viewer, generated automatically when omitted.

    • [meta] String:Object optional

      Optional map of user-defined metadata to attach to this PointLight.

    • [pos=[ 1.0, 1.0, 1.0 ]] Array(Number) optional

      Position, in either World or View space, depending on the value of the space parameter.

    • [color=[0.7, 0.7, 0.8 ]] Array(Number) optional

      Diffuse color of this PointLight.

    • [constantAttenuation=0] Number optional

      Constant attenuation factor.

    • [linearAttenuation=0] Number optional

      Linear attenuation factor.

    • [quadraticAttenuation=0] Number optional

      Quadratic attenuation factor.

    • [space="view"] String optional

      The coordinate system this PointLight is defined in - "view" or "space".

Methods

destroy

()

Destroys this component.

Removes this Component from its Viewer.

Fires a destroyed event on this Component.

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 String

    The 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 String

    The event type name

  • value Object

    The event

  • [forget=false] Boolean optional

    When 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 String

    The message to log

off

(
  • handle
)

Cancels an event subscription that was previously made with on or once.

Parameters:

  • handle String

    Subscription handle

on

(
  • event
  • callback
  • [scope=this]
)
String

Subscribes to an event on this component.

The callback is be called with this component as scope.

Parameters:

  • event String

    Publication event

  • callback Function

    Called when fresh data is available at the event

  • [scope=this] Object optional

    Scope for the callback

Returns:

String:

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 String

    Data event to listen to

  • callback Function(data)

    Called when fresh data is available at the event

  • [scope=this] Object optional

    Scope 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 String

    The message to log

Properties

active

Boolean

Inherited from Light but overwritten in src/viewer/effects/render.js:51

Flag which indicates whether this Light is active or not.

Fires an active event on change.

className

String final

Inherited from Component but overwritten in src/viewer/effects/render.js:27

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

id

String final

Unique ID for this Component within its parent Viewer.

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"

viewer

Viewer final

The Viewer that contains this Component.

Events

active

Inherited from Light but overwritten in src/viewer/effects/render.js:76

Fired whenever this Light's active property changes.

Event Payload:

  • value Object

    The property's new value

destroyed

Fired when this Component is destroyed.