.. role:: ts-api-decorator

#########
WebViewer
#########

.. container:: ts-api-section

   .. js:class:: WebViewer



.. container:: api-index-section

   .. rubric:: Constructors

   .. rst-class:: api-index-list-item api-kind-constructor api-parent-kind-class

   * :js:meth:`~WebViewer.constructor`



.. container:: api-index-section

   .. rubric:: Properties

   .. rst-class:: api-index-list-item api-kind-property api-parent-kind-class

   * :js:attr:`~WebViewer.BCFManager`
   * :js:attr:`~WebViewer._views`
   * :js:attr:`~WebViewer.animationManager`
   * :js:attr:`~WebViewer.cuttingManager`
   * :js:attr:`~WebViewer.explodeManager`
   * :js:attr:`~WebViewer.lineManager`
   * :js:attr:`~WebViewer.markupManager`
   * :js:attr:`~WebViewer.measureManager`
   * :js:attr:`~WebViewer.model`
   * :js:attr:`~WebViewer.noteTextManager`
   * :js:attr:`~WebViewer.selectionManager`
   * :js:attr:`~WebViewer.sheetManager`



.. container:: api-index-section

   .. rubric:: Accessors

   .. rst-class:: api-index-list-item api-kind-accessor api-parent-kind-class

   * :js:attr:`~WebViewer.floorplanManager`
   * :js:attr:`~WebViewer.operatorManager`
   * :js:attr:`~WebViewer.overlayManager`
   * :js:attr:`~WebViewer.view`
   * :js:attr:`~WebViewer.views`
   * :js:attr:`~WebViewer.defaultEngineBinary`
   * :js:attr:`~WebViewer.defaultEngineModule`
   * :js:attr:`~WebViewer.defaultEnginePath`



.. container:: api-index-section

   .. rubric:: Methods

   .. rst-class:: api-index-list-item api-kind-method api-parent-kind-class

   * :js:meth:`~WebViewer.addView`
   * :js:meth:`~WebViewer.advanceExportToSvg`
   * :js:meth:`~WebViewer.applyFilter`
   * :js:meth:`~WebViewer.beginExportToSvg`
   * :js:meth:`~WebViewer.closeConnection`
   * :js:meth:`~WebViewer.delayCapping`
   * :js:meth:`~WebViewer.endExportToSvg`
   * :js:meth:`~WebViewer.exportToSvg`
   * :js:meth:`~WebViewer.fitWorld`
   * :js:meth:`~WebViewer.focusInput`
   * :js:meth:`~WebViewer.getAllowHighDpi`
   * :js:meth:`~WebViewer.getContextMenuStatus`
   * :js:meth:`~WebViewer.getFormatVersionString`
   * :js:meth:`~WebViewer.getMinimumFramerate`
   * :js:meth:`~WebViewer.getModelReady`
   * :js:meth:`~WebViewer.getRendererType`
   * :js:meth:`~WebViewer.getSceneReady`
   * :js:meth:`~WebViewer.getStatistics`
   * :js:meth:`~WebViewer.getStreamCutoffScale`
   * :js:meth:`~WebViewer.getStreamingMode`
   * :js:meth:`~WebViewer.getView`
   * :js:meth:`~WebViewer.getViewElement`
   * :js:meth:`~WebViewer.getViewerVersionString`
   * :js:meth:`~WebViewer.moveToWindow`
   * :js:meth:`~WebViewer.pauseRendering`
   * :js:meth:`~WebViewer.redraw`
   * :js:meth:`~WebViewer.registerCustomOperator`
   * :js:meth:`~WebViewer.removeView`
   * :js:meth:`~WebViewer.reset`
   * :js:meth:`~WebViewer.resetClientTimeout`
   * :js:meth:`~WebViewer.resizeCanvas`
   * :js:meth:`~WebViewer.resumeRendering`
   * :js:meth:`~WebViewer.selectPart`
   * :js:meth:`~WebViewer.setAllowHighDpi`
   * :js:meth:`~WebViewer.setCallbacks`
   * :js:meth:`~WebViewer.setClientTimeout`
   * :js:meth:`~WebViewer.setContextMenuStatus`
   * :js:meth:`~WebViewer.setMinimumFramerate`
   * :js:meth:`~WebViewer.setServerRenderQuality`
   * :js:meth:`~WebViewer.setStreamCutoffScale`
   * :js:meth:`~WebViewer.setViewOrientation`
   * :js:meth:`~WebViewer.shutdown`
   * :js:meth:`~WebViewer.start`
   * :js:meth:`~WebViewer.takeSnapshot`
   * :js:meth:`~WebViewer.trigger`
   * :js:meth:`~WebViewer.unregisterCustomOperator`
   * :js:meth:`~WebViewer.unsetCallbacks`
   * :js:meth:`~WebViewer.waitForIdle`





