API Docs for: 2.0.0
Show:

CameraControl Class

Extends Component
Module: input
Parent Module: BIMSURFER

A CameraControl allows you to pan, rotate and zoom a Camera using the mouse and keyboard, as well as switch it between preset left, right, anterior, posterior, superior and inferior views.

Overview

  • You can have multiple CameraControls within the same Viewer.
  • Multiple CameraControls can drive the same Camera, or can each drive their own separate Cameras.
  • At any instant, the CameraControl we're driving is the one whose active property is true.
  • You can switch a CameraControl to a different Camera at any time.

Example

Controlling a Camera

In this example we're viewing a RandomObjects with a Camera that's controlled by a CameraControl.

var viewer = new BIMSURFER.Viewer({ element: "myDiv" });

var camera = new BIMSURFER.Camera(viewer, {
       eye: [5, 5, -5]
   });

var cameraControl = new BIMSURFER.CameraControl(viewer, {
       camera: camera
   });

// Create a RandomObjects
var randomObjects = new BIMSURFER.RandomObjects(viewer, {
       numObjects: 55
   });

Constructor

CameraControl

(
  • [viewer]
  • [cfg]
  • [camera]
)

Parameters:

  • [viewer] Viewer optional

    Parent Viewer.

  • [cfg] optional

    Configs

    • [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 CameraControl.

  • [camera] Camera optional

    The Camera to control.

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

Flag which indicates whether this CameraControl is active or not.

Fires an active event on change.

camera

Camera

The Camera being controlled.

Must be within the same Viewer as this Object. Defaults to the parent Viewer's default camera when set to a null or undefined value.

className

String final

Inherited from Component but overwritten in src/viewer/input/cameraControl.js:56

JavaScript class name for this Component.

destroyed

Boolean

True as soon as this Component has been destroyed

exclusive

Boolean final

Indicates that only one instance of a CameraControl may be active within its Viewer at a time. When a CameraControl is activated, that has a true value for this flag, then any other active CameraControl will be deactivated first.

id

String final

Unique ID for this Component within its parent Viewer.

Items in this map

Unknown

metadata

Object

Metadata on this component.

viewer

Viewer final

The Viewer that contains this Component.

Events

active

Fired whenever this CameraControl's active property changes.

Event Payload:

  • value Object

    The property's new value

destroyed

Fired when this Component is destroyed.