
######################
@ts3d-hoops/web-viewer
######################

.. describe:: @ts3d-hoops/web-viewer

   HOOPS Visualize Web WebViewer
   
   HOOPS Visualize Web can be imported in different ways.
   
   All of our libraries are formatted as npm packages in the ``@ts3d-hoops`` folder.
   
   In an effort to modernize and improve our codebase, we've dedicated our best efforts to migrate it to use ES Modules and simplify integration for users of such systems.
   
   As an alternative, the SDK is also available as IIFE and UMD.
   
   The ESM with npm (Recommended)
   
   You can install the web-viewer package with npm and the install from a local path feature:
   
   .. code-block:: bash
   
      npm install path/to/@ts3d-hoops/web-viewer
   
   We recommend placing the ``@ts3d-hoops`` folder under your web application project root folder due to an npm limitation. Alternatively, you can use Yarn. If not, sub-dependencies of ``web-viewer`` will not be linked in your ``node_modules``\ .
   
   The ``engine.esm.wasm`` file required by the web-viewer is located in the ``@ts3d-hoops/sc-engine`` folder. You may need to copy it to your public directory or use a framework-specific plugin to embed it in your application. Don't forget to update the ``enginePath`` attribute if needed.
   
   Then, use our packages like any npm package in your code:
   
   .. code-block:: html
   
      <!doctype html>
      <html lang="en">
        <head>
          <!-- ... -->
        </head>
        <body>
          <!-- ... -->
          <div id="viewerContainer" tabindex="0"></div>
          <!-- ... -->
          <script type="module" crossorigin src="main.js"></script>
        </body>
      </html>
   
   .. code-block:: js
   
      import { WebViewer } from '@ts3d-hoops/hoops-web';
      
      const container = document.getElementById('viewerContainer');
      const hwv = new WebViewer({
        container,
        endpointUri: 'models/microengine.scs',
      });
   
   The IIFE (Historical)
   
   Historically, we have always provided the web viewer code as an IIFE (Immediately Invoked Function Expression), and we will continue to do so.
   
   Required files:
   
   
   ::
   
      engine.esm.wasm
      hoops-web-viewer.iife.js
   
   Your HTML should look like the following simple example:
   
   .. code-block:: html
   
      <!doctype html>
      <html lang="en">
        <head>
          <!-- ... -->
          <script type="text/javascript" src="./hoops-web-viewer.iife.js"></script>
        </head>
        <body>
          <!-- ... -->
          <div id="viewerContainer" tabindex="0"></div>
          <!-- ... -->
          <script type="text/javascript">
            const container = document.getElementById('viewerContainer');
            const hwv = new Communicator.WebViewer({
              container,
              endpointUri: 'models/microengine.scs',
            });
      
            /* ... */
          </script>
        </body>
      </html>
   
   You can see an example of using the IIFE in the samples as well.
   
   The UMD
   
   Additionally, some users may use systems based on RequireJS and rely on AMD/UMD files.
   
   In an attempt to provide the easiest to use SDK and facilitate integration in any environment
   
   
   ::
   
      engine.esm.wasm
      hoops-web-viewer.umd.js
   
   The code should be very similar to what you're used to:
   
   .. code-block:: html
   
      <!doctype html>
      <html lang="en">
        <head>
          <!-- ... -->
          <script crossorigin src="./require.min.js"></script>
        </head>
        <body>
          <!-- ... -->
          <div id="viewerContainer" tabindex="0"></div>
          <!-- ... -->
          <script type="module">
            requirejs(['hoops-web-viewer.umd.js'], (Communicator) => {
              const hwv = new Communicator.WebViewer({
                container,
                endpointUri: 'models/microengine.scs',
              });
      
              /* ... */
            });
          </script>
        </body>
      </html>
   
   An example is available in the samples.
   
   Using TypeScript
   
   Type declaration files are directly embedded in the npm packages.
   
   ESM users can use ``web_viewer/hoops-web-viewer.d.ts`` and add it to their project either in their ``tsconfig.json`` or as a reference tag in their TypeScript files:
   
   .. code-block:: typescript
   
      /// <reference path="path/to/hoops-web-viewer.d.ts" />
   
   We recommend our TypeScript users to consider using ESM in a TypeScript project.
   If you opt for IIFE or UMD, you can use ``web_viewer/hoops-web-viewer.iife.d.ts`` or ``web_viewer/hoops-web-viewer.umd.d.ts``\ .
   
   Using the Monolith
   
   It may be cumbersome to set the path to ``engine.esm.wasm`` in your project, and your bundler may complain about it, especially in development mode (bundlers generally do not like dynamic imports).
   To make your integration experience smoother, you can use one of the variants of our viewer code that corresponds to your import scheme (ESM, UMD, or IIFE) and contains the term "monolith" in its name (e.g., ``hoops-web-viewer-monolith.mjs``\ , ``hoops-web-viewer-monolith.umd.js``\ , or ``hoops-web-viewer-monolith.iife.js``\ ).
   This allows you to completely avoid handling ``engine.esm.wasm`` in your configuration.
   
   If you are using an npm-based approach, you can also benefit from the monolith feature.
   The first thing to do is to install the related package:
   
   .. code-block:: bash
   
      npm install path/to/@ts3d-hoops/web-viewer-monolith
   
   Finally, you will need to add these lines in your product prior to calling the WebViewer constructor:
   
   .. code-block:: ts
   
      import '@ts3d-hoops/web-viewer-monolith';
   
   Everything should work as expected.
   
      Using the monolith may result in a larger file size because the engine binary is stored directly in the code as a base64 string rather than as an external binary file.
      On the other hand, the extra data is embedded within the code, so fewer files need to be queried via HTTP requests.
   
   
   
   Index
   =====
   
   .. rubric:: References
   
   
   .. rst-class:: api-xref-list
   
   
   * :js:data:`~BimMask`
   * :js:data:`~Milliseconds`
   * :js:data:`~OverlayId`
   * :js:data:`~OverlayIndex`
   * :js:data:`~ScModelName`
   * :js:data:`~ScsBuffer`
   * :js:data:`~TextureFlags`
   * :js:data:`~ViewKey`
   
   




