Home Reference Source
import {Viewer} from 'bimsurfer3/viewer/viewer.js'
public class | source

Viewer

The idea is that this class doesn't know anything about BIMserver, and can possibly be reused in classes other than BimServerViewer

Main viewer class, too many responsibilities:

  • Keep track of width/height of viewport
  • Keeps track of dirty scene
  • Contains the basic render loop (and delegates to the render layers)

Constructor Summary

Public Constructor
public

Member Summary

Public Members
public
public
public
public

camera: *

public
public
public

canvas: *

public
public
public
public set
public get

dirty: *

public
public
public
public
public

gl: *

public

height: *

public
public
public
public
public
public
public
public
public
public
public
public
public

overlay: *

public
public
public
public
public

quad: *

public
public
public
public
public
public
public

stats: *

public
public
public
public
public
public
public
public
public
public

width: *

Private Members
private

Method Summary

Public Methods
public
public

addSelectionListener(listener: *)

public

addToSelection(uniqueId: *)

public

addViewObject(uniqueId: *, viewObject: *)

public

callByType(method: *, types: *, args: ...*): *

public
public
public
public
public

drawScene(reason: *, what: {"without": undefined})

public
public

This will create a mapping from BufferSetId -> {bufferSet, oids[]} This is useful when we want to do batch updates of BufferSets, instead of randomly updating single objects in BufferSets The order already in elems will stay intact

public

getAabbFor(ids: *): *

public

getPickColor(uniqueId: *): *

public

getPickColorForPickId(pickId: *): *

public
public

getViewObject(uniqueId: *): *

public

init(): *

public

internalRender(elems: *, t: *)

public
public

moveSectionPlane(params: *)

public

pick(params: *): *

Attempts to pick an object at the given canvas coordinates.

public
public
public

render(now: *)

public
public

resetColor(elems: *): *

public

resetColorAlreadyBatched(elems: *, bufferSetsToUpdate: *): *

public
public

resetToDefaultView(modelBounds: *, animate: boolean)

public
public

screenshot(callback: *): *

public

setColor(elems: *, clr: *, fireEvent: boolean): *

public

setDimensions(width: *, height: *)

public

setMeasurementPoint(params: *)

public

setModelBounds(modelBounds: *, force: boolean)

public

setSelectionState(elems: *, selected: *, clear: *, fireEvent: boolean): *

public

setVisibility(elems: *, visible: *, sort: boolean, fireEvent: boolean): *

public
public
public

viewFit(ids: *, settings: *): *

Public Constructors

public constructor() source

Public Members

public activeMeasurement: * source

public animationListeners: *[] source

public bufferSetPool: * source

public camera: * source

public cameraControl: * source

public cameraSet: boolean source

public canvas: * source

public colorRestore: *[] source

public currentSectionPlane: * source

public defaultColors: * source

public set dirty source

public get dirty: * source

public eventHandler: * source

public firstRun: boolean source

public fps: number source

public geospatialMode: boolean source

public gl: * source

public height: * source

public hiddenDueToSetColor: * source

public idAugmentationFunction: * source

public instancesWithChangedColor: * source

public inverseUniqueIdCompareFunction: * source

public invisibleElements: * source

public lastRecordedDepth: * source

public lastRepaint: number source

public lighting: * source

public modelBounds: * source

public oidCounter: number source

public oitBuffer: * source

public originalColors: * source

public overlay: * source

public pickBuffer: * source

public pickIdCounter: number source

public pickIdToViewObject: *[] source

public programManager: * source

public quad: * source

public recordedDepthAt: number source

public renderLayers: * source

public running: boolean source

public sectionPlanes: * source

public selectedElements: * source

public settings: * source

public stats: * source

public then: number source

public timeLast: number source

public tmp_unproject: * source

public uniqueIdCompareFunction: * source

public uniqueIdToBufferSet: * source

public useFloatColorBuffer: * source

public useOrderIndependentTransparency: * source

public viewObjects: * source

public viewObjectsByType: * source

public width: * source

Private Members

private _dirty: number source

Public Methods

public addAnimationListener(fn: *) source

Params:

NameTypeAttributeDescription
fn *

public addSelectionListener(listener: *) source

Params:

NameTypeAttributeDescription
listener *

public addToSelection(uniqueId: *) source

