Label Class
A Label is a user-defined HTML element that floats over a 3D position within a Viewer.
Overview
- When configured with an Object, a Label will always track its Object position, offset by the vector indicated in Label/pos:property.
 - For debugging purposes, an Object has its own built-in Label, which can be shown by setting the Object label property true.
 
Example
// Create a Viewer
var viewer = new BIMSURFER.Viewer({ element: "myDiv" });
// Create a Camera
var camera = new BIMSURFER.Camera(viewer, {
       eye: [20, 15, -20],
       look: [0,-10,0]
   });
// Spin the camera
viewer.on("tick", function () {
       camera.rotateEyeY(0.2);
   });
// Create a CameraControl so we can move the Camera
var cameraControl = new BIMSURFER.CameraControl(viewer, {
       camera: camera
   });
// Create an AmbientLight
var ambientLight = new BIMSURFER.AmbientLight(viewer, {
       color: [0.7, 0.7, 0.7]
   });
// Create a DirLight
var dirLight1 = new BIMSURFER.DirLight(viewer, {
       color: [0.6, 0.9, 0.9],
       dir: [1.0, 0.0, 0.0],
       space: "view"
   });
// Create a DirLight
var dirLight2 = new BIMSURFER.DirLight(viewer, {
       color: [0.6, 0.9, 0.9],
       dir: [-0.5, 0.0, -1.0],
       space: "view"
   });
// Create a BoxGeometry
var geometry = new BIMSURFER.BoxGeometry(viewer, {
       id: "myGeometry"
   });
// Create some Objects
// Share the BoxGeometry among them
// Activate their debug Labels
var object1 = new BIMSURFER.Object(viewer, {
       id: "object1",
       type: "IfcRoof",
       geometries: [ geometry ],
       matrix: BIMSURFER.math.translationMat4v([-8, 0, -8])
   });
var object2 = new BIMSURFER.Object(viewer, {
       id: "object2",
       type: "IfcDistributionFlowElement",
       geometries: [ geometry ],
       matrix: BIMSURFER.math.translationMat4v([8, 0, -8])
   });
var object3 = new BIMSURFER.Object(viewer, {
       id: "object3",
       type: "IfcRailing",
       geometries: [ geometry ],
       matrix: BIMSURFER.math.translationMat4v([-8, 0, 8])
   });
var object4 = new BIMSURFER.Object(viewer, {
       id: "object4",
       type: "IfcRoof",
       geometries: [ geometry ],
       matrix: BIMSURFER.math.translationMat4v([8, 0, 8])
   });
// Create some Labels on two of the Objects
// Each Label displays a snippet of HTML and is positioned relative to its Object's origin
var label1 = new BIMSURFER.Label(viewer, {
       object: object1,
       text: "<b>Label on Object 'object1'</b><br><br><iframe width='320' height='200' " +
           "src='https://www.youtube.com/embed/oTONvRtlW44' frameborder='0' allowfullscreen></iframe>",
       pos: [0, 2, 0] // Offset from Object's local Model-space origin
   });
var label2 = new BIMSURFER.Label(viewer, {
       object: object4,
       text: "<b>First Label on Object 'object2'</b><br>",
       pos: [0, 0, 0] // Offset from Object's local Model-space origin
   });
var label3 = new BIMSURFER.Label(viewer, {
       object: object4,
       text: "<b>Second label on Object 'object2'</b><br>",
       pos: [0, -2, 0] // Offset from Object's local Model-space origin
   });
Constructor
Label
        
                - 
                                
[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 Label.
 - 
                                            
[object]Object optionalThe Object to attach this Label to.
 - 
                                            
[text]String optionalText to insert into this Label.
 - 
                                            
[pos]Array of Number optionalLabel's 3D offset from the Object origin.
 - 
                                            
[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:
- 
                        
messageStringThe 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:
- 
                        
eventStringThe event type name
 - 
                        
valueObjectThe 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:
- 
                        
messageStringThe message to log
 
off
        - 
                        
handle 
Parameters:
- 
                        
handleStringSubscription handle
 
on
        - 
                        
event - 
                        
callback - 
                        
[scope=this] 
Subscribes to an event on this component.
The callback is be called with this component as scope.
Parameters:
- 
                        
eventStringPublication event
 - 
                        
callbackFunctionCalled 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:
- 
                        
eventStringData event to listen to
 - 
                        
callbackFunction(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:
- 
                        
messageStringThe message to log
 
Properties
active
                        Boolean
                    
                    
                    
                    
                    
                        
                    
                        Flag which indicates whether this Label is active or not.
Fires an active event on change.
canvasPos
                        Array of Number
                    
                    
                    
                            final
                    
                    
                        
                    
                        This Position's 2D coordinates within the Canvas coordinate system.
className
                        String
                    
                    
                    
                            final
                    
                    
                        
                    
                        JavaScript class name for this Component.
destroyed
                        Boolean
                    
                    
                    
                    
                    
                        
                    
                        True as soon as this Component has been destroyed
Items in this map
                        Unknown
                    
                    
                    
                    
                    
                        
                    
                        matrix
                        Array of Number
                    
                    
                    
                    
                    
                        
                    
                        This Positions's 4x4 modelling 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.
object
                        BIMSURFER.Object
                    
                    
                    
                            final
                    
                    
                        
                    
                        This Label's Object.
Can be undefined.
pos
                        Array of Number
                    
                    
                    
                    
                    
                        
                    
                        The Position's 3D coordinates within its local Model coordinate system, ie. before transformation by the Position's matrix.
Default: [0,0,0]
projPos
                        Array of Number
                    
                    
                    
                            final
                    
                    
                        
                    
                        This Position's 3D homogeneous coordinates within the Projection coordinate system, ie. after transformation by the Viewer's projection matrix.
viewPos
                        Array of Number
                    
                    
                    
                            final
                    
                    
                        
                    
                        This Position's 3D coordinates within the View coordinate system, ie. after transformation by the Viewer's view matrix and before transformation by the Viewer's projection matrix.
worldPos
                        Array of Number
                    
                    
                    
                            final
                    
                    
                        
                    
                        This Position's 3D coordinates within the World coordinate system, ie. after transformation by the Position's matrix and before transformation by Viewer's viewing matrix.
Default: [0,0,0]
