CameraControl Class
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 optionalParent Viewer.
-
[cfg]
optionalConfigs
-
[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 CameraControl.
-
-
[camera]
Camera optionalThe Camera to control.
Item Index
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 CameraControl is active or not.
Fires an active event on change.
camera
Camera
className
String
final
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.
Items in this map
Unknown
metadata
Object
Metadata on this component.
Events
active
Fired whenever this CameraControl's active property changes.
Event Payload:
-
value
ObjectThe property's new value
destroyed
Fired when this Component is destroyed.