Namespaces
==========

.. rst-class:: api-xref-list


* :js:mod:`~Animation`
* :js:mod:`~Bcf`
* :js:mod:`~Bim`
* :js:mod:`~core`
* :js:mod:`~Event`
* :js:mod:`~Floorplan`
* :js:mod:`~Markup`
* :js:mod:`~Operators`
* :js:mod:`~Overlay`
* :js:mod:`~Sc`
* :js:mod:`~Selection`
* :js:mod:`~Util`

.. toctree::
   :maxdepth: 1
   :hidden:

   modules/Animation
   modules/Bcf
   modules/Bim
   modules/core
   modules/Event
   modules/Floorplan
   modules/Markup
   modules/Operators
   modules/Overlay
   modules/Sc
   modules/Selection
   modules/Util



Enumerations
============

.. rst-class:: api-xref-list


* :js:data:`~AntiAliasingMode`
* :js:data:`~AttributeType`
* :js:data:`~Axis`
* :js:data:`~BasicUnit`
* :js:data:`~BlurIntervalUnit`
* :js:data:`~BoundingPreviewMode`
* :js:data:`~BranchVisibility`
* :js:data:`~BuiltinOverlayIndex`
* :js:data:`~Button`
* :js:data:`~Buttons`
* :js:data:`~CullingVectorSpace`
* :js:data:`~DepthRange`
* :js:data:`~DrawMode`
* :js:data:`~DrawStrategy`
* :js:data:`~ElementType`
* :js:data:`~EventType`
* :js:data:`~FaceWinding`
* :js:data:`~FileType`
* :js:data:`~FilterId`
* :js:data:`~FloorplanOrientation`
* :js:data:`~HandleEventType`
* :js:data:`~HandleType`
* :js:data:`~ImageFormat`
* :js:data:`~InfoType`
* :js:data:`~InstanceModifier`
* :js:data:`~KeyCode`
* :js:data:`~KeyInputType`
* :js:data:`~KeyModifiers`
* :js:data:`~LayerId`
* :js:data:`~LinePatternLengthUnit`
* :js:data:`~MeshInstanceCreationFlags`
* :js:data:`~MouseInputType`
* :js:data:`~NodeSource`
* :js:data:`~NodeType`
* :js:data:`~OperatorId`
* :js:data:`~OrbitFallbackMode`
* :js:data:`~OverlayAnchor`
* :js:data:`~OverlayUnit`
* :js:data:`~PmiSubType`
* :js:data:`~PmiTopoRef`
* :js:data:`~PmiType`
* :js:data:`~PointShape`
* :js:data:`~PointSizeUnit`
* :js:data:`~Projection`
* :js:data:`~RelationshipType`
* :js:data:`~RendererType`
* :js:data:`~ScreenConfiguration`
* :js:data:`~SelectionHighlightMode`
* :js:data:`~SelectionMask`
* :js:data:`~SelectionMode`
* :js:data:`~SelectionType`
* :js:data:`~SimpleReflectionAttenuationUnit`
* :js:data:`~SnapshotLayer`
* :js:data:`~StreamingMode`
* :js:data:`~TextureModifier`
* :js:data:`~TextureParameterization`
* :js:data:`~TextureTiling`
* :js:data:`~TouchInputType`
* :js:data:`~TransparencyMode`
* :js:data:`~TreeWalkMode`
* :js:data:`~ViewOrientation`
* :js:data:`~WalkDirection`
* :js:data:`~WalkMode`
* :js:data:`~XRayGroup`