------------

Constructors
============

.. container:: ts-api-section

   .. js:function:: WebViewer.constructor( inputParams)

      :param inputParams: object containing key-value pairs for viewer to set
      :type inputParams: WebViewerConfig


      Creates a new Web Viewer instance. You must pass in a **containerId** key with the ID of an element or a **container** element to use for your viewer.
      The system will create any required elements inside the supplied container.


      :rtype: WebViewer



Properties
==========

.. container:: ts-api-section

   .. js:attribute:: WebViewer.BCFManager

      :type: BCFManager





.. container:: ts-api-section

   .. js:attribute:: WebViewer._views

      :type: [View]





.. container:: ts-api-section

   .. js:attribute:: WebViewer.animationManager

      :type: Manager





.. container:: ts-api-section

   .. js:attribute:: WebViewer.cuttingManager

      :type: CuttingManager





.. container:: ts-api-section

   .. js:attribute:: WebViewer.explodeManager

      :type: ExplodeManager





.. container:: ts-api-section

   .. js:attribute:: WebViewer.lineManager

      :type: LineManager





.. container:: ts-api-section

   .. js:attribute:: WebViewer.markupManager

      :type: MarkupManager





.. container:: ts-api-section

   .. js:attribute:: WebViewer.measureManager

      :type: MeasureManager





.. container:: ts-api-section

   .. js:attribute:: WebViewer.model

      :type: Model





.. container:: ts-api-section

   .. js:attribute:: WebViewer.noteTextManager

      :type: NoteTextManager





.. container:: ts-api-section

   .. js:attribute:: WebViewer.selectionManager

      :type: SelectionManager





.. container:: ts-api-section

   .. js:attribute:: WebViewer.sheetManager

      :type: SheetManager





Accessors
=========

.. container:: ts-api-section

   .. js:function:: floorplanManager()
      :noindex:





      :deprecated: FloorplanManagers are now properties of Views.


      :rtype: FloorplanManager



.. container:: ts-api-section

   .. js:function:: operatorManager()
      :noindex:





      :deprecated: OperatorManagers are now properties of Views.


      :rtype: OperatorManager



.. container:: ts-api-section

   .. js:function:: overlayManager()
      :noindex:





      :deprecated: OverlayManagers are now properties of Views.


      :rtype: OverlayManager



.. container:: ts-api-section

   .. js:function:: view()
      :noindex:



      :rtype: View



.. container:: ts-api-section

   .. js:function:: views()
      :noindex:



      :rtype: [View]



.. container:: ts-api-section

   .. js:function:: defaultEngineBinary()
      :noindex:



      :rtype: unknown

   .. js:function:: defaultEngineBinary( val)
      :noindex:

      :param val: None
      :type val: unknown


      :rtype: void



.. container:: ts-api-section

   .. js:function:: defaultEngineModule()
      :noindex:



      :rtype: unknown

   .. js:function:: defaultEngineModule( val)
      :noindex:

      :param val: None
      :type val: unknown


      :rtype: void



.. container:: ts-api-section

   .. js:function:: defaultEnginePath()
      :noindex:



      :rtype: undefined | string

   .. js:function:: defaultEnginePath( val)
      :noindex:

      :param val: None
      :type val: undefined | string


      :rtype: void



Methods
=======

.. rst-class:: ts-api-section

addView
-------

.. js:method:: WebViewer.addView( config)

   :param config: configuration to be used for the new view.
   :type config: ViewConfig


   Adds another 3D view of the scene to the page.

   :returns: A promise with the created View.


   :rtype: Promise <View>

.. rst-class:: ts-api-section

advanceExportToSvg
------------------

.. js:method:: WebViewer.advanceExportToSvg()



   Get the next chunk of the SVG code

   :returns: A promise that resolves to a string containing the next chunk or undefined on completed..


   :rtype: Promise <undefined | string>

.. rst-class:: ts-api-section