Params:

NameTypeAttributeDescription
uniqueId *

public addViewObject(uniqueId: *, viewObject: *) source

Params:

NameTypeAttributeDescription
uniqueId *
viewObject *

public callByType(method: *, types: *, args: ...*): * source

Params:

NameTypeAttributeDescription
method *
types *
args ...*

Return:

*

public cleanup() source

public commitActiveMeasurement() source

public deleteAllMeasurements() source

public destroyActiveMeasurement() source

public drawScene(reason: *, what: {"without": undefined}) source

Params:

NameTypeAttributeDescription
reason *
what {"without": undefined}
  • optional
  • default: {}

public enableSectionPlane(params: *): boolean source

Params:

NameTypeAttributeDescription
params *

Return:

boolean

public generateBufferSetToOidsMap(elems: *): * source

This will create a mapping from BufferSetId -> {bufferSet, oids[]} This is useful when we want to do batch updates of BufferSets, instead of randomly updating single objects in BufferSets The order already in elems will stay intact

Params:

NameTypeAttributeDescription
elems *

Return:

*

public getAabbFor(ids: *): * source

Params:

NameTypeAttributeDescription
ids *

Return:

*

public getPickColor(uniqueId: *): * source

Params:

NameTypeAttributeDescription
uniqueId *

Return:

*

public getPickColorForPickId(pickId: *): * source

Params:

NameTypeAttributeDescription
pickId *

Return:

*

public getSelected(): * source

Return:

*

public getViewObject(uniqueId: *): * source

Params:

NameTypeAttributeDescription
uniqueId *

Return:

*

public init(): * source

Return:

*

public internalRender(elems: *, t: *) source

Params:

NameTypeAttributeDescription
elems *
t *

public loadingDone() source

public moveSectionPlane(params: *) source

Params:

NameTypeAttributeDescription
params *

public pick(params: *): * source

Attempts to pick an object at the given canvas coordinates.

Params:

NameTypeAttributeDescription
params *
params.canvasPos Array

Canvas coordinates

Return:

*

Information about the object that was picked, if any.

public positionSectionPlaneWidget(params: *) source

Params:

NameTypeAttributeDescription
params *

public removeSectionPlaneWidget() source

public render(now: *) source

Params:

NameTypeAttributeDescription
now *

public resetCamera() source

public resetColor(elems: *): * source

Params:

NameTypeAttributeDescription
elems *

Return:

*

public resetColorAlreadyBatched(elems: *, bufferSetsToUpdate: *): * source

Params:

NameTypeAttributeDescription
elems *
bufferSetsToUpdate *

Return:

*

public resetColors(): * source

Return:

*

public resetToDefaultView(modelBounds: *, animate: boolean) source

Params:

NameTypeAttributeDescription
modelBounds *
  • optional
animate boolean
  • optional
  • default: false

public resetVisibility() source

public screenshot(callback: *): * source

Params:

NameTypeAttributeDescription
callback *

Return:

*

public setColor(elems: *, clr: *, fireEvent: boolean): * source

Params:

NameTypeAttributeDescription
elems *
clr *
fireEvent boolean
  • optional
  • default: true

Return:

*

public setDimensions(width: *, height: *) source

Params:

NameTypeAttributeDescription
width *
height *

public setMeasurementPoint(params: *) source

Params:

NameTypeAttributeDescription
params *

public setModelBounds(modelBounds: *, force: boolean) source

Params:

NameTypeAttributeDescription
modelBounds *
force boolean
  • optional
  • default: false

public setSelectionState(elems: *, selected: *, clear: *, fireEvent: boolean): * source

Params:

NameTypeAttributeDescription
elems *
selected *
clear *
fireEvent boolean
  • optional
  • default: true

Return:

*

public setVisibility(elems: *, visible: *, sort: boolean, fireEvent: boolean): * source

Params:

NameTypeAttributeDescription
elems *
visible *
sort boolean
  • optional
  • default: true
fireEvent boolean
  • optional
  • default: true

Return:

*

public splitElementsPerRenderLayer(elems: *): * source

Params:

NameTypeAttributeDescription
elems *

Return:

*

public updateViewport() source

public viewFit(ids: *, settings: *): * source

Params:

NameTypeAttributeDescription
ids *
settings *

Return:

*