.. toctree::
   :maxdepth: 1
   :hidden:

   enums/AntiAliasingMode
   enums/AttributeType
   enums/Axis
   enums/BasicUnit
   enums/BlurIntervalUnit
   enums/BoundingPreviewMode
   enums/BranchVisibility
   enums/BuiltinOverlayIndex
   enums/Button
   enums/Buttons
   enums/CullingVectorSpace
   enums/DepthRange
   enums/DrawMode
   enums/DrawStrategy
   enums/ElementType
   enums/EventType
   enums/FaceWinding
   enums/FileType
   enums/FilterId
   enums/FloorplanOrientation
   enums/HandleEventType
   enums/HandleType
   enums/ImageFormat
   enums/InfoType
   enums/InstanceModifier
   enums/KeyCode
   enums/KeyInputType
   enums/KeyModifiers
   enums/LayerId
   enums/LinePatternLengthUnit
   enums/MeshInstanceCreationFlags
   enums/MouseInputType
   enums/NodeSource
   enums/NodeType
   enums/OperatorId
   enums/OrbitFallbackMode
   enums/OverlayAnchor
   enums/OverlayUnit
   enums/PmiSubType
   enums/PmiTopoRef
   enums/PmiType
   enums/PointShape
   enums/PointSizeUnit
   enums/Projection
   enums/RelationshipType
   enums/RendererType
   enums/ScreenConfiguration
   enums/SelectionHighlightMode
   enums/SelectionMask
   enums/SelectionMode
   enums/SelectionType
   enums/SimpleReflectionAttenuationUnit
   enums/SnapshotLayer
   enums/StreamingMode
   enums/TextureModifier
   enums/TextureParameterization
   enums/TextureTiling
   enums/TouchInputType
   enums/TransparencyMode
   enums/TreeWalkMode
   enums/ViewOrientation
   enums/WalkDirection
   enums/WalkMode
   enums/XRayGroup



Classes
=======

.. rst-class:: api-xref-list


* :js:class:`~AssemblyDataParseError`
* :js:class:`~AxisTriad`
* :js:class:`~Box`
* :js:class:`~Camera`
* :js:class:`~Color`
* :js:class:`~CommunicatorError`
* :js:class:`~CuttingManager`
* :js:class:`~CuttingPlane`
* :js:class:`~CuttingSection`
* :js:class:`~DirectionalLight`
* :js:class:`~ExplodeManager`
* :js:class:`~FaceFaceDistanceItem`
* :js:class:`~FaceMeshData`
* :js:class:`~FilteredNodes`
* :js:class:`~IncrementalPickConfig`
* :js:class:`~InternalLogicError`
* :js:class:`~InvalidIndexError`
* :js:class:`~InvalidNodeIdError`
* :js:class:`~InvalidNodeTypeError`
* :js:class:`~Light`
* :js:class:`~LineManager`
* :js:class:`~LoadCancelledError`
* :js:class:`~LoadError`
* :js:class:`~LoadSubtreeConfig`
* :js:class:`~MarkupManager`
* :js:class:`~MarkupTypeManager`
* :js:class:`~Matrix`
* :js:class:`~MeasureManager`
* :js:class:`~MeshData`
* :js:class:`~MeshInstanceData`
* :js:class:`~MissingModelError`
* :js:class:`~Model`
* :js:class:`~NavCube`
* :js:class:`~OperatorManager`
* :js:class:`~ParseError`
* :js:class:`~PickConfig`
* :js:class:`~PickOutsideCanvasError`
* :js:class:`~Plane`
* :js:class:`~Point2`
* :js:class:`~Point3`
* :js:class:`~Point4`
* :js:class:`~PointLight`
* :js:class:`~PointMeshData`
* :js:class:`~PolylineMeshData`
* :js:class:`~Ray`
* :js:class:`~RefOnTopoItem`
* :js:class:`~SelectionInvalidatedError`
* :js:class:`~SheetManager`
* :js:class:`~SnapshotConfig`
* :js:class:`~SubentityAttributes`
* :js:class:`~SvgConfig`
* :js:class:`~VerticalGradient`
* :js:class:`~View`
* :js:class:`~ViewAxes`
* :js:class:`~VisibilityState`
* :js:class:`~WebViewer`
* :js:class:`~XmlParseError`