applyFilter
-----------

.. js:method:: WebViewer.applyFilter( filterId)

   :param filterId: None
   :type filterId: FilterId


   :rtype: void

.. rst-class:: ts-api-section

beginExportToSvg
----------------

.. js:method:: WebViewer.beginExportToSvg( config)

   :param config: Allows customization of the resultant SVG.
   :type config: SvgConfig


   Setup the env to export the current scene to a two-dimensional SVG representation through stream.

   :returns: A promise that resolves to void when the env is ready.


   :rtype: Promise <void>

.. rst-class:: ts-api-section

closeConnection
---------------

.. js:method:: WebViewer.closeConnection()



   Disconnects the network connection when in CSR mode.


   :rtype: void

.. rst-class:: ts-api-section

delayCapping
------------

.. js:method:: WebViewer.delayCapping()



   Delays capping processing by a fixed time interval.


   :rtype: void

.. rst-class:: ts-api-section

endExportToSvg
--------------

.. js:method:: WebViewer.endExportToSvg()



   Reset the env after SVG stream export.

   :returns: A promise that resolves to void when the env is reset.


   :rtype: Promise <void>

.. rst-class:: ts-api-section

exportToSvg
-----------

.. js:method:: WebViewer.exportToSvg( config)

   :param config: Allows customization of the resultant SVG.
   :type config: SvgConfig


   Exports the current scene to a two-dimensional SVG representation.

   :returns: A promise that resolves to the created SVG string.


   :rtype: Promise <string>

.. rst-class:: ts-api-section

fitWorld
--------

.. js:method:: WebViewer.fitWorld( duration)

   :param duration: None
   :type duration: number


   :rtype: Promise <void>

.. rst-class:: ts-api-section

focusInput
----------

.. js:method:: WebViewer.focusInput( focus)

   :param focus: if true, the Web Viewer will be focused and accept keyboard input, otherwise it will be blurred and not accept keyboard input
   :type focus: boolean


   Sets whether keyboard input should be directed to this Web Viewer.


   :rtype: void

.. rst-class:: ts-api-section

getAllowHighDpi
---------------

.. js:method:: WebViewer.getAllowHighDpi()



   Gets the current value for high DPI rendering

   :returns: current high DPI setting


   :rtype: boolean

.. rst-class:: ts-api-section

getContextMenuStatus
--------------------

.. js:method:: WebViewer.getContextMenuStatus()





   :returns: boolean true if the context menu is active, false otherwise


   :rtype: boolean

.. rst-class:: ts-api-section

getFormatVersionString
----------------------

.. js:method:: WebViewer.getFormatVersionString()



   Returns the format version string.

   :returns: string containing version information for the format.


   :rtype: string

.. rst-class:: ts-api-section

getMinimumFramerate
-------------------

.. js:method:: WebViewer.getMinimumFramerate()



   Gets the minimum framerate that will be maintained by the viewer. The viewer will use various culling techniques in order to maintain the value returned.

   :returns: Promise that is resolved when the operation has completed.
   :deprecated: Views can have independent framerates. This should be set using ``View.getMinimumFramerate``.


   :rtype: Promise <number>

.. rst-class:: ts-api-section

getModelReady
-------------

.. js:method:: WebViewer.getModelReady()



   :rtype: boolean

.. rst-class:: ts-api-section

getRendererType
---------------

.. js:method:: WebViewer.getRendererType()



   Gets the RendererType this viewer was created with.

   :returns: the render mode.


   :rtype: RendererType

.. rst-class:: ts-api-section

getSceneReady
-------------

.. js:method:: WebViewer.getSceneReady()



   :rtype: boolean

.. rst-class:: ts-api-section

getStatistics
-------------

.. js:method:: WebViewer.getStatistics( calculateTotals)

   :param calculateTotals: Forces an update of the total count elements. Please note that repeatedly calculating these items can cause a performance impact.
   :type calculateTotals: boolean


   Gets viewer statistics for the current rendered frame. Statistics marked with a (*) below must be calculated and will not be included in the results unless the calculateTotals parameter is true.
   The values of these items will be cached and only updated during the next call to this method with calculateTotals set to true.

   :returns: an object containing informational key/value pairs  | Statistic Name| Description                                          | | ----------------------- | -----------------------------------------------------| | draw_call_count  | number of draw calls made when rendering the frame             | | frames_per_second  | frames per second estimation    | | triangle_count  | the number of triangles rendered    | | line_segment_count  | the number of line segments rendered    | | point_count  | the number of points rendered    | | total_element_count(*)  | the total number of elements in the scene    | | total_triangle_count(*)  | the total number of triangles in the scene   |


   :rtype: Promise <object>

