# OverlayManager

class Overlay.OverlayManager()

  The OverlayManager exposes functionality for creating overlays that are layered on top of the 3d scene. More information can be found [here](https://docs.techsoft3d.com/communicator/latest/prog_guide/viewing/scene_attributes/overlays.html). An overlay defines a viewport on the screen with an associated camera. These overlays are useful for creating axis triads, navigational cubes, or similar elements. The overlays are not designed to create multiple views of a model. Therefore, inserting large amounts of geometry into overlays isn’t recommended. Add directly additional views from the webviewer instead.

Methods

- `addNodes()`

- `destroy()`

- `getViewportAnchor()`

- `getViewportPixelOffsetInCanvas()`

- `getViewportPixelPosition()`

- `getViewportPixelSize()`

- `maxIndex()`

- `setCamera()`

- `setViewport()`

- `setVisibility()`

## Methods

### addNodes

OverlayManager.addNodes(index, nodes)
  Arguments

    - index (`number()`) – the overlay index to add nodes into.

    - nodes (`[number]()`) – the nodes to add into the overlay.

  Adds nodes into the overlay at the given index. They will no longer be rendered in the main window or any other overlay. This method should not be called before the model structure ready callback has been triggered.

  Return type

    Promise <void>

### destroy

OverlayManager.destroy(index)
  Arguments

    - index (`number()`) – the index of the overlay to destroy.

  Removes an overlay from the system. All nodes that have been assigned to this overlay will be returned to the default view.

  Return type

    Promise <void>

### getViewportAnchor

OverlayManager.getViewportAnchor(index)
  Arguments

    - index (`number()`) – The index of the overlay to get the anchor of.

  Get the anchor point of the viewport with the supplied index, or `null` if none has been set.

  Return type

    null | OverlayAnchor

### getViewportPixelOffsetInCanvas

OverlayManager.getViewportPixelOffsetInCanvas(index)
  Arguments

    - index (`number()`) – The index of the overlay to get the offset of

  Gets the calculated position of the upper-left corner of the viewport with the supplied index, or `null` if none has been set.

  Return type

    null | Point2

### getViewportPixelPosition

OverlayManager.getViewportPixelPosition(index)
  Arguments

    - index (`number()`) – The index of the overlay to get the position of.

  Gets position in pixels of the viewport with the supplied index, or `null` if none has been set. Note: This does not take the anchor point into account

  Return type

    null | Point2

### getViewportPixelSize

OverlayManager.getViewportPixelSize(index)
  Arguments

    - index (`number()`) – The index of the overlay to get the size of.

  Gets size in pixels of the viewport with the supplied index, or `null` if none has been set.

  Return type

    null | Point2

### maxIndex

OverlayManager.maxIndex()

  Gets the maximum index value that can be used for indexing overlays.

  Returns

    the maximum index value.

  Return type

    number

### setCamera

OverlayManager.setCamera(index, camera)
  Arguments

    - index (`number()`) – None

    - camera (`Camera()`) – None

  Sets the camera for the given index.

  Return type

    Promise <void>

### setViewport

OverlayManager.setViewport(index, anchor, x, xUnit, y, yUnit, width, widthUnit, height, heightUnit)
  Arguments

    - index (`number()`) – the index of the overlay. This value may be any number between 1 and maxIndex(). If No overlay exists for this index one will be created.

    - anchor (`OverlayAnchor()`) – the anchor point for the viewport.

    - x (`number()`) – the x value of the viewport location.

    - xUnit (`OverlayUnit()`) – the unit type of the x parameter.

    - y (`number()`) – the y value of the viewport location.

    - yUnit (`OverlayUnit()`) – the unit type of the y parameter.

    - width (`number()`) – the width of the viewport.

    - widthUnit (`OverlayUnit()`) – the unit type of the width parameter.

    - height (`number()`) – the height of the viewport.

    - heightUnit (`OverlayUnit()`) – the unit type of the height parameter.

  Creates an overlay or updates an existing one.

  Return type

    Promise <void>

### setVisibility

OverlayManager.setVisibility(index, visibility)
  Arguments

    - index (`number()`) – the overlay index.

    - visibility (`boolean()`) – boolean value indicating whether the overlay should be rendered.

  Sets the visibility state for the given viewport.

  Return type

    Promise <void>