.. toctree::
   :maxdepth: 1
   :hidden:

   classes/AssemblyDataParseError
   classes/AxisTriad
   classes/Box
   classes/Camera
   classes/Color
   classes/CommunicatorError
   classes/CuttingManager
   classes/CuttingPlane
   classes/CuttingSection
   classes/DirectionalLight
   classes/ExplodeManager
   classes/FaceFaceDistanceItem
   classes/FaceMeshData
   classes/FilteredNodes
   classes/IncrementalPickConfig
   classes/InternalLogicError
   classes/InvalidIndexError
   classes/InvalidNodeIdError
   classes/InvalidNodeTypeError
   classes/Light
   classes/LineManager
   classes/LoadCancelledError
   classes/LoadError
   classes/LoadSubtreeConfig
   classes/MarkupManager
   classes/MarkupTypeManager
   classes/Matrix
   classes/MeasureManager
   classes/MeshData
   classes/MeshInstanceData
   classes/MissingModelError
   classes/Model
   classes/NavCube
   classes/OperatorManager
   classes/ParseError
   classes/PickConfig
   classes/PickOutsideCanvasError
   classes/Plane
   classes/Point2
   classes/Point3
   classes/Point4
   classes/PointLight
   classes/PointMeshData
   classes/PolylineMeshData
   classes/Ray
   classes/RefOnTopoItem
   classes/SelectionInvalidatedError
   classes/SheetManager
   classes/SnapshotConfig
   classes/SubentityAttributes
   classes/SvgConfig
   classes/VerticalGradient
   classes/View
   classes/ViewAxes
   classes/VisibilityState
   classes/WebViewer
   classes/XmlParseError



Interfaces
==========

.. rst-class:: api-xref-list


* :js:class:`~Attribute`
* :js:class:`~BloomLayerInfo`
* :js:class:`~CallbackMap`
* :js:class:`~ComparisonConfig`
* :js:class:`~CullingVector`
* :js:class:`~CuttingPlaneData`
* :js:class:`~FaceFaceDistanceObject`
* :js:class:`~GetNodesBoundingConfig`
* :js:class:`~GroundPlane`
* :js:class:`~IAssemblyTree`
* :js:class:`~IBox`
* :js:class:`~ICallbackManager`
* :js:class:`~IColor`
* :js:class:`~ICuttingManager`
* :js:class:`~ICuttingSection`
* :js:class:`~IdBooleanMap`
* :js:class:`~IdColorMap`
* :js:class:`~IdNumberMap`
* :js:class:`~IdStringMap`
* :js:class:`~ImageBasedLightingOrientation`
* :js:class:`~ImageOptions`
* :js:class:`~IMaterial`
* :js:class:`~IModel`
* :js:class:`~IModelStructure`
* :js:class:`~IPoint2`
* :js:class:`~IPoint3`
* :js:class:`~IPoint4`
* :js:class:`~IRay`
* :js:class:`~IScEngine`
* :js:class:`~IView`
* :js:class:`~IWebViewer`
* :js:class:`~MarkupData`
* :js:class:`~MeshDataCopy`
* :js:class:`~MeshDataCopyElement`
* :js:class:`~MeshDataCopyElementGroup`
* :js:class:`~MeshDataCopyIterator`
* :js:class:`~MeshDataCopyVertex`
* :js:class:`~MetallicRoughnessValue`
* :js:class:`~ObjectConstructor`
* :js:class:`~RelationshipInfo`
* :js:class:`~SimpleReflectionAttenuation`
* :js:class:`~StringStringMap`
* :js:class:`~TextureOptions`
* :js:class:`~UnitElement`
* :js:class:`~ViewConfig`
* :js:class:`~WebViewerConfig`