.. rst-class:: ts-api-section

getStreamCutoffScale
--------------------

.. js:method:: WebViewer.getStreamCutoffScale()



   Returns the scale factor that will be applied to the streaming size cutoff.
   An object whose projected size is lower than the cutoff will not be streamed
   until its projected size reaches the cutoff. A value of 0 disables the cutoff.


   :rtype: number

.. rst-class:: ts-api-section

getStreamingMode
----------------

.. js:method:: WebViewer.getStreamingMode()



   Gets the streaming mode this viewer was created with.

   :returns: the streaming mode.


   :rtype: StreamingMode

.. rst-class:: ts-api-section

getView
-------

.. js:method:: WebViewer.getView( viewKey)

   :param viewKey: The key of the view to be returned.
   :type viewKey: ViewKey


   Gets a view with the provided key.

   :returns: The view, or undefined if it doesn't exist.


   :rtype: undefined | View

.. rst-class:: ts-api-section

getViewElement
--------------

.. js:method:: WebViewer.getViewElement()



   Gets the view element for this viewer. This element contains the canvas

   :returns: the view element


   :rtype: HTMLDivElement

.. rst-class:: ts-api-section

getViewerVersionString
----------------------

.. js:method:: WebViewer.getViewerVersionString()



   Returns the viewer version string.

   :returns: string containing version information for the viewer.


   :rtype: string

.. rst-class:: ts-api-section

moveToWindow
------------

.. js:method:: WebViewer.moveToWindow( win)

   :param win: the new document that this viewer will be associated with.
   :type win: Window


   This method should be called when the viewer is being moved to a new window. An example use case would be opening a new pop up window.


   :rtype: void

.. rst-class:: ts-api-section

pauseRendering
--------------

.. js:method:: WebViewer.pauseRendering([ callback])

   :param callback: :ts-api-decorator:`optional` If provided, rendering will be paused, the callback will be called, and then rendering will be resumed once the callback returns or throws an exception.
   :type callback: function


   Pauses rendering updates for all views. This function is useful when
   performing large batches of updates and you would like the result
   to appear all at once.


   :rtype: Promise <void>




   .. js:function:: callback()
      :noindex:



      :rtype: void



.. rst-class:: ts-api-section

redraw
------

.. js:method:: WebViewer.redraw([ callback])

   :param callback: :ts-api-decorator:`optional` A function to be called once the draw is complete. This is provided instead of a ``Promise`` to ensure the callback is called before the start of another redraw.
   :type callback: function


   Forces the viewer to perform a full redraw of all views.


   :rtype: void




   .. js:function:: callback()
      :noindex:



      :rtype: void



.. rst-class:: ts-api-section

registerCustomOperator
----------------------

.. js:method:: WebViewer.registerCustomOperator( operator)

   :param operator: None
   :type operator: Operator


   Associates a custom operator object with a system generated operatorId.

   :returns: an operatorId to be used for this operator.


   :rtype: OperatorId

.. rst-class:: ts-api-section

removeView
----------

.. js:method:: WebViewer.removeView( view)

   :param view: The view to remove.
   :type view: View


   Removes an existing view from the page. Note that the default view cannot be removed.


   :rtype: void

.. rst-class:: ts-api-section

reset
-----

.. js:method:: WebViewer.reset( durationCameraTransition)

   :param durationCameraTransition: None
   :type durationCameraTransition: number


   Reset the camera, visibility, and transforms to their default state

   :returns: Promise that resolves when the operation has completed.


   :rtype: Promise <void>

.. rst-class:: ts-api-section

resetClientTimeout
------------------

.. js:method:: WebViewer.resetClientTimeout()



   Resets the client timeout to the duration set with setClientTimeout.


   :rtype: void

.. rst-class:: ts-api-section

resizeCanvas
------------

.. js:method:: WebViewer.resizeCanvas()



   This method should be called after the container element is moved or resized.


   :rtype: void

.. rst-class:: ts-api-section

resumeRendering
---------------

