Object Class
An Object is a visible 3D element within a Viewer.
Overview
TODO
Example
In the example below we'll create three Objects, each with a unique ID and a modelling transform.
// Create a Viewer
var viewer = new BIMSURFER.Viewer({ element: "myDiv" });
// Create a Camera
var camera = new BIMSURFER.Camera(viewer, {
eye: [10, 10, -10]
});
// Create a CameraControl to control our Camera with mouse and keyboard
var cameraControl = new BIMSURFER.CameraControl(viewer, {
camera: camera
});
// Create a Geometry
var geometry = new BIMSURFER.TeapotGeometry(viewer, {
id: "myGeometry"
});
// Create first Object
// Use the Geometry
var object21 = new BIMSURFER.Object(viewer, {
id: "myObject1",
type: "IfcCovering",
geometries: [ geometry ],
matrix: BIMSURFER.math.translationMat4v([-4, 0,0])
});
// Create second Object
// Reuse the Geometry
var object2 = new BIMSURFER.Object(viewer, {
id: "myObject2",
type: "IfcFlowTerminal",
geometries: [ geometry ],
matrix: BIMSURFER.math.translationMat4v([4, 0,0])
});
We can then find the objects in the Viewer by ID:
var foo = viewer.components["myObject1"];
or by IFC type:
// Get all Objects of the given IFC type
var wallObjects = viewer.components["IfcWall"];
// Get our "foo" object from those
var foo = wallObjects["moObject1"];
Constructor
Object
-
[viewer]
-
[cfg]
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 Object.
-
[type]
String optionalThe IFC type of this Object.
-
[color]
Array of Number optionalThe color of this Object, defaults to the color of the specified IFC type.
-
[geometries]
Array of Geometry optionalThe Geometry to render for this Object.
-
[clipping=true]
Boolean optionalWhether this Object is clipped by Clips.
-
[transparent=false]
Boolean optionalWhether this Object is transparent or not.
-
[opacity=1]
Number optionalScalar in range 0-1 that controls opacity, where 0 is completely transparent and 1 is completely opaque. Only applies while this Object's transparent equals
true
. -
[highlight=false]
Boolean optionalWhether this Object is highlighted or not.
-
[xray=false]
Boolean optionalWhether this Object is highlighted or not.
-
[matrix=[1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]]
Array of Number optionalTransform matrix - a one-dimensional, sixteen element array of elements, an identity matrix by default.
-
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
boundary
The World-space boundary of this Object.
center
Array of Number
The World-space center of this Object.
className
String
final
JavaScript class name for this Component.
color
Array(Number)
The color of this Object.
Default: [1.0, 1.0, 1.0]
desaturated
Boolean
Whether this Object is desaturated.
Default: false
destroyed
Boolean
True as soon as this Component has been destroyed
highlighted
Boolean
Whether this Object is highlighted.
Default: false
Items in this map
Unknown
matrix
Array of Number
This Object's transformation matrix.
Default: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]
metadata
Object
Metadata on this component.
opacity
Number
Factor in the range [0..1] indicating how transparent this Object is.
A value of 0.0 indicates fully transparent, 1.0 is fully opaque.
This Object will appear transparent only if transparent is also set to true.
Default: 1.0
transparent
Boolean
Whether this Object is transparent.
Default: false
xray
Boolean
Whether this Object is X-rayed
Default: false
Events
active
Fired whenever this Object's active property changes.
Event Payload:
-
value
ObjectThe property's new value
destroyed
Fired when this Component is destroyed.