.. toctree::
   :maxdepth: 1
   :hidden:

   interfaces/Attribute
   interfaces/BloomLayerInfo
   interfaces/CallbackMap
   interfaces/ComparisonConfig
   interfaces/CullingVector
   interfaces/CuttingPlaneData
   interfaces/FaceFaceDistanceObject
   interfaces/GetNodesBoundingConfig
   interfaces/GroundPlane
   interfaces/IAssemblyTree
   interfaces/IBox
   interfaces/ICallbackManager
   interfaces/IColor
   interfaces/ICuttingManager
   interfaces/ICuttingSection
   interfaces/IdBooleanMap
   interfaces/IdColorMap
   interfaces/IdNumberMap
   interfaces/IdStringMap
   interfaces/ImageBasedLightingOrientation
   interfaces/ImageOptions
   interfaces/IMaterial
   interfaces/IModel
   interfaces/IModelStructure
   interfaces/IPoint2
   interfaces/IPoint3
   interfaces/IPoint4
   interfaces/IRay
   interfaces/IScEngine
   interfaces/IView
   interfaces/IWebViewer
   interfaces/MarkupData
   interfaces/MeshDataCopy
   interfaces/MeshDataCopyElement
   interfaces/MeshDataCopyElementGroup
   interfaces/MeshDataCopyIterator
   interfaces/MeshDataCopyVertex
   interfaces/MetallicRoughnessValue
   interfaces/ObjectConstructor
   interfaces/RelationshipInfo
   interfaces/SimpleReflectionAttenuation
   interfaces/StringStringMap
   interfaces/TextureOptions
   interfaces/UnitElement
   interfaces/ViewConfig
   interfaces/WebViewerConfig



Type Aliases
============

.. rst-class:: api-xref-list


* :js:data:`~BimId`
* :js:data:`~BodyId`
* :js:data:`~BuiltInOperatorId`
* :js:data:`~CadViewId`
* :js:data:`~Degrees`
* :js:data:`~ExchangeId`
* :js:data:`~ExternalModelName`
* :js:data:`~FilterName`
* :js:data:`~GenericId`
* :js:data:`~GenericType`
* :js:data:`~HtmlId`
* :js:data:`~ImageId`
* :js:data:`~LayerName`
* :js:data:`~LightKey`
* :js:data:`~LinePattern`
* :js:data:`~MassageModelNameFunc`
* :js:data:`~MaterialParam`
* :js:data:`~Matrix12`
* :js:data:`~Matrix16`
* :js:data:`~Matrix9`
* :js:data:`~MeshId`
* :js:data:`~ModelNameToScsFileFunc`
* :js:data:`~NodeDrawMode`
* :js:data:`~NodeId`
* :js:data:`~NodeIdOffset`
* :js:data:`~PartId`
* :js:data:`~Pixels`
* :js:data:`~PmiId`
* :js:data:`~Radians`
* :js:data:`~Rgbas`
* :js:data:`~ScsUri`
* :js:data:`~SheetId`
* :js:data:`~UserDataIndex`
* :js:data:`~Uuid`
* :js:data:`~Uvs`
* :js:data:`~Vector3`
* :js:data:`~Vector3s`
* :js:data:`~Vector4`
* :js:data:`~Vector4s`
* :js:data:`~XmlFilename`
* :js:data:`~XRayTransparencyMode`

.. toctree::
   :maxdepth: 1
   :hidden:

   types/BimId
   types/BodyId
   types/BuiltInOperatorId
   types/CadViewId
   types/Degrees
   types/ExchangeId
   types/ExternalModelName
   types/FilterName
   types/GenericId
   types/GenericType
   types/HtmlId
   types/ImageId
   types/LayerName
   types/LightKey
   types/LinePattern
   types/MassageModelNameFunc
   types/MaterialParam
   types/Matrix12
   types/Matrix16
   types/Matrix9
   types/MeshId
   types/ModelNameToScsFileFunc
   types/NodeDrawMode
   types/NodeId
   types/NodeIdOffset
   types/PartId
   types/Pixels
   types/PmiId
   types/Radians
   types/Rgbas
   types/ScsUri
   types/SheetId
   types/UserDataIndex
   types/Uuid
   types/Uvs
   types/Vector3
   types/Vector3s
   types/Vector4
   types/Vector4s
   types/XmlFilename
   types/XRayTransparencyMode



Variables
=========

.. rst-class:: api-xref-list