.. js:method:: WebViewer.resumeRendering()



   Resumes rendering for all views.


   :rtype: Promise <void>

.. rst-class:: ts-api-section

selectPart
----------

.. js:method:: WebViewer.selectPart( nodeId, selectionMode)

   :param nodeId: nodeId of the part to select. Pass null to clear the selection.
   :type nodeId: null | number
   :param selectionMode: None
   :type selectionMode: SelectionMode


   Selects a part with the given Id.


   :rtype: SelectionType

.. rst-class:: ts-api-section

setAllowHighDpi
---------------

.. js:method:: WebViewer.setAllowHighDpi( allow)

   :param allow: controls the high DPI Setting.
   :type allow: boolean


   Controls rendering on high DPI displays. If true, the image will be rendered at full resolution when a high-DPI display is detected. If false, the image may be rendered at a lower resolution. The default value is false.
   This method may be called any time during or after the sceneReady callback has triggered.


   :rtype: void

.. rst-class:: ts-api-section

setCallbacks
------------

.. js:method:: WebViewer.setCallbacks( callbacks)

   :param callbacks: object with property names set to corresponding functions to be called when the event occurs.
   :type callbacks: CallbackMap


   Registers callbacks that will be called when their corresponding events occur.


   :rtype: void

.. rst-class:: ts-api-section

setClientTimeout
----------------

.. js:method:: WebViewer.setClientTimeout( timeoutDuration, warningTime)

   :param timeoutDuration: the total time in minutes of inactivity that is allowed before a timeout event occurs
   :type timeoutDuration: number
   :param warningTime: the number of minutes before issuing a timeoutWarning event
   :type warningTime: number


   Sets the parameters for client driven timeout monitoring.
   If no input is recorded for the the duration, the viewer will disconnect and free server resources.
   Calling this method will reset any pending timeout duration.
   No timeout will occur when viewing SCS Files.
   The default value is to disconnect after 15 minutes, with a warning issued after 14 minutes of inactivity.
   <br><br> <strong>Please note:</strong> Both parameters are required.

   :returns: boolean value indicating whether the timeout values were sucessfully updated


   :rtype: boolean

.. rst-class:: ts-api-section

setContextMenuStatus
--------------------

.. js:method:: WebViewer.setContextMenuStatus( isActive)

   :param isActive: None
   :type isActive: boolean


   Sets a boolean with the status of the context menu


   :rtype: void

.. rst-class:: ts-api-section

setMinimumFramerate
-------------------

.. js:method:: WebViewer.setMinimumFramerate( value)

   :param value: The frame rate for the views to maintain.
   :type value: number


   Sets a minimum frame rate that will be maintained by all views.
   Views will use various culling techniques in order to maintain the value passed in.

   Passing ``0`` will cause the entire scene to be drawn for every frame.

   :returns: Promise that is resolved when the operation has completed.


   :rtype: Promise <void>

.. rst-class:: ts-api-section

setServerRenderQuality
----------------------

.. js:method:: WebViewer.setServerRenderQuality( jpegQualityLow, jpegQualityHigh, scaleLow, scaleHigh)

   :param jpegQualityLow: The JPEG quality of the low quality render frame
   :type jpegQualityLow: number
   :param jpegQualityHigh: The JPEG quality of the high quality render frame
   :type jpegQualityHigh: number
   :param scaleLow: The scale factor for the low quality render frame
   :type scaleLow: number
   :param scaleHigh: The scale factor for the high quality render frame
   :type scaleHigh: number


   Sets the image quality settings for the high quality and low quality server side render. The low quality settings will be applied during model interaction (camera changes, selection, etc)


   :rtype: void

.. rst-class:: ts-api-section

setStreamCutoffScale
--------------------

.. js:method:: WebViewer.setStreamCutoffScale( value)

   :param value: None
   :type value: number


   Specifies a scale factor that will be applied to the streaming size cutoff.
   An object whose projected size is lower than the cutoff will not be streamed
   until its projected size reaches the cutoff.

   This value may also be set for file-based sessions.  In that case, when loading
   an SCS file based assembly via XML, projected size will be calculated on a
   per-file basis using the bounding information provided in the XML.
   For additional information, refer to [[Model.loadSubtreeFromXmlBuffer]].

   A value of 0 will disable the cutoff.  The value should be in the interval of [0.0, 2.0].


   :rtype: Promise <void>

.. rst-class:: ts-api-section

setViewOrientation
------------------

.. js:method:: WebViewer.setViewOrientation( orientation, duration)

   :param orientation: a [[ViewOrientation]] object specifying back, front, top, etc.
   :type orientation: ViewOrientation
   :param duration: the time in milliseconds for the model to transition to the new view orientation.
   :type duration: number


   Sets the orientation of the current model view.


   :rtype: Promise <void>

.. rst-class:: ts-api-section

shutdown
--------

.. js:method:: WebViewer.shutdown()



   Releases the resources used by the viewer. This method should be called when the viewer is no longer needed but the page is not being reloaded.


   :rtype: void

.. rst-class:: ts-api-section

start
-----

.. js:method:: WebViewer.start()



   Starts the viewer and begins the loading process


   :rtype: boolean

.. rst-class:: ts-api-section

takeSnapshot
------------

.. js:method:: WebViewer.takeSnapshot( config)

   :param config: None
   :type config: SnapshotConfig


   Creates an Image of the current canvas


   :rtype: Promise <HTMLImageElement>

.. rst-class:: ts-api-section

trigger
-------

.. js:method:: WebViewer.trigger( name, id, filename)

   :param name: None
   :type name: bcfLoaded
   :param id: None
   :type id: number
   :param filename: None
   :type filename: string


   :rtype: void

.. js:method:: WebViewer.trigger( name, id)
   :noindex:

   :param name: None
   :type name: bcfRemoved
   :param id: None
   :type id: number


   :rtype: void

.. js:method:: WebViewer.trigger( name, eventType, nodeIds, initialMatrices, newMatrices)
   :noindex:

   :param name: None
   :type name: handleEvent
   :param eventType: None
   :type eventType: HandleEventType
   :param nodeIds: None
   :type nodeIds: [number]
   :param initialMatrices: None
   :type initialMatrices: [Matrix]
   :param newMatrices: None
   :type newMatrices: [Matrix]


   :rtype: void

.. js:method:: WebViewer.trigger( name, eventType, nodeIds, initialMatrices, newMatrices)
   :noindex:

   :param name: None
   :type name: handleEventEnd
   :param eventType: None
   :type eventType: HandleEventType
   :param nodeIds: None
   :type nodeIds: [number]
   :param initialMatrices: None
   :type initialMatrices: [Matrix]
   :param newMatrices: None
   :type newMatrices: [Matrix]


   :rtype: void

.. js:method:: WebViewer.trigger( name, eventType, nodeIds, initialMatrices)
   :noindex:

   :param name: None
   :type name: handleEventStart
   :param eventType: None
   :type eventType: HandleEventType
   :param nodeIds: None
   :type nodeIds: [number]
   :param initialMatrices: None
   :type initialMatrices: [Matrix]


   :rtype: void

.. js:method:: WebViewer.trigger( name, cuttingSection, planeIndex)
   :noindex:

   :param name: None
   :type name: cuttingPlaneDragStart
   :param cuttingSection: None
   :type cuttingSection: CuttingSection
   :param planeIndex: None
   :type planeIndex: number


   :rtype: void

.. js:method:: WebViewer.trigger( name, cuttingSection, planeIndex)
   :noindex:

   :param name: None
   :type name: cuttingPlaneDrag
   :param cuttingSection: None
   :type cuttingSection: CuttingSection
   :param planeIndex: None
   :type planeIndex: number


   :rtype: void

.. js:method:: WebViewer.trigger( name, cuttingSection, planeIndex)
   :noindex:

   :param name: None
   :type name: cuttingPlaneDragEnd
   :param cuttingSection: None
   :type cuttingSection: CuttingSection
   :param planeIndex: None
   :type planeIndex: number


   :rtype: void

.. js:method:: WebViewer.trigger( name)
   :noindex:

   :param name: None
   :type name: cuttingSectionsLoaded


   :rtype: void

.. js:method:: WebViewer.trigger( name, redlineMarkup)
   :noindex:

   :param name: None
   :type name: redlineCreated
   :param redlineMarkup: None
   :type redlineMarkup: RedlineItem


   :rtype: void

.. js:method:: WebViewer.trigger( name, redlineMarkup)
   :noindex:

   :param name: None
   :type name: redlineDeleted
   :param redlineMarkup: None
   :type redlineMarkup: RedlineItem


   :rtype: void