* :js:data:`~DefaultTransitionDuration`
* :js:data:`~EmptyModelName`
* :js:data:`~InvalidNodeId`
* :js:data:`~NoOverrideDrawMode`
* :js:data:`~Ohm`
* :js:data:`~Subscript1`
* :js:data:`~Subscript2`
* :js:data:`~Subscript3`
* :js:data:`~SubscriptNeg`

.. toctree::
   :maxdepth: 1
   :hidden:

   variables/DefaultTransitionDuration
   variables/EmptyModelName
   variables/InvalidNodeId
   variables/NoOverrideDrawMode
   variables/Ohm
   variables/Subscript1
   variables/Subscript2
   variables/Subscript3
   variables/SubscriptNeg



Functions
=========

.. rst-class:: api-xref-list


* :js:func:`~closestPointFromPointToSegment`
* :js:func:`~closestPointScalarFromPointToSegment`
* :js:func:`~computeAngleBetweenVector`
* :js:func:`~computeOffaxisRotation`
* :js:func:`~computePointToLineDistance`
* :js:func:`~createUuid`
* :js:func:`~degreesToRadians`
* :js:func:`~distanceLineLine`
* :js:func:`~formatWithUnit`
* :js:func:`~generateArcPoints`
* :js:func:`~generatePointsOnCircle`
* :js:func:`~get3dBaseFromVector`
* :js:func:`~getLongUnitString`
* :js:func:`~getOrthogonalVector`
* :js:func:`~intersect3d2Planes`
* :js:func:`~intersectionPlaneLine`
* :js:func:`~intersectionPlaneLine2`
* :js:func:`~isIColor`
* :js:func:`~isIPoint2`
* :js:func:`~isIPoint3`
* :js:func:`~isIPoint4`
* :js:func:`~isPointInRect2d`
* :js:func:`~isPointOnLineSegment`
* :js:func:`~isPointOnLineSegment2d`
* :js:func:`~lineLineIntersect`
* :js:func:`~oneVectorCross`
* :js:func:`~radiansToDegrees`
* :js:func:`~sortVerticesCounterClockwise`

.. toctree::
   :maxdepth: 1
   :hidden:

   functions/closestPointFromPointToSegment
   functions/closestPointScalarFromPointToSegment
   functions/computeAngleBetweenVector
   functions/computeOffaxisRotation
   functions/computePointToLineDistance
   functions/createUuid
   functions/degreesToRadians
   functions/distanceLineLine
   functions/formatWithUnit
   functions/generateArcPoints
   functions/generatePointsOnCircle
   functions/get3dBaseFromVector
   functions/getLongUnitString
   functions/getOrthogonalVector
   functions/intersect3d2Planes
   functions/intersectionPlaneLine
   functions/intersectionPlaneLine2
   functions/isIColor
   functions/isIPoint2
   functions/isIPoint3
   functions/isIPoint4
   functions/isPointInRect2d
   functions/isPointOnLineSegment
   functions/isPointOnLineSegment2d
   functions/lineLineIntersect
   functions/oneVectorCross
   functions/radiansToDegrees
   functions/sortVerticesCounterClockwise



References
==========

.. js:data:: BimMask

   .. rst-class:: sig-pretty-signature
   
      | BimMask -> :js:data:`Sc.BimMask`
   



.. js:data:: Milliseconds

   .. rst-class:: sig-pretty-signature
   
      | Milliseconds -> :js:data:`Sc.Milliseconds`
   



.. js:data:: OverlayId

   .. rst-class:: sig-pretty-signature
   
      | OverlayId -> :js:class:`Sc.OverlayId`
   
   Type used to denote overlay indices.
   



.. js:data:: OverlayIndex

   .. rst-class:: sig-pretty-signature
   
      | OverlayIndex -> :js:data:`Sc.OverlayIndex`
   
   Type used to denote overlay indices.
   



.. js:data:: ScModelName

   .. rst-class:: sig-pretty-signature
   
      | ScModelName -> :js:data:`Sc.ScModelName`
   



.. js:data:: ScsBuffer

   .. rst-class:: sig-pretty-signature
   
      | ScsBuffer -> :js:data:`Sc.ScsBuffer`
   



.. js:data:: TextureFlags

   .. rst-class:: sig-pretty-signature
   
      | TextureFlags -> :js:class:`Sc.TextureFlags`
   



.. js:data:: ViewKey

   .. rst-class:: sig-pretty-signature
   
      | ViewKey -> :js:data:`Sc.ViewKey`
   