.. js:method:: WebViewer.trigger( name, redlineMarkup)
   :noindex:

   :param name: None
   :type name: redlineUpdated
   :param redlineMarkup: None
   :type redlineMarkup: RedlineItem


   :rtype: void

.. js:method:: WebViewer.trigger( name)
   :noindex:

   :param name: None
   :type name: measurementBegin


   :rtype: void

.. js:method:: WebViewer.trigger( name, measurement)
   :noindex:

   :param name: None
   :type name: measurementCreated
   :param measurement: None
   :type measurement: MeasureMarkup


   :rtype: void

.. js:method:: WebViewer.trigger( name, measurement)
   :noindex:

   :param name: None
   :type name: measurementDeleted
   :param measurement: None
   :type measurement: MeasureMarkup


   :rtype: void

.. js:method:: WebViewer.trigger( name, measurement)
   :noindex:

   :param name: None
   :type name: measurementValueSet
   :param measurement: None
   :type measurement: MeasureMarkup


   :rtype: void

.. js:method:: WebViewer.trigger( name, measurement)
   :noindex:

   :param name: None
   :type name: measurementShown
   :param measurement: None
   :type measurement: MeasureMarkup


   :rtype: void

.. js:method:: WebViewer.trigger( name, measurement)
   :noindex:

   :param name: None
   :type name: measurementHidden
   :param measurement: None
   :type measurement: MeasureMarkup


   :rtype: void

.. js:method:: WebViewer.trigger( name, noteText)
   :noindex:

   :param name: None
   :type name: noteTextCreated
   :param noteText: None
   :type noteText: NoteText


   :rtype: void

.. js:method:: WebViewer.trigger( name, noteText)
   :noindex:

   :param name: None
   :type name: noteTextHidden
   :param noteText: None
   :type noteText: NoteText


   :rtype: void

.. js:method:: WebViewer.trigger( name, noteText)
   :noindex:

   :param name: None
   :type name: noteTextShown
   :param noteText: None
   :type noteText: NoteText


   :rtype: void

.. js:method:: WebViewer.trigger( name)
   :noindex:

   :param name: None
   :type name: walkOperatorActivated


   :rtype: void

.. js:method:: WebViewer.trigger( name)
   :noindex:

   :param name: None
   :type name: walkOperatorDeactivated


   :rtype: void

.. js:method:: WebViewer.trigger( name, view)
   :noindex:

   :param name: None
   :type name: viewCreated
   :param view: None
   :type view: MarkupView


   :rtype: void

.. js:method:: WebViewer.trigger( name, view)
   :noindex:

   :param name: None
   :type name: viewDeleted
   :param view: None
   :type view: MarkupView


   :rtype: void

.. js:method:: WebViewer.trigger( name, view)
   :noindex:

   :param name: None
   :type name: viewLoaded
   :param view: None
   :type view: MarkupView


   :rtype: void

.. js:method:: WebViewer.trigger( name, position, modifiers)
   :noindex:

   :param name: None
   :type name: contextMenu
   :param position: None
   :type position: Point2
   :param modifiers: None
   :type modifiers: KeyModifiers


   :rtype: void

.. js:method:: WebViewer.trigger( name)
   :noindex:

   :param name: None
   :type name: beginInteraction


   :rtype: void

.. js:method:: WebViewer.trigger( name)
   :noindex:

   :param name: None
   :type name: endInteraction


   :rtype: void

.. rst-class:: ts-api-section

unregisterCustomOperator
------------------------

.. js:method:: WebViewer.unregisterCustomOperator( operatorId)

   :param operatorId: the ID of the operator that is to be unregistered
   :type operatorId: OperatorId


   Removes a previously registered custom operator from the system.


   :rtype: void

.. rst-class:: ts-api-section

unsetCallbacks
--------------

.. js:method:: WebViewer.unsetCallbacks( callbacks)

   :param callbacks: object with property names set to corresponding functions to be unregistered.
   :type callbacks: CallbackMap


   Unregisters callbacks from the system. Note the actual function object passed in must be the same as the one that was registered using setCallbacks.


   :rtype: void

.. rst-class:: ts-api-section

waitForIdle
-----------

.. js:method:: WebViewer.waitForIdle( config)

   :param config: None
   :type config: function


   Returns a Promise that will resolve after streaming and associated
   asynchronous operations complete and the scene is fully drawn.


   :rtype: Promise <void>

