@vertexvis/viewer 1.0.2-canary.2 → 1.0.2-canary.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/config-20ozv4y8.js.map +1 -1
- package/dist/cjs/controller-BhcNbaX_.js.map +1 -1
- package/dist/cjs/controller-CSwG6gbQ.js.map +1 -1
- package/dist/cjs/cursors-BZmDRtaZ.js.map +1 -1
- package/dist/cjs/dom-BBil4aN3.js.map +1 -1
- package/dist/cjs/dom-CvGkFQon.js.map +1 -1
- package/dist/cjs/entities-D6kgGria.js.map +1 -1
- package/dist/cjs/geometry_pb-BTko2Wi0.js.map +1 -1
- package/dist/cjs/grpc-BsWFEUrc.js.map +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/model-C9WvOKYT.js.map +1 -1
- package/dist/cjs/model-D17EQTIh.js.map +1 -1
- package/dist/cjs/model-DAB4oD5n.js.map +1 -1
- package/dist/cjs/model-DkXCzhs_.js.map +1 -1
- package/dist/cjs/multiElementInteractionHandler-BHvRKVIp.js.map +1 -1
- package/dist/cjs/overlays-B-06bUbI.js.map +1 -1
- package/dist/cjs/queries-Da9I-xMf.js.map +1 -1
- package/dist/cjs/regl-component-HhKCyGQ3.js.map +1 -1
- package/dist/cjs/representation_pb-CrCGjlyP.js.map +1 -1
- package/dist/cjs/results-1wRRZiYG.js.map +1 -1
- package/dist/cjs/row-Cet6xXup.js.map +1 -1
- package/dist/cjs/stencil-Hsr_8Chs.js.map +1 -1
- package/dist/cjs/streamAttributes-D_J-W8-2.js.map +1 -1
- package/dist/cjs/templates-DvjgjnlO.js.map +1 -1
- package/dist/cjs/util-DIJSIQXH.js.map +1 -1
- package/dist/cjs/utils-CibrnHQ4.js.map +1 -1
- package/dist/cjs/utils-D8MbXbwO.js.map +1 -1
- package/dist/cjs/utils-qErVs2Vt.js.map +1 -1
- package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js +6 -8
- package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +2 -2
- package/dist/cjs/vertex-scene-tree.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-hit-result-indicator.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-hit-result-indicator.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-markup.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-markup.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-teleport-tool.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +4 -5
- package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-walk-mode-tool.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer.cjs.entry.js +9 -5
- package/dist/cjs/vertex-viewer.cjs.entry.js.map +1 -1
- package/dist/cjs/viewport-CG1VYkIU.js.map +1 -1
- package/dist/collection/components/scene-tree/errors.js.map +1 -1
- package/dist/collection/components/scene-tree/lib/controller.js.map +1 -1
- package/dist/collection/components/scene-tree/lib/dom.js.map +1 -1
- package/dist/collection/components/scene-tree/lib/errors.js.map +1 -1
- package/dist/collection/components/scene-tree/lib/grpc.js.map +1 -1
- package/dist/collection/components/scene-tree/lib/handlers.js.map +1 -1
- package/dist/collection/components/scene-tree/lib/row.js.map +1 -1
- package/dist/collection/components/scene-tree/lib/viewer-ops.js.map +1 -1
- package/dist/collection/components/scene-tree/scene-tree.js +2 -2
- package/dist/collection/components/scene-tree/scene-tree.js.map +1 -1
- package/dist/collection/components/scene-tree-search/scene-tree-search.js.map +1 -1
- package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js +1 -1
- package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js.map +1 -1
- package/dist/collection/components/scene-tree-table-cell/utils.js.map +1 -1
- package/dist/collection/components/scene-tree-table-layout/lib/dom.js.map +1 -1
- package/dist/collection/components/scene-tree-table-layout/lib/window.js.map +1 -1
- package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +5 -5
- package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js.map +1 -1
- package/dist/collection/components/viewer/utils.js.map +1 -1
- package/dist/collection/components/viewer/viewer.js +9 -5
- package/dist/collection/components/viewer/viewer.js.map +1 -1
- package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js +2 -2
- package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js.map +1 -1
- package/dist/collection/components/viewer-dom-element/utils.js.map +1 -1
- package/dist/collection/components/viewer-dom-element/viewer-dom-element.js +1 -1
- package/dist/collection/components/viewer-dom-element/viewer-dom-element.js.map +1 -1
- package/dist/collection/components/viewer-dom-group/utils.js.map +1 -1
- package/dist/collection/components/viewer-dom-group/viewer-dom-group.js +1 -1
- package/dist/collection/components/viewer-dom-group/viewer-dom-group.js.map +1 -1
- package/dist/collection/components/viewer-dom-renderer/renderer2d.js.map +1 -1
- package/dist/collection/components/viewer-dom-renderer/renderer3d.js.map +1 -1
- package/dist/collection/components/viewer-dom-renderer/viewer-dom-renderer.js.map +1 -1
- package/dist/collection/components/viewer-hit-result-indicator/lib/dom.js.map +1 -1
- package/dist/collection/components/viewer-hit-result-indicator/lib/indicator.js.map +1 -1
- package/dist/collection/components/viewer-hit-result-indicator/lib/plane.js.map +1 -1
- package/dist/collection/components/viewer-hit-result-indicator/lib/point.js.map +1 -1
- package/dist/collection/components/viewer-hit-result-indicator/viewer-hit-result-indicator.js +1 -1
- package/dist/collection/components/viewer-hit-result-indicator/viewer-hit-result-indicator.js.map +1 -1
- package/dist/collection/components/viewer-icon/viewer-icon.js.map +1 -1
- package/dist/collection/components/viewer-markup/markup-utils.js.map +1 -1
- package/dist/collection/components/viewer-markup/viewer-markup-components.js.map +1 -1
- package/dist/collection/components/viewer-markup/viewer-markup.js +1 -1
- package/dist/collection/components/viewer-markup/viewer-markup.js.map +1 -1
- package/dist/collection/components/viewer-markup-arrow/interactions.js.map +1 -1
- package/dist/collection/components/viewer-markup-arrow/utils.js.map +1 -1
- package/dist/collection/components/viewer-markup-arrow/viewer-markup-arrow-components.js.map +1 -1
- package/dist/collection/components/viewer-markup-arrow/viewer-markup-arrow.js.map +1 -1
- package/dist/collection/components/viewer-markup-circle/interactions.js.map +1 -1
- package/dist/collection/components/viewer-markup-circle/utils.js.map +1 -1
- package/dist/collection/components/viewer-markup-circle/viewer-markup-circle.js.map +1 -1
- package/dist/collection/components/viewer-markup-freeform/interactions.js.map +1 -1
- package/dist/collection/components/viewer-markup-freeform/utils.js.map +1 -1
- package/dist/collection/components/viewer-markup-freeform/viewer-markup-freeform.js.map +1 -1
- package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.js.map +1 -1
- package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.js.map +1 -1
- package/dist/collection/components/viewer-measurement-distance/hitTest.js.map +1 -1
- package/dist/collection/components/viewer-measurement-distance/interactions.js.map +1 -1
- package/dist/collection/components/viewer-measurement-distance/utils.js.map +1 -1
- package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js.map +1 -1
- package/dist/collection/components/viewer-measurement-line/viewer-measurement-line.js +1 -1
- package/dist/collection/components/viewer-measurement-line/viewer-measurement-line.js.map +1 -1
- package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.js +1 -1
- package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.js.map +1 -1
- package/dist/collection/components/viewer-measurement-precise/viewer-measurement-precise.js.map +1 -1
- package/dist/collection/components/viewer-pin-group/utils.js.map +1 -1
- package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +2 -2
- package/dist/collection/components/viewer-pin-group/viewer-pin-group.js.map +1 -1
- package/dist/collection/components/viewer-pin-label/viewer-pin-label.js.map +1 -1
- package/dist/collection/components/viewer-pin-tool/utils.js.map +1 -1
- package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js +1 -1
- package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js.map +1 -1
- package/dist/collection/components/viewer-teleport-tool/viewer-teleport-tool.js.map +1 -1
- package/dist/collection/components/viewer-transform-widget/util.js +1 -2
- package/dist/collection/components/viewer-transform-widget/util.js.map +1 -1
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget-components.js.map +1 -1
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +3 -3
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js.map +1 -1
- package/dist/collection/components/viewer-transform-widget/widget.js.map +1 -1
- package/dist/collection/components/viewer-view-cube/viewer-view-cube.js +1 -1
- package/dist/collection/components/viewer-view-cube/viewer-view-cube.js.map +1 -1
- package/dist/collection/components/viewer-walk-mode-tool/viewer-walk-mode-tool.js.map +1 -1
- package/dist/collection/lib/annotations/controller.js.map +1 -1
- package/dist/collection/lib/canvases/controller.js.map +1 -1
- package/dist/collection/lib/canvases/mapper.js.map +1 -1
- package/dist/collection/lib/config.js.map +1 -1
- package/dist/collection/lib/cursors.js.map +1 -1
- package/dist/collection/lib/dom.js.map +1 -1
- package/dist/collection/lib/grpc.js.map +1 -1
- package/dist/collection/lib/interactions/baseInteractionHandler.js.map +1 -1
- package/dist/collection/lib/interactions/flyToPartKeyInteraction.js.map +1 -1
- package/dist/collection/lib/interactions/flyToPositionKeyInteraction.js.map +1 -1
- package/dist/collection/lib/interactions/interactionApi.js.map +1 -1
- package/dist/collection/lib/interactions/interactionApiOrthographic.js.map +1 -1
- package/dist/collection/lib/interactions/interactionApiPerspective.js.map +1 -1
- package/dist/collection/lib/interactions/mouseInteractionHandler.js.map +1 -1
- package/dist/collection/lib/interactions/mouseInteractions.js.map +1 -1
- package/dist/collection/lib/interactions/multiElementInteractionHandler.js.map +1 -1
- package/dist/collection/lib/interactions/multiPointerInteractionHandler.js.map +1 -1
- package/dist/collection/lib/interactions/multiTouchInteractionHandler.js.map +1 -1
- package/dist/collection/lib/interactions/pointerInteractionHandler.js.map +1 -1
- package/dist/collection/lib/interactions/tapInteractionHandler.js.map +1 -1
- package/dist/collection/lib/interactions/touchInteractionHandler.js.map +1 -1
- package/dist/collection/lib/keyBinding.js.map +1 -1
- package/dist/collection/lib/mappers/annotation.js.map +1 -1
- package/dist/collection/lib/mappers/camera.js.map +1 -1
- package/dist/collection/lib/mappers/color.js.map +1 -1
- package/dist/collection/lib/mappers/colorMaterial.js.map +1 -1
- package/dist/collection/lib/mappers/corePb.js.map +1 -1
- package/dist/collection/lib/mappers/corePbJs.js.map +1 -1
- package/dist/collection/lib/mappers/frameStreaming.js.map +1 -1
- package/dist/collection/lib/mappers/geometry.js.map +1 -1
- package/dist/collection/lib/mappers/material.js.map +1 -1
- package/dist/collection/lib/mappers/pagination.js.map +1 -1
- package/dist/collection/lib/mappers/scalar.js.map +1 -1
- package/dist/collection/lib/mappers/streamAttributes.js.map +1 -1
- package/dist/collection/lib/markup/interactions.js.map +1 -1
- package/dist/collection/lib/measurement/controller.js.map +1 -1
- package/dist/collection/lib/measurement/entities.js.map +1 -1
- package/dist/collection/lib/measurement/interactions.js.map +1 -1
- package/dist/collection/lib/measurement/mapper.js.map +1 -1
- package/dist/collection/lib/measurement/model.js.map +1 -1
- package/dist/collection/lib/measurement/overlays.js.map +1 -1
- package/dist/collection/lib/measurement/results.js.map +1 -1
- package/dist/collection/lib/meters.js.map +1 -1
- package/dist/collection/lib/model-views/controller.js.map +1 -1
- package/dist/collection/lib/model-views/mapper.js.map +1 -1
- package/dist/collection/lib/pins/controller.js.map +1 -1
- package/dist/collection/lib/pins/interactions.js.map +1 -1
- package/dist/collection/lib/pmi/controller.js.map +1 -1
- package/dist/collection/lib/pmi/mapper.js.map +1 -1
- package/dist/collection/lib/rendering/canvas.js.map +1 -1
- package/dist/collection/lib/rendering/imageLoaders.js.map +1 -1
- package/dist/collection/lib/rendering/matrices.js.map +1 -1
- package/dist/collection/lib/rendering/timing.js.map +1 -1
- package/dist/collection/lib/rendering/utils.js.map +1 -1
- package/dist/collection/lib/rendering/vectors.js.map +1 -1
- package/dist/collection/lib/scene-items/controller.js.map +1 -1
- package/dist/collection/lib/scene-items/mapper.js.map +1 -1
- package/dist/collection/lib/scenes/camera.js.map +1 -1
- package/dist/collection/lib/scenes/cameraRenderResult.js.map +1 -1
- package/dist/collection/lib/scenes/colorMaterial.js.map +1 -1
- package/dist/collection/lib/scenes/crossSectioner.js.map +1 -1
- package/dist/collection/lib/scenes/mapper.js.map +1 -1
- package/dist/collection/lib/scenes/operations.js.map +1 -1
- package/dist/collection/lib/scenes/queries.js.map +1 -1
- package/dist/collection/lib/scenes/raycaster.js.map +1 -1
- package/dist/collection/lib/scenes/scene.js.map +1 -1
- package/dist/collection/lib/scenes/sceneOperationExecuteResult.js.map +1 -1
- package/dist/collection/lib/scenes/sceneViewStateLoader.js.map +1 -1
- package/dist/collection/lib/stencil.js.map +1 -1
- package/dist/collection/lib/storage.js.map +1 -1
- package/dist/collection/lib/stream/dispatcher.js.map +1 -1
- package/dist/collection/lib/stream/stream.js.map +1 -1
- package/dist/collection/lib/stream/utils.js.map +1 -1
- package/dist/collection/lib/teleportation/interactions.js.map +1 -1
- package/dist/collection/lib/templates.js.map +1 -1
- package/dist/collection/lib/token.js.map +1 -1
- package/dist/collection/lib/transforms/axis-lines.js.map +1 -1
- package/dist/collection/lib/transforms/axis-rotation.js.map +1 -1
- package/dist/collection/lib/transforms/axis-translation.js.map +1 -1
- package/dist/collection/lib/transforms/controller.js.map +1 -1
- package/dist/collection/lib/transforms/drawable.js.map +1 -1
- package/dist/collection/lib/transforms/hits.js.map +1 -1
- package/dist/collection/lib/transforms/line.js.map +1 -1
- package/dist/collection/lib/transforms/mesh.js.map +1 -1
- package/dist/collection/lib/transforms/shape.js.map +1 -1
- package/dist/collection/lib/transforms/transformation-delta.js.map +1 -1
- package/dist/collection/lib/transforms/util.js.map +1 -1
- package/dist/collection/lib/types/clippingPlanes.js.map +1 -1
- package/dist/collection/lib/types/depthBuffer.js.map +1 -1
- package/dist/collection/lib/types/featureMap.js.map +1 -1
- package/dist/collection/lib/types/flags.js.map +1 -1
- package/dist/collection/lib/types/frame.js.map +1 -1
- package/dist/collection/lib/types/frameCamera.js.map +1 -1
- package/dist/collection/lib/types/loadableResource.js.map +1 -1
- package/dist/collection/lib/types/orientation.js.map +1 -1
- package/dist/collection/lib/types/sceneViewStateIdentifier.js.map +1 -1
- package/dist/collection/lib/types/standardView.js.map +1 -1
- package/dist/collection/lib/types/stencilBuffer.js.map +1 -1
- package/dist/collection/lib/types/synchronizedClock.js.map +1 -1
- package/dist/collection/lib/types/viewport.js.map +1 -1
- package/dist/collection/lib/visibilityObserver.js.map +1 -1
- package/dist/collection/lib/volume-intersection/controller.js.map +1 -1
- package/dist/collection/lib/volume-intersection/interactions.js.map +1 -1
- package/dist/collection/lib/volume-intersection/model.js.map +1 -1
- package/dist/collection/lib/walk-mode/controller.js.map +1 -1
- package/dist/collection/lib/walk-mode/interactions.js.map +1 -1
- package/dist/collection/lib/walk-mode/model.js.map +1 -1
- package/dist/collection/lib/webgl/regl-component.js.map +1 -1
- package/dist/collection/testing/annotations.js.map +1 -1
- package/dist/collection/testing/canvases.js.map +1 -1
- package/dist/collection/testing/colors.js.map +1 -1
- package/dist/collection/testing/eventually.js.map +1 -1
- package/dist/collection/testing/fixtures.js.map +1 -1
- package/dist/collection/testing/grpc.js +3 -9
- package/dist/collection/testing/grpc.js.map +1 -1
- package/dist/collection/testing/modelViews.js.map +1 -1
- package/dist/collection/testing/pmi.js.map +1 -1
- package/dist/collection/testing/random.js.map +1 -1
- package/dist/collection/testing/resizeObserver.js.map +1 -1
- package/dist/collection/testing/scene-items-helper.js.map +1 -1
- package/dist/collection/testing/sceneTree.js.map +1 -1
- package/dist/collection/testing/viewer.js.map +1 -1
- package/dist/collection/testing/webgl.js.map +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/{p-St4ctu2K.js → p-3-bKfpqr.js} +2 -2
- package/dist/components/{p-St4ctu2K.js.map → p-3-bKfpqr.js.map} +1 -1
- package/dist/components/p-3DqRAYgO.js.map +1 -1
- package/dist/components/p-B-ToCp8-.js.map +1 -1
- package/dist/components/p-B156bTbY.js +5 -0
- package/dist/components/p-B156bTbY.js.map +1 -0
- package/dist/components/p-B9R0QWr4.js.map +1 -1
- package/dist/components/p-BCOD9yfw.js.map +1 -1
- package/dist/components/p-BHAaIoH5.js.map +1 -1
- package/dist/components/{p-Doltf1wO.js → p-BOJJZ1cN.js} +2 -2
- package/dist/components/p-BOJJZ1cN.js.map +1 -0
- package/dist/components/p-BkHp-aAR.js.map +1 -1
- package/dist/components/p-Bkm6H5uq.js.map +1 -1
- package/dist/components/p-C-VWDW9n.js.map +1 -1
- package/dist/components/p-C79PxobX.js.map +1 -1
- package/dist/components/p-CAugdB_8.js.map +1 -1
- package/dist/components/p-CEzVEgdQ.js.map +1 -1
- package/dist/components/p-CGCJ5hbJ.js.map +1 -1
- package/dist/components/p-COlcifvm.js.map +1 -1
- package/dist/components/p-CXTH3zrN.js.map +1 -1
- package/dist/components/p-CZCXdo3t.js.map +1 -1
- package/dist/components/p-Cd7kap5W.js.map +1 -1
- package/dist/components/p-CiSHWNC4.js.map +1 -1
- package/dist/components/p-CjG1fMh1.js.map +1 -1
- package/dist/components/p-CkjXRDNL.js.map +1 -1
- package/dist/components/p-D0KZu516.js.map +1 -1
- package/dist/components/p-D12q-fpW.js.map +1 -1
- package/dist/components/p-D33gVA2W.js.map +1 -1
- package/dist/components/p-DC86ZXai.js.map +1 -1
- package/dist/components/{p-B80hfIq6.js → p-DF4kEsJU.js} +2 -2
- package/dist/components/p-DF4kEsJU.js.map +1 -0
- package/dist/components/p-DRh4_Z-g.js.map +1 -1
- package/dist/components/p-DRnMrHWY.js.map +1 -1
- package/dist/components/{p-b0ZzPHz8.js → p-DUC59SSO.js} +2 -2
- package/dist/components/p-DUC59SSO.js.map +1 -0
- package/dist/components/p-DVW2WZTq.js.map +1 -1
- package/dist/components/p-DZI8pnGz.js.map +1 -1
- package/dist/components/p-Dbz9yUqC.js.map +1 -1
- package/dist/components/p-Yfi0i5Kj.js.map +1 -1
- package/dist/components/p-abSJ29r7.js.map +1 -1
- package/dist/components/p-ahjMltGJ.js.map +1 -1
- package/dist/components/p-bal2RLiw.js.map +1 -1
- package/dist/components/{p-BopQW1sA.js → p-oK38ynrd.js} +2 -2
- package/dist/components/p-oK38ynrd.js.map +1 -0
- package/dist/components/vertex-scene-tree-table-cell.js +1 -1
- package/dist/components/vertex-scene-tree-table-cell.js.map +1 -1
- package/dist/components/vertex-scene-tree-table-layout.js +1 -1
- package/dist/components/vertex-scene-tree.js +1 -1
- package/dist/components/vertex-scene-tree.js.map +1 -1
- package/dist/components/vertex-viewer-box-query-tool.js +1 -1
- package/dist/components/vertex-viewer-box-query-tool.js.map +1 -1
- package/dist/components/vertex-viewer-dom-element.js +1 -1
- package/dist/components/vertex-viewer-dom-group.js +1 -1
- package/dist/components/vertex-viewer-hit-result-indicator.js +1 -1
- package/dist/components/vertex-viewer-hit-result-indicator.js.map +1 -1
- package/dist/components/vertex-viewer-markup-tool.js.map +1 -1
- package/dist/components/vertex-viewer-markup.js +1 -1
- package/dist/components/vertex-viewer-markup.js.map +1 -1
- package/dist/components/vertex-viewer-measurement-details.js.map +1 -1
- package/dist/components/vertex-viewer-measurement-distance.js +1 -1
- package/dist/components/vertex-viewer-measurement-distance.js.map +1 -1
- package/dist/components/vertex-viewer-measurement-line.js +1 -1
- package/dist/components/vertex-viewer-measurement-overlays.js +1 -1
- package/dist/components/vertex-viewer-measurement-precise.js +1 -1
- package/dist/components/vertex-viewer-measurement-precise.js.map +1 -1
- package/dist/components/vertex-viewer-pin-group.js +1 -1
- package/dist/components/vertex-viewer-pin-tool.js +1 -1
- package/dist/components/vertex-viewer-pin-tool.js.map +1 -1
- package/dist/components/vertex-viewer-transform-widget.js +1 -1
- package/dist/components/vertex-viewer-transform-widget.js.map +1 -1
- package/dist/components/vertex-viewer-view-cube.js +1 -1
- package/dist/components/vertex-viewer-view-cube.js.map +1 -1
- package/dist/components/vertex-viewer-walk-mode-tool.js.map +1 -1
- package/dist/components/vertex-viewer.js +1 -1
- package/dist/components/vertex-viewer.js.map +1 -1
- package/dist/esm/config-lglER3mU.js.map +1 -1
- package/dist/esm/controller-BMWGs-I6.js.map +1 -1
- package/dist/esm/controller-Iymb_J2R.js.map +1 -1
- package/dist/esm/cursors-BbBDEutb.js.map +1 -1
- package/dist/esm/dom-B3m2VjbN.js.map +1 -1
- package/dist/esm/dom-DX6pEG54.js.map +1 -1
- package/dist/esm/entities-zRken6VS.js.map +1 -1
- package/dist/esm/geometry_pb-BiZRfctN.js.map +1 -1
- package/dist/esm/grpc-CZAYqbTu.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/model-BYW5YIye.js.map +1 -1
- package/dist/esm/model-CLtwOS0o.js.map +1 -1
- package/dist/esm/model-D0EJdHmW.js.map +1 -1
- package/dist/esm/model-DHJ5aE4y.js.map +1 -1
- package/dist/esm/multiElementInteractionHandler-DwjL-r55.js.map +1 -1
- package/dist/esm/overlays-BE1oqniA.js.map +1 -1
- package/dist/esm/queries-DEzCmbTD.js.map +1 -1
- package/dist/esm/regl-component-DmkowWhg.js.map +1 -1
- package/dist/esm/representation_pb-g4f0WC4k.js.map +1 -1
- package/dist/esm/results-CFB6nKu8.js.map +1 -1
- package/dist/esm/row-CiSHWNC4.js.map +1 -1
- package/dist/esm/stencil-BV-7pO4q.js.map +1 -1
- package/dist/esm/streamAttributes-Cp8PEH9A.js.map +1 -1
- package/dist/esm/templates-DRh4_Z-g.js.map +1 -1
- package/dist/esm/util-BCZZYmp4.js.map +1 -1
- package/dist/esm/utils-BvZ9-fs0.js.map +1 -1
- package/dist/esm/utils-DC86ZXai.js.map +1 -1
- package/dist/esm/utils-D_pIldrS.js.map +1 -1
- package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js +6 -8
- package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js.map +1 -1
- package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-cell.entry.js.map +1 -1
- package/dist/esm/vertex-scene-tree.entry.js +2 -2
- package/dist/esm/vertex-scene-tree.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-box-query-tool.entry.js +2 -2
- package/dist/esm/vertex-viewer-box-query-tool.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
- package/dist/esm/vertex-viewer-dom-element_2.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-dom-group.entry.js +1 -1
- package/dist/esm/vertex-viewer-dom-group.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-hit-result-indicator.entry.js +1 -1
- package/dist/esm/vertex-viewer-hit-result-indicator.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-icon.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-markup-arrow_3.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-markup-tool.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-markup.entry.js +1 -1
- package/dist/esm/vertex-viewer-markup.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-measurement-details.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-measurement-distance.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-measurement-line_2.entry.js +2 -2
- package/dist/esm/vertex-viewer-measurement-line_2.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-measurement-precise.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-pin-group.entry.js +2 -2
- package/dist/esm/vertex-viewer-pin-group.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-pin-label_2.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-pin-tool.entry.js +1 -1
- package/dist/esm/vertex-viewer-pin-tool.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-teleport-tool.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-transform-widget.entry.js +4 -5
- package/dist/esm/vertex-viewer-transform-widget.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-view-cube.entry.js +1 -1
- package/dist/esm/vertex-viewer-view-cube.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-walk-mode-tool.entry.js.map +1 -1
- package/dist/esm/vertex-viewer.entry.js +9 -5
- package/dist/esm/vertex-viewer.entry.js.map +1 -1
- package/dist/esm/viewport-C8WQZxvx.js.map +1 -1
- package/dist/types/regl-shape.d.ts +1 -1
- package/dist/viewer/index.esm.js.map +1 -1
- package/dist/viewer/{p-eac63070.entry.js → p-051b5154.entry.js} +2 -2
- package/dist/viewer/p-051b5154.entry.js.map +1 -0
- package/dist/viewer/{p-3d3a7eeb.entry.js → p-0984c51f.entry.js} +2 -2
- package/dist/viewer/{p-3d3a7eeb.entry.js.map → p-0984c51f.entry.js.map} +1 -1
- package/dist/viewer/{p-864f40c7.entry.js → p-11cf755a.entry.js} +2 -2
- package/dist/viewer/p-11cf755a.entry.js.map +1 -0
- package/dist/viewer/{p-29d14611.entry.js → p-16775f7d.entry.js} +2 -2
- package/dist/viewer/p-16775f7d.entry.js.map +1 -0
- package/dist/viewer/{p-5a85cae5.entry.js → p-1eb636f8.entry.js} +2 -2
- package/dist/viewer/p-1eb636f8.entry.js.map +1 -0
- package/dist/viewer/{p-e993f300.entry.js → p-228d1d43.entry.js} +2 -2
- package/dist/viewer/p-228d1d43.entry.js.map +1 -0
- package/dist/viewer/p-33f44cc1.entry.js.map +1 -1
- package/dist/viewer/{p-3300d3dc.entry.js → p-35601c85.entry.js} +2 -2
- package/dist/viewer/p-35601c85.entry.js.map +1 -0
- package/dist/viewer/p-47766566.entry.js.map +1 -1
- package/dist/viewer/p-6e3a6bbd.entry.js.map +1 -1
- package/dist/viewer/p-7f388b45.entry.js.map +1 -1
- package/dist/viewer/p-89544066.entry.js.map +1 -1
- package/dist/viewer/{p-07b99ac9.entry.js → p-8c369777.entry.js} +2 -2
- package/dist/viewer/p-8c369777.entry.js.map +1 -0
- package/dist/viewer/{p-e59983dc.entry.js → p-9835c5e2.entry.js} +2 -2
- package/dist/viewer/p-9835c5e2.entry.js.map +1 -0
- package/dist/viewer/{p-aa95e21a.entry.js → p-9d8ff406.entry.js} +2 -2
- package/dist/viewer/p-9d8ff406.entry.js.map +1 -0
- package/dist/viewer/p-BDvACHun.js.map +1 -1
- package/dist/viewer/p-BIkuvTVH.js.map +1 -1
- package/dist/viewer/p-BRPkbTVP.js.map +1 -1
- package/dist/viewer/p-BsBIynwj.js.map +1 -1
- package/dist/viewer/p-BxtKMwBH.js.map +1 -1
- package/dist/viewer/p-C4y4Noe-.js.map +1 -1
- package/dist/viewer/p-C6KrfydC.js.map +1 -1
- package/dist/viewer/p-C7dYsPFU.js.map +1 -1
- package/dist/viewer/p-C9Cqbq6H.js.map +1 -1
- package/dist/viewer/p-CVWO4w6b.js.map +1 -1
- package/dist/viewer/p-ChqXy0cG.js.map +1 -1
- package/dist/viewer/p-CiSHWNC4.js.map +1 -1
- package/dist/viewer/p-CjG1fMh1.js.map +1 -1
- package/dist/viewer/p-Cs5KOvOQ.js.map +1 -1
- package/dist/viewer/p-CyGlYje2.js.map +1 -1
- package/dist/viewer/p-D6eJC1q4.js.map +1 -1
- package/dist/viewer/p-DC86ZXai.js.map +1 -1
- package/dist/viewer/p-DRh4_Z-g.js.map +1 -1
- package/dist/viewer/p-DUX5FvBC.js.map +1 -1
- package/dist/viewer/p-DX6pEG54.js.map +1 -1
- package/dist/viewer/p-D_ixWHO7.js.map +1 -1
- package/dist/viewer/p-DacE-wPp.js.map +1 -1
- package/dist/viewer/p-Dp56p_jX.js.map +1 -1
- package/dist/viewer/p-EsKoKfmx.js.map +1 -1
- package/dist/viewer/p-F8e15or2.js.map +1 -1
- package/dist/viewer/p-Jfxh0jq9.js.map +1 -1
- package/dist/viewer/p-WPRMWirY.js.map +1 -1
- package/dist/viewer/p-_93RRNxT.js.map +1 -1
- package/dist/viewer/p-a8a81cba.entry.js +5 -0
- package/dist/viewer/p-a8a81cba.entry.js.map +1 -0
- package/dist/viewer/p-a9282481.entry.js.map +1 -1
- package/dist/viewer/{p-63f4f702.entry.js → p-c7e62d66.entry.js} +2 -2
- package/dist/viewer/p-c7e62d66.entry.js.map +1 -0
- package/dist/viewer/p-d37e647b.entry.js.map +1 -1
- package/dist/viewer/{p-302f2078.entry.js → p-d9fe788f.entry.js} +2 -2
- package/dist/viewer/p-d9fe788f.entry.js.map +1 -0
- package/dist/viewer/p-e9b83dae.entry.js.map +1 -1
- package/dist/viewer/{p-70f3629d.entry.js → p-f271dc4a.entry.js} +2 -2
- package/dist/viewer/p-f271dc4a.entry.js.map +1 -0
- package/dist/viewer/p-f65c0769.entry.js.map +1 -1
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +7 -7
- package/dist/components/p-B80hfIq6.js.map +0 -1
- package/dist/components/p-BopQW1sA.js.map +0 -1
- package/dist/components/p-DNtS2F8J.js +0 -5
- package/dist/components/p-DNtS2F8J.js.map +0 -1
- package/dist/components/p-Doltf1wO.js.map +0 -1
- package/dist/components/p-b0ZzPHz8.js.map +0 -1
- package/dist/viewer/p-07b99ac9.entry.js.map +0 -1
- package/dist/viewer/p-29d14611.entry.js.map +0 -1
- package/dist/viewer/p-302f2078.entry.js.map +0 -1
- package/dist/viewer/p-3300d3dc.entry.js.map +0 -1
- package/dist/viewer/p-5a85cae5.entry.js.map +0 -1
- package/dist/viewer/p-60c915e3.entry.js +0 -5
- package/dist/viewer/p-60c915e3.entry.js.map +0 -1
- package/dist/viewer/p-63f4f702.entry.js.map +0 -1
- package/dist/viewer/p-70f3629d.entry.js.map +0 -1
- package/dist/viewer/p-864f40c7.entry.js.map +0 -1
- package/dist/viewer/p-aa95e21a.entry.js.map +0 -1
- package/dist/viewer/p-e59983dc.entry.js.map +0 -1
- package/dist/viewer/p-e993f300.entry.js.map +0 -1
- package/dist/viewer/p-eac63070.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../../src/lib/pmi/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oDAAoD,CAAC;AAC3E,OAAO,EACL,yBAAyB,GAE1B,MAAM,iEAAiE,CAAC;AAIzE,OAAO,EAAE,cAAc,EAAe,YAAY,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,oCAAoC,EAAE,MAAM,UAAU,CAAC;AAShE,MAAM,OAAO,aAAa;IACxB,YACU,MAA0B,EAC1B,WAAwB,EACxB,gBAA0C;QAF1C,WAAM,GAAN,MAAM,CAAoB;QAC1B,gBAAW,GAAX,WAAW,CAAa;QACxB,qBAAgB,GAAhB,gBAAgB,CAA0B;IACjD,CAAC;IAEG,KAAK,CAAC,eAAe,CAAC,EAC3B,WAAW,EACX,MAAM,EACN,IAAI,GAAG,EAAE,MACiB,EAAE;QAC5B,MAAM,GAAG,GAA+B,MAAM,YAAY,CACxD,KAAK,EAAE,OAAO,EAAE,EAAE;YAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC9D,MAAM,GAAG,GAAG,IAAI,yBAAyB,EAAE,CAAC;YAE5C,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC5C,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACpC,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YACD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAElB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC,CACF,CAAC;QAEF,OAAO,oCAAoC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF","sourcesContent":["import { Pager } from '@vertexvis/scene-view-protos/core/protos/paging_pb';\nimport {\n ListPmiAnnotationsRequest,\n ListPmiAnnotationsResponse,\n} from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { SceneViewAPIClient } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb_service';\nimport { UUID } from '@vertexvis/utils';\n\nimport { createMetadata, JwtProvider, requestUnary } from '../grpc';\nimport { toUuid2l } from '../mappers/uuid';\nimport { mapListPmiAnnotationsResponseOrThrow } from './mapper';\nimport { PmiAnnotationListResponse } from './types';\n\nexport interface ListAnnotationsOptions {\n modelViewId?: UUID.UUID;\n cursor?: string;\n size?: number;\n}\n\nexport class PmiController {\n public constructor(\n private client: SceneViewAPIClient,\n private jwtProvider: JwtProvider,\n private deviceIdProvider: () => string | undefined
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../../src/lib/pmi/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oDAAoD,CAAC;AAC3E,OAAO,EACL,yBAAyB,GAE1B,MAAM,iEAAiE,CAAC;AAIzE,OAAO,EAAE,cAAc,EAAe,YAAY,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,oCAAoC,EAAE,MAAM,UAAU,CAAC;AAShE,MAAM,OAAO,aAAa;IACxB,YACU,MAA0B,EAC1B,WAAwB,EACxB,gBAA0C;QAF1C,WAAM,GAAN,MAAM,CAAoB;QAC1B,gBAAW,GAAX,WAAW,CAAa;QACxB,qBAAgB,GAAhB,gBAAgB,CAA0B;IACjD,CAAC;IAEG,KAAK,CAAC,eAAe,CAAC,EAC3B,WAAW,EACX,MAAM,EACN,IAAI,GAAG,EAAE,MACiB,EAAE;QAC5B,MAAM,GAAG,GAA+B,MAAM,YAAY,CACxD,KAAK,EAAE,OAAO,EAAE,EAAE;YAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC9D,MAAM,GAAG,GAAG,IAAI,yBAAyB,EAAE,CAAC;YAE5C,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC5C,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACpC,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YACD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAElB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC,CACF,CAAC;QAEF,OAAO,oCAAoC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF","sourcesContent":["import { Pager } from '@vertexvis/scene-view-protos/core/protos/paging_pb';\nimport {\n ListPmiAnnotationsRequest,\n ListPmiAnnotationsResponse,\n} from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { SceneViewAPIClient } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb_service';\nimport { UUID } from '@vertexvis/utils';\n\nimport { createMetadata, JwtProvider, requestUnary } from '../grpc';\nimport { toUuid2l } from '../mappers/uuid';\nimport { mapListPmiAnnotationsResponseOrThrow } from './mapper';\nimport { PmiAnnotationListResponse } from './types';\n\nexport interface ListAnnotationsOptions {\n modelViewId?: UUID.UUID;\n cursor?: string;\n size?: number;\n}\n\nexport class PmiController {\n public constructor(\n private client: SceneViewAPIClient,\n private jwtProvider: JwtProvider,\n private deviceIdProvider: () => string | undefined,\n ) {}\n\n public async listAnnotations({\n modelViewId,\n cursor,\n size = 50,\n }: ListAnnotationsOptions = {}): Promise<PmiAnnotationListResponse> {\n const res: ListPmiAnnotationsResponse = await requestUnary(\n async (handler) => {\n const deviceId = this.deviceIdProvider();\n const meta = await createMetadata(this.jwtProvider, deviceId);\n const req = new ListPmiAnnotationsRequest();\n\n if (modelViewId != null) {\n const modelViewId2l = toUuid2l(modelViewId);\n req.setModelViewId(modelViewId2l);\n }\n\n const page = new Pager();\n page.setLimit(size);\n if (cursor != null) {\n page.setCursor(cursor);\n }\n req.setPage(page);\n\n this.client.listPmiAnnotations(req, meta, handler);\n },\n );\n\n return mapListPmiAnnotationsResponseOrThrow(res.toObject());\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../../../src/lib/pmi/mapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrD,MAAM,gBAAgB,GACpB,CAAC,CAAC,YAAY,CACZ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EACvE,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAC7C,CAAC;AAEJ,MAAM,6BAA6B,GAG/B,CAAC,CAAC,YAAY,CAChB,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAC1D,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CACvC,EACD,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,cAAc,CAClE,6BAA6B,CAC9B,CAAC","sourcesContent":["import { PmiAnnotation as PBPmiAnnotation } from '@vertexvis/scene-view-protos/core/protos/model_views_pb';\nimport { ListPmiAnnotationsResponse } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { Mapper as M } from '@vertexvis/utils';\n\nimport { fromPbUuid2l, mapCursor } from '../mappers';\nimport { PmiAnnotation, PmiAnnotationListResponse } from './types';\n\nconst mapPmiAnnotation: M.Func<PBPmiAnnotation.AsObject, PmiAnnotation> =\n M.defineMapper(\n M.read(M.mapRequiredProp('id', fromPbUuid2l), M.getProp('displayName')),\n ([id, displayName]) => ({ id, displayName })
|
|
1
|
+
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../../../src/lib/pmi/mapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrD,MAAM,gBAAgB,GACpB,CAAC,CAAC,YAAY,CACZ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EACvE,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAC7C,CAAC;AAEJ,MAAM,6BAA6B,GAG/B,CAAC,CAAC,YAAY,CAChB,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAC1D,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CACvC,EACD,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,cAAc,CAClE,6BAA6B,CAC9B,CAAC","sourcesContent":["import { PmiAnnotation as PBPmiAnnotation } from '@vertexvis/scene-view-protos/core/protos/model_views_pb';\nimport { ListPmiAnnotationsResponse } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { Mapper as M } from '@vertexvis/utils';\n\nimport { fromPbUuid2l, mapCursor } from '../mappers';\nimport { PmiAnnotation, PmiAnnotationListResponse } from './types';\n\nconst mapPmiAnnotation: M.Func<PBPmiAnnotation.AsObject, PmiAnnotation> =\n M.defineMapper(\n M.read(M.mapRequiredProp('id', fromPbUuid2l), M.getProp('displayName')),\n ([id, displayName]) => ({ id, displayName }),\n );\n\nconst mapListPmiAnnotationsResponse: M.Func<\n ListPmiAnnotationsResponse.AsObject,\n PmiAnnotationListResponse\n> = M.defineMapper(\n M.read(\n M.mapProp('annotationsList', M.mapArray(mapPmiAnnotation)),\n M.mapProp('nextPageCursor', mapCursor),\n ),\n ([annotations, next]) => ({ annotations, paging: { next } }),\n);\n\nexport const mapListPmiAnnotationsResponseOrThrow = M.ifInvalidThrow(\n mapListPmiAnnotationsResponse,\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/canvas.ts"],"names":[],"mappings":"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","sourcesContent":["import { Dimensions } from '@vertexvis/geometry';\n\nimport { Timing, TimingMeter } from '../meters';\nimport { StencilBufferManager, Viewport } from '../types';\nimport { Frame } from '../types/frame';\nimport { HtmlImage, loadImageBytes } from './imageLoaders';\nimport { FrameRenderer } from './renderer';\n\nconst REPORTING_INTERVAL_MS = 1000;\n\nexport interface DrawFrame {\n canvas: CanvasRenderingContext2D;\n canvasDimensions: Dimensions.Dimensions;\n frame: Frame;\n viewport: Viewport;\n predicate?: () => boolean;\n beforeDraw?: VoidFunction;\n}\n\nexport type CanvasRenderer = FrameRenderer<DrawFrame, Frame | undefined>;\n\nexport type ReportTimingsCallback = (timing: Timing[]) => void;\n\nfunction drawImage(image: HtmlImage, data: DrawFrame): void {\n const rect = data.viewport.calculateDrawRect(data.frame.image);\n\n data.canvas.clearRect(\n 0,\n 0,\n data.canvasDimensions.width,\n data.canvasDimensions.height\n );\n data.canvas.drawImage(image.image, rect.x, rect.y, rect.width, rect.height);\n}\n\nfunction reportTimings(\n meter: TimingMeter,\n callback: ReportTimingsCallback\n): void {\n const timings = meter.takeMeasurements();\n\n if (timings.length > 0) {\n callback(timings);\n }\n}\n\nexport function measureCanvasRenderer(\n meter: TimingMeter,\n renderer: CanvasRenderer,\n logFrameRate: boolean,\n callback: ReportTimingsCallback,\n intervalMs: number = REPORTING_INTERVAL_MS\n): CanvasRenderer {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let timer: any;\n let renderCount = 0;\n let fpsFrameCount: number | undefined;\n let fpsHistory: number[] = [];\n\n function start(): void {\n renderCount++;\n if (timer == null) {\n timer = setInterval(() => {\n reportTimings(meter, callback);\n if (renderCount === 0) {\n clearTimer();\n }\n }, intervalMs);\n }\n }\n\n function end(): void {\n renderCount--;\n }\n\n function clearTimer(): void {\n if (timer != null) {\n clearInterval(timer);\n timer = undefined;\n }\n }\n\n /* istanbul ignore next */\n if (logFrameRate) {\n setInterval(() => {\n if (fpsFrameCount != null) {\n if (fpsHistory.length === 5) {\n fpsHistory = [...fpsHistory.slice(1), fpsFrameCount];\n } else {\n fpsHistory.push(fpsFrameCount);\n }\n\n const avgFps =\n fpsHistory.reduce((res, num) => res + num) / fpsHistory.length;\n console.debug(`Paint rate: ${fpsFrameCount}fps`);\n console.debug(`Paint rate (avg): ${avgFps}`);\n fpsFrameCount = undefined;\n }\n }, 1000);\n }\n\n return (data) => {\n start();\n return meter\n .measure(async () => {\n const frame = await renderer(data);\n fpsFrameCount = fpsFrameCount == null ? 1 : fpsFrameCount + 1;\n return frame;\n })\n .finally(() => end());\n };\n}\n\nexport function createCanvasRenderer(): CanvasRenderer {\n let accumulatedCorrelationIds: string[] = [];\n\n function addCorrelationIds(frame: Frame | undefined): Frame | undefined {\n if (frame != null) {\n const frameWithCorrelationIds = frame.copy({\n correlationIds: [\n ...frame.correlationIds,\n ...accumulatedCorrelationIds.filter(\n (id) => !frame.correlationIds.includes(id)\n ),\n ],\n });\n accumulatedCorrelationIds = [];\n\n return frameWithCorrelationIds;\n }\n return frame;\n }\n\n function loadFrame(): (data: DrawFrame) => Promise<HtmlImage | undefined> {\n let lastLoadedFrameNumber = -1;\n\n return async (data: DrawFrame): Promise<HtmlImage | undefined> => {\n if (data.frame.sequenceNumber > lastLoadedFrameNumber) {\n const image = await loadImageBytes(data.frame.image.imageBytes);\n\n lastLoadedFrameNumber = data.frame.sequenceNumber;\n\n return image;\n }\n };\n }\n\n function drawFrame(): (\n data: DrawFrame,\n image?: HtmlImage\n ) => Promise<Frame | undefined> {\n let lastDrawnFrameNumber = -1;\n\n return async (\n data: DrawFrame,\n image?: HtmlImage\n ): Promise<Frame | undefined> => {\n if (image != null && data.frame.sequenceNumber > lastDrawnFrameNumber) {\n lastDrawnFrameNumber = data.frame.sequenceNumber;\n\n data.beforeDraw?.();\n drawImage(image, data);\n\n image.dispose();\n return data.frame;\n }\n image?.dispose();\n };\n }\n\n const load = loadFrame();\n const draw = drawFrame();\n\n return async (data) => {\n const predicatePassing = data.predicate?.() ?? true;\n\n accumulatedCorrelationIds = [\n ...accumulatedCorrelationIds,\n ...data.frame.correlationIds,\n ];\n\n if (predicatePassing) {\n return load(data).then((image) =>\n draw(data, image).then(addCorrelationIds)\n );\n }\n };\n}\n\nexport function debugStencilBuffer(\n stencilManager: StencilBufferManager,\n drawStencil: () => boolean,\n renderer: CanvasRenderer\n): CanvasRenderer {\n return async (data) => {\n const frame = await renderer(data);\n\n if (drawStencil()) {\n const stencil = await stencilManager.fetch();\n if (stencil != null) {\n const rect = data.viewport.calculateDrawRect(stencil);\n const stencilImage = await loadImageBytes(stencil.imageBytes);\n data.canvas.globalAlpha = 0.25;\n data.canvas.drawImage(\n stencilImage.image,\n rect.x,\n rect.y,\n rect.width,\n rect.height\n );\n data.canvas.globalAlpha = 1;\n stencilImage.dispose();\n }\n }\n\n return frame;\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/canvas.ts"],"names":[],"mappings":"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","sourcesContent":["import { Dimensions } from '@vertexvis/geometry';\n\nimport { Timing, TimingMeter } from '../meters';\nimport { StencilBufferManager, Viewport } from '../types';\nimport { Frame } from '../types/frame';\nimport { HtmlImage, loadImageBytes } from './imageLoaders';\nimport { FrameRenderer } from './renderer';\n\nconst REPORTING_INTERVAL_MS = 1000;\n\nexport interface DrawFrame {\n canvas: CanvasRenderingContext2D;\n canvasDimensions: Dimensions.Dimensions;\n frame: Frame;\n viewport: Viewport;\n predicate?: () => boolean;\n beforeDraw?: VoidFunction;\n}\n\nexport type CanvasRenderer = FrameRenderer<DrawFrame, Frame | undefined>;\n\nexport type ReportTimingsCallback = (timing: Timing[]) => void;\n\nfunction drawImage(image: HtmlImage, data: DrawFrame): void {\n const rect = data.viewport.calculateDrawRect(data.frame.image);\n\n data.canvas.clearRect(\n 0,\n 0,\n data.canvasDimensions.width,\n data.canvasDimensions.height,\n );\n data.canvas.drawImage(image.image, rect.x, rect.y, rect.width, rect.height);\n}\n\nfunction reportTimings(\n meter: TimingMeter,\n callback: ReportTimingsCallback,\n): void {\n const timings = meter.takeMeasurements();\n\n if (timings.length > 0) {\n callback(timings);\n }\n}\n\nexport function measureCanvasRenderer(\n meter: TimingMeter,\n renderer: CanvasRenderer,\n logFrameRate: boolean,\n callback: ReportTimingsCallback,\n intervalMs: number = REPORTING_INTERVAL_MS,\n): CanvasRenderer {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let timer: any;\n let renderCount = 0;\n let fpsFrameCount: number | undefined;\n let fpsHistory: number[] = [];\n\n function start(): void {\n renderCount++;\n if (timer == null) {\n timer = setInterval(() => {\n reportTimings(meter, callback);\n if (renderCount === 0) {\n clearTimer();\n }\n }, intervalMs);\n }\n }\n\n function end(): void {\n renderCount--;\n }\n\n function clearTimer(): void {\n if (timer != null) {\n clearInterval(timer);\n timer = undefined;\n }\n }\n\n /* istanbul ignore next */\n if (logFrameRate) {\n setInterval(() => {\n if (fpsFrameCount != null) {\n if (fpsHistory.length === 5) {\n fpsHistory = [...fpsHistory.slice(1), fpsFrameCount];\n } else {\n fpsHistory.push(fpsFrameCount);\n }\n\n const avgFps =\n fpsHistory.reduce((res, num) => res + num) / fpsHistory.length;\n console.debug(`Paint rate: ${fpsFrameCount}fps`);\n console.debug(`Paint rate (avg): ${avgFps}`);\n fpsFrameCount = undefined;\n }\n }, 1000);\n }\n\n return (data) => {\n start();\n return meter\n .measure(async () => {\n const frame = await renderer(data);\n fpsFrameCount = fpsFrameCount == null ? 1 : fpsFrameCount + 1;\n return frame;\n })\n .finally(() => end());\n };\n}\n\nexport function createCanvasRenderer(): CanvasRenderer {\n let accumulatedCorrelationIds: string[] = [];\n\n function addCorrelationIds(frame: Frame | undefined): Frame | undefined {\n if (frame != null) {\n const frameWithCorrelationIds = frame.copy({\n correlationIds: [\n ...frame.correlationIds,\n ...accumulatedCorrelationIds.filter(\n (id) => !frame.correlationIds.includes(id),\n ),\n ],\n });\n accumulatedCorrelationIds = [];\n\n return frameWithCorrelationIds;\n }\n return frame;\n }\n\n function loadFrame(): (data: DrawFrame) => Promise<HtmlImage | undefined> {\n let lastLoadedFrameNumber = -1;\n\n return async (data: DrawFrame): Promise<HtmlImage | undefined> => {\n if (data.frame.sequenceNumber > lastLoadedFrameNumber) {\n const image = await loadImageBytes(data.frame.image.imageBytes);\n\n lastLoadedFrameNumber = data.frame.sequenceNumber;\n\n return image;\n }\n };\n }\n\n function drawFrame(): (\n data: DrawFrame,\n image?: HtmlImage,\n ) => Promise<Frame | undefined> {\n let lastDrawnFrameNumber = -1;\n\n return async (\n data: DrawFrame,\n image?: HtmlImage,\n ): Promise<Frame | undefined> => {\n if (image != null && data.frame.sequenceNumber > lastDrawnFrameNumber) {\n lastDrawnFrameNumber = data.frame.sequenceNumber;\n\n data.beforeDraw?.();\n drawImage(image, data);\n\n image.dispose();\n return data.frame;\n }\n image?.dispose();\n };\n }\n\n const load = loadFrame();\n const draw = drawFrame();\n\n return async (data) => {\n const predicatePassing = data.predicate?.() ?? true;\n\n accumulatedCorrelationIds = [\n ...accumulatedCorrelationIds,\n ...data.frame.correlationIds,\n ];\n\n if (predicatePassing) {\n return load(data).then((image) =>\n draw(data, image).then(addCorrelationIds),\n );\n }\n };\n}\n\nexport function debugStencilBuffer(\n stencilManager: StencilBufferManager,\n drawStencil: () => boolean,\n renderer: CanvasRenderer,\n): CanvasRenderer {\n return async (data) => {\n const frame = await renderer(data);\n\n if (drawStencil()) {\n const stencil = await stencilManager.fetch();\n if (stencil != null) {\n const rect = data.viewport.calculateDrawRect(stencil);\n const stencilImage = await loadImageBytes(stencil.imageBytes);\n data.canvas.globalAlpha = 0.25;\n data.canvas.drawImage(\n stencilImage.image,\n rect.x,\n rect.y,\n rect.width,\n rect.height,\n );\n data.canvas.globalAlpha = 1;\n stencilImage.dispose();\n }\n }\n\n return frame;\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageLoaders.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/imageLoaders.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAM3C,SAAS,UAAU,CAAC,KAAiB;IACnC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAS,4BAA4B,CACnC,SAAqB;IAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE1C,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAClC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;YAC7C,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACnC,MAAM,CAAC,IAAI,cAAc,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACxD,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,SAAqB;IAErB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAsB;IACnD,IAAI,MAAM,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;QACrC,OAAO,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,OAAO,4BAA4B,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;AACH,CAAC","sourcesContent":["import { Disposable } from '@vertexvis/utils';\n\nimport { ImageLoadError } from '../errors';\n\nexport interface HtmlImage extends Disposable {\n image: HTMLImageElement | ImageBitmap;\n}\n\nfunction asBlobPart(bytes: Uint8Array): ArrayBuffer {\n const copy = new Uint8Array(bytes.byteLength);\n copy.set(bytes);\n return copy.buffer;\n}\n\nfunction loadImageBytesAsImageElement(\n imageData: Uint8Array
|
|
1
|
+
{"version":3,"file":"imageLoaders.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/imageLoaders.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAM3C,SAAS,UAAU,CAAC,KAAiB;IACnC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED,SAAS,4BAA4B,CACnC,SAAqB;IAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE1C,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAClC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;YAC7C,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACnC,MAAM,CAAC,IAAI,cAAc,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACxD,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,SAAqB;IAErB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAsB;IACnD,IAAI,MAAM,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;QACrC,OAAO,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,OAAO,4BAA4B,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;AACH,CAAC","sourcesContent":["import { Disposable } from '@vertexvis/utils';\n\nimport { ImageLoadError } from '../errors';\n\nexport interface HtmlImage extends Disposable {\n image: HTMLImageElement | ImageBitmap;\n}\n\nfunction asBlobPart(bytes: Uint8Array): ArrayBuffer {\n const copy = new Uint8Array(bytes.byteLength);\n copy.set(bytes);\n return copy.buffer;\n}\n\nfunction loadImageBytesAsImageElement(\n imageData: Uint8Array,\n): Promise<HtmlImage> {\n return new Promise((resolve, reject) => {\n const blob = new Blob([asBlobPart(imageData)]);\n const blobUrl = URL.createObjectURL(blob);\n\n const image = new Image();\n image.addEventListener('load', () => {\n resolve({ image, dispose: () => undefined });\n URL.revokeObjectURL(blobUrl);\n });\n image.addEventListener('error', () => {\n reject(new ImageLoadError('Failed to load image data'));\n URL.revokeObjectURL(blobUrl);\n });\n\n image.src = blobUrl;\n });\n}\n\nasync function loadImageBytesAsImageBitmap(\n imageData: Uint8Array,\n): Promise<HtmlImage> {\n const blob = new Blob([asBlobPart(imageData)]);\n const bitmap = await window.createImageBitmap(blob);\n return { image: bitmap, dispose: () => bitmap.close() };\n}\n\nexport function loadImageBytes(imageBytes: Uint8Array): Promise<HtmlImage> {\n if (window.createImageBitmap != null) {\n return loadImageBytesAsImageBitmap(imageBytes);\n } else {\n return loadImageBytesAsImageElement(imageBytes);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrices.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/matrices.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @see https://openframeworks.cc/documentation/math/ofMatrix4x4/\n * @see https://github.com/openframeworks/openFrameworks/blob/356612673304e2f8b0584bc4080b58ee36db62f7/libs/openFrameworks/math/ofMatrix4x4.cpp\n */\n\nimport { Angle, Matrix4, Vector3 } from '@vertexvis/geometry';\n\nimport { FrameCamera } from '../types';\nimport { isOrthographicFrameCamera } from '../types/frameCamera';\n\n/**\n * Matrix becomes a perspective projection matrix.\n *\n * Related to: glFrustum. The viewing volume is frustum-shaped and defined by\n * the six parameters. Left, right, top, and bottom specify coordinates in the\n * zNear clipping plane where the frustum edges intersect it, and the zNear and\n * zFar parameters define the forward distances of the view volume. The\n * resulting volume can be vertically and horizontally asymmetrical around the\n * center of the near plane.\n *\n * @param left The left coordinate at near.\n * @param right The right coordinate at near.\n * @param top The top coordinate at near.\n * @param bottom The bottom coordinate at near.\n * @param near The near Z value.\n * @param far The far Z value.\n * @returns A matrix.\n */\nexport function makeFrustumMatrix(\n left: number,\n right: number,\n top: number,\n bottom: number,\n near: number,\n far: number
|
|
1
|
+
{"version":3,"file":"matrices.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/matrices.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @see https://openframeworks.cc/documentation/math/ofMatrix4x4/\n * @see https://github.com/openframeworks/openFrameworks/blob/356612673304e2f8b0584bc4080b58ee36db62f7/libs/openFrameworks/math/ofMatrix4x4.cpp\n */\n\nimport { Angle, Matrix4, Vector3 } from '@vertexvis/geometry';\n\nimport { FrameCamera } from '../types';\nimport { isOrthographicFrameCamera } from '../types/frameCamera';\n\n/**\n * Matrix becomes a perspective projection matrix.\n *\n * Related to: glFrustum. The viewing volume is frustum-shaped and defined by\n * the six parameters. Left, right, top, and bottom specify coordinates in the\n * zNear clipping plane where the frustum edges intersect it, and the zNear and\n * zFar parameters define the forward distances of the view volume. The\n * resulting volume can be vertically and horizontally asymmetrical around the\n * center of the near plane.\n *\n * @param left The left coordinate at near.\n * @param right The right coordinate at near.\n * @param top The top coordinate at near.\n * @param bottom The bottom coordinate at near.\n * @param near The near Z value.\n * @param far The far Z value.\n * @returns A matrix.\n */\nexport function makeFrustumMatrix(\n left: number,\n right: number,\n top: number,\n bottom: number,\n near: number,\n far: number,\n): Matrix4.Matrix4 {\n const a = (right + left) / (right - left);\n const b = (top + bottom) / (top - bottom);\n const c = -(far + near) / (far - near);\n const d = (-2 * far * near) / (far - near);\n\n /* eslint-disable prettier/prettier */\n return [\n (2 * near) / (right - left), 0, a, 0,\n 0, (2 * near) / (top - bottom), b, 0,\n 0, 0, c, d,\n 0, 0, -1, 0\n ];\n /* eslint-enable prettier/prettier */\n}\n\n/**\n * Matrix becomes a perspective projection matrix.\n *\n * Related to: gluPerspective. The viewing volume is frustum-shaped amd defined\n * by the four parameters. The fovy and aspect ratio are used to compute the\n * positions of the left, right, top, and bottom sides of the viewing volume in\n * the zNear plane. The fovy is the y field-of-view, the angle made by the top\n * and bottom sides of frustum if they were to intersect. The aspect ratio is\n * the width of the frustum divided by its height. Note that the resulting\n * volume is both vertically and horizontally symmetrical around the center of\n * the near plane.\n *\n * @param near The near Z value.\n * @param far The far Z value.\n * @param fovY The field of view.\n * @param aspect The aspect ratio.\n * @returns A matrix.\n */\nexport function makePerspectiveMatrix(\n near: number,\n far: number,\n fovY: number,\n aspect: number,\n): Matrix4.Matrix4 {\n const ymax = near * Math.tan(Angle.toRadians(fovY / 2.0));\n const xmax = ymax * aspect;\n\n const left = -xmax;\n const right = xmax;\n const top = ymax;\n const bottom = -ymax;\n\n return makeFrustumMatrix(left, right, top, bottom, near, far);\n}\n\n/**\n * Matrix becomes a combination of an inverse translation and rotation.\n *\n * Related to: gluLookAt. This creates the inverse of makeLookAtMatrix. The\n * matrix will be an opposite translation from the 'eye' position, and it will\n * rotate things in the opposite direction of the eye-to-center orientation.\n * This is definitely confusing, but the main reason to use this transform is to\n * set up a view matrix for a camera that's looking at a certain point. To\n * achieve the effect of moving the camera somewhere and rotating it so that it\n * points at something, the rest of the world is moved in the opposite direction\n * and rotated in the opposite way around the camera. This way, you get the same\n * effect as moving the actual camera, but all the projection math can still be\n * done with the camera positioned at the origin (which makes it way simpler).\n *\n * @param camera The camera to compute.\n * @returns A matrix.\n */\nexport function makeLookAtViewMatrix(\n camera: FrameCamera.FrameCamera,\n): Matrix4.Matrix4 {\n const { lookAt, up } = camera;\n const position = isOrthographicFrameCamera(camera)\n ? Vector3.add(camera.lookAt, Vector3.negate(camera.viewVector))\n : camera.position;\n\n const z = Vector3.normalize(Vector3.subtract(position, lookAt));\n const x = Vector3.normalize(Vector3.cross(up, z));\n const y = Vector3.cross(z, x);\n\n /* eslint-disable prettier/prettier */\n return [\n x.x, x.y, x.z, -Vector3.dot(x, position),\n y.x, y.y, y.z, -Vector3.dot(y, position),\n z.x, z.y, z.z, -Vector3.dot(z, position),\n 0 , 0 , 0 , 1,\n ];\n /* eslint-enable prettier/prettier */\n}\n\n/**\n * Matrix becomes a combination of translation and rotation.\n *\n * Matrix becomes a combination of a translation to the position of 'eye' and a\n * rotation matrix which orients an object to point towards 'center' along its\n * z-axis. Use this function if you want an object to look at a point from\n * another point in space.\n *\n * @param camera The camera to compute the look at matrix for.\n * @returns A matrix.\n */\nexport function makeLookAtMatrix(\n camera: FrameCamera.FrameCamera,\n): Matrix4.Matrix4 {\n const { lookAt, up } = camera;\n const position = isOrthographicFrameCamera(camera)\n ? Vector3.add(camera.lookAt, Vector3.negate(camera.viewVector))\n : camera.position;\n\n const z = Vector3.normalize(Vector3.subtract(position, lookAt));\n const x = Vector3.normalize(Vector3.cross(up, z));\n const y = Vector3.cross(z, x);\n\n /* eslint-disable prettier/prettier */\n return [\n x.x, y.x, z.x, position.x,\n x.y, y.y, z.y, position.y,\n x.z, y.z, z.z, position.z,\n 0 , 0 , 0 , 1\n ];\n /* eslint-enable prettier/prettier */\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/timing.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAGX,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW;AAEhD,SAAS,8BAA8B,CACrC,aAAkD;IAElD,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;QAC9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAErD,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YACrD,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;gBACtB,OAAO,QAAQ,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CACV,yDAAyD,oBAAoB,eAAe,MAAM,CAAC,WAAW,EAAE,iBAAiB,UAAU,CAAC,WAAW,EAAE,iBAAiB,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE,GAAG,CACjN,CAAC;oBAEF,WAAW,GAAG,IAAI,CAAC;oBACnB,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC,CAAC;gBACvE,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,GAAc,EACd,aAAkD;IAElD,MAAM,qBAAqB,GAAG,8BAA8B,CAAC,aAAa,CAAC,CAAC;IAC5E,OAAO,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE;gBACrB,SAAS,EAAE;oBACT,qBAAqB,EAAE,qBAAqB,CAAC,MAAM,CAAC;iBACrD;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import { google } from '@vertexvis/frame-streaming-protos';\nimport {\n protoToDate,\n RequestMessageHandler,\n StreamApi,\n toProtoDuration,\n} from '@vertexvis/stream-api';\n\nimport { SynchronizedClock } from '../types';\nimport { ifDrawFrame, ifRequestId } from './utils';\n\nconst MUTE_WARNING_SECONDS = 1 * 60; // 1 minute\n\nfunction calculateSendToReceiveDuration(\n clockProvider: () => SynchronizedClock | undefined
|
|
1
|
+
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/timing.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAGX,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW;AAEhD,SAAS,8BAA8B,CACrC,aAAkD;IAElD,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;QAC9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAErD,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YACrD,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;gBACtB,OAAO,QAAQ,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CACV,yDAAyD,oBAAoB,eAAe,MAAM,CAAC,WAAW,EAAE,iBAAiB,UAAU,CAAC,WAAW,EAAE,iBAAiB,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE,GAAG,CACjN,CAAC;oBAEF,WAAW,GAAG,IAAI,CAAC;oBACnB,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC,CAAC;gBACvE,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,GAAc,EACd,aAAkD;IAElD,MAAM,qBAAqB,GAAG,8BAA8B,CAAC,aAAa,CAAC,CAAC;IAC5E,OAAO,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE;gBACrB,SAAS,EAAE;oBACT,qBAAqB,EAAE,qBAAqB,CAAC,MAAM,CAAC;iBACrD;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC","sourcesContent":["import { google } from '@vertexvis/frame-streaming-protos';\nimport {\n protoToDate,\n RequestMessageHandler,\n StreamApi,\n toProtoDuration,\n} from '@vertexvis/stream-api';\n\nimport { SynchronizedClock } from '../types';\nimport { ifDrawFrame, ifRequestId } from './utils';\n\nconst MUTE_WARNING_SECONDS = 1 * 60; // 1 minute\n\nfunction calculateSendToReceiveDuration(\n clockProvider: () => SynchronizedClock | undefined,\n): (sentAt: Date) => google.protobuf.IDuration | undefined {\n let muteWarning = false;\n\n return (sentAt) => {\n const clock = clockProvider();\n if (clock != null) {\n const receivedAt = clock.remoteTime(new Date(Date.now()));\n const duration = toProtoDuration(sentAt, receivedAt);\n\n const durationInMs = protoToDate(duration).getTime();\n if (durationInMs >= 0) {\n return duration;\n } else {\n if (!muteWarning) {\n console.warn(\n `Possible erroneous send to receive timing. Muting for ${MUTE_WARNING_SECONDS}s. [sent-at=${sentAt.toISOString()}, received-at=${receivedAt.toISOString()}, remote-time=${clock.knownRemoteTime.toISOString()}]`,\n );\n\n muteWarning = true;\n setTimeout(() => (muteWarning = false), MUTE_WARNING_SECONDS * 1000);\n }\n return undefined;\n }\n }\n };\n}\n\n/**\n * Returns a request handler that will acknowledge any frame requests that it\n * receives.\n *\n * @param api The client to acknowledge frames from.\n * @param clock A function that returns a synchronized clock.\n */\nexport function acknowledgeFrameRequests(\n api: StreamApi,\n clockProvider: () => SynchronizedClock | undefined,\n): RequestMessageHandler {\n const sendToReceiveDuration = calculateSendToReceiveDuration(clockProvider);\n return ifRequestId((reqId) =>\n ifDrawFrame((_) => (req) => {\n const sentAt = protoToDate(req.sentAtTime);\n if (sentAt != null) {\n api.replyResult(reqId, {\n drawFrame: {\n sendToReceiveDuration: sendToReceiveDuration(sentAt),\n },\n });\n }\n }),\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/utils.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,WAAW,CACzB,CAAwC;IAExC,OAAO,CAAC,GAAG,EAAE,EAAE;;QACb,MAAM,KAAK,GAAG,MAAA,GAAG,CAAC,OAAO,CAAC,SAAS,0CAAE,KAAK,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,CAE0B;IAE1B,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QAElC,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport { RequestMessageHandler } from '@vertexvis/stream-api';\n\nexport function ifRequestId(\n f: (id: string) => RequestMessageHandler
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/utils.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,WAAW,CACzB,CAAwC;IAExC,OAAO,CAAC,GAAG,EAAE,EAAE;;QACb,MAAM,KAAK,GAAG,MAAA,GAAG,CAAC,OAAO,CAAC,SAAS,0CAAE,KAAK,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,CAE0B;IAE1B,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QAElC,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport { RequestMessageHandler } from '@vertexvis/stream-api';\n\nexport function ifRequestId(\n f: (id: string) => RequestMessageHandler,\n): RequestMessageHandler {\n return (req) => {\n const reqId = req.request.requestId?.value;\n if (reqId != null) {\n f(reqId)(req);\n }\n };\n}\n\nexport function ifDrawFrame(\n f: (\n frame: vertexvis.protobuf.stream.IDrawFramePayload,\n ) => RequestMessageHandler,\n): RequestMessageHandler {\n return (req) => {\n const { drawFrame } = req.request;\n\n if (drawFrame != null) {\n f(drawFrame)(req);\n }\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vectors.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,UAAU,mBAAmB,CACjC,UAA2B,EAC3B,cAA6C;IAE7C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC;IAEhD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,cAA+B,EAC/B,UAA2B,EAC3B,oBAAqC;IAErC,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CACzC,oBAAoB,EACpB,cAAc,CACf,CAAC;IACF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IACrE,MAAM,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,gBAAgB,GAAG,0BAA0B,CAAC;IAE7D,MAAM,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpE,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC;AAChE,CAAC","sourcesContent":["import { BoundingSphere, Vector3 } from '@vertexvis/geometry';\n\nexport function constrainViewVector(\n viewVector: Vector3.Vector3,\n boundingSphere: BoundingSphere.BoundingSphere
|
|
1
|
+
{"version":3,"file":"vectors.js","sourceRoot":"","sources":["../../../../../src/lib/rendering/vectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,UAAU,mBAAmB,CACjC,UAA2B,EAC3B,cAA6C;IAE7C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC;IAEhD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,cAA+B,EAC/B,UAA2B,EAC3B,oBAAqC;IAErC,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CACzC,oBAAoB,EACpB,cAAc,CACf,CAAC;IACF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IACrE,MAAM,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,gBAAgB,GAAG,0BAA0B,CAAC;IAE7D,MAAM,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpE,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC;AAChE,CAAC","sourcesContent":["import { BoundingSphere, Vector3 } from '@vertexvis/geometry';\n\nexport function constrainViewVector(\n viewVector: Vector3.Vector3,\n boundingSphere: BoundingSphere.BoundingSphere,\n): Vector3.Vector3 {\n const magnitude = Vector3.magnitude(viewVector);\n const scale = boundingSphere.radius / magnitude;\n\n return Vector3.scale(scale, viewVector);\n}\n\nexport function updateLookAtRelativeToBoundingBoxCenter(\n originalLookAt: Vector3.Vector3,\n viewVector: Vector3.Vector3,\n boundingSphereCenter: Vector3.Vector3,\n): Vector3.Vector3 {\n const updatedCenterPoint = Vector3.subtract(\n boundingSphereCenter,\n originalLookAt,\n );\n const orthogonalOffset = Vector3.dot(viewVector, updatedCenterPoint);\n const viewVectorMagnitudeSquared = Vector3.magnitudeSquared(viewVector);\n const offset = orthogonalOffset / viewVectorMagnitudeSquared;\n\n const scaledViewVectorForOffset = Vector3.scale(offset, viewVector);\n return Vector3.add(scaledViewVectorForOffset, originalLookAt);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../../src/lib/scene-items/controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Pager } from '@vertexvis/scene-tree-protos/core/protos/paging_pb';\nimport {\n GetSceneViewItemRequest,\n GetSceneViewItemResponse,\n ListSceneItemMetadataRequest,\n ListSceneItemMetadataResponse,\n} from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { SceneViewAPIClient } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb_service';\nimport { UUID } from '@vertexvis/utils';\nimport { FieldMask } from 'google-protobuf/google/protobuf/field_mask_pb';\n\nimport { createMetadata, JwtProvider, requestUnary } from '../grpc';\nimport { toUuid2l } from '../mappers/uuid';\nimport {\n mapGetSceneViewItemResponseOrThrow,\n mapListSceneItemMetadataResponseOrThrow,\n} from './mapper';\nimport {\n GetSceneViewItemOptions,\n ListSceneItemMetadataOptions,\n SceneItemMetadataResponse,\n SceneViewItem,\n} from './types';\n\nexport class SceneItemController {\n public constructor(\n private readonly client: SceneViewAPIClient,\n private readonly jwtProvider: JwtProvider,\n private readonly deviceIdProvider: () => string | undefined
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../../src/lib/scene-items/controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Pager } from '@vertexvis/scene-tree-protos/core/protos/paging_pb';\nimport {\n GetSceneViewItemRequest,\n GetSceneViewItemResponse,\n ListSceneItemMetadataRequest,\n ListSceneItemMetadataResponse,\n} from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { SceneViewAPIClient } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb_service';\nimport { UUID } from '@vertexvis/utils';\nimport { FieldMask } from 'google-protobuf/google/protobuf/field_mask_pb';\n\nimport { createMetadata, JwtProvider, requestUnary } from '../grpc';\nimport { toUuid2l } from '../mappers/uuid';\nimport {\n mapGetSceneViewItemResponseOrThrow,\n mapListSceneItemMetadataResponseOrThrow,\n} from './mapper';\nimport {\n GetSceneViewItemOptions,\n ListSceneItemMetadataOptions,\n SceneItemMetadataResponse,\n SceneViewItem,\n} from './types';\n\nexport class SceneItemController {\n public constructor(\n private readonly client: SceneViewAPIClient,\n private readonly jwtProvider: JwtProvider,\n private readonly deviceIdProvider: () => string | undefined,\n ) {}\n\n public async getSceneViewItem(\n itemId: UUID.UUID,\n viewId: UUID.UUID,\n getOptions: GetSceneViewItemOptions,\n ): Promise<SceneViewItem | undefined> {\n const res: GetSceneViewItemResponse = await requestUnary(\n async (handler) => {\n const deviceId = this.deviceIdProvider();\n const meta = await createMetadata(this.jwtProvider, deviceId);\n const req = new GetSceneViewItemRequest();\n\n // Set scene item and scene view ids\n req.setSceneItemId(toUuid2l(itemId));\n req.setViewId(toUuid2l(viewId));\n\n const additionalFields = new FieldMask();\n\n if (getOptions.includeBoundingBox) {\n additionalFields.addPaths('bounding_box');\n }\n if (getOptions.includeWorldTransform) {\n additionalFields.addPaths('world_transform');\n }\n if (getOptions.includeOverride) {\n additionalFields.addPaths('override');\n }\n\n req.setAdditionalFields(additionalFields);\n\n this.client.getSceneViewItem(req, meta, handler);\n },\n );\n return mapGetSceneViewItemResponseOrThrow(res.toObject());\n }\n\n public async listSceneItemMetadata(\n itemId: UUID.UUID,\n listByOptions: ListSceneItemMetadataOptions,\n ): Promise<SceneItemMetadataResponse> {\n const res: ListSceneItemMetadataResponse = await requestUnary(\n async (handler) => {\n const deviceId = this.deviceIdProvider();\n const meta = await createMetadata(this.jwtProvider, deviceId);\n const req = new ListSceneItemMetadataRequest();\n\n req.setItemId(toUuid2l(itemId));\n\n const pager = new Pager();\n if (listByOptions.size != null) {\n pager.setLimit(listByOptions.size);\n }\n if (listByOptions.cursor != null) {\n pager.setCursor(listByOptions.cursor);\n }\n req.setPager(pager);\n\n this.client.listSceneItemMetadata(req, meta, handler);\n },\n );\n return mapListSceneItemMetadataResponseOrThrow(res.toObject());\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../../../src/lib/scene-items/mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n PropertyEntry,\n PropertyKey,\n PropertyValue,\n PropertyValueDate,\n PropertyValueDouble,\n PropertyValueLong,\n SceneItemOverride as PBSceneItemOverride,\n SceneViewItem as PBSceneViewItem,\n} from '@vertexvis/scene-view-protos/sceneview/protos/domain_pb';\nimport {\n GetSceneViewItemResponse,\n ListSceneItemMetadataResponse,\n} from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { Mapper as M } from '@vertexvis/utils';\nimport { StringValue } from 'google-protobuf/google/protobuf/wrappers_pb';\n\nimport {\n fromPbBoolValue,\n fromPbBoundingBox3f,\n fromPbInstant,\n fromPbMatrix4f,\n fromPbStringValue,\n fromPbUuid2l,\n mapCursor,\n} from '../mappers';\nimport { fromPbMaterialOverride } from '../mappers/colorMaterial';\nimport {\n DomainPropertyEntry,\n DomainPropertyKey,\n DomainPropertyValue,\n SceneItemMetadataResponse,\n SceneViewItem,\n SceneViewItemOverride,\n} from './types';\n\nconst mapPropertyKey: M.Func<\n PropertyKey.AsObject,\n DomainPropertyKey | null | undefined\n> = M.defineMapper(\n M.read(M.requiredProp('name'), M.requiredProp('category')),\n ([name, category]) => ({ name, category })\n);\n\nconst mapGetStringValue: M.Func<StringValue.AsObject, DomainPropertyValue> =\n M.defineMapper(M.read(M.getProp('value')), ([value]) => ({\n type: 'string',\n value,\n }));\n\nconst mapStringValue: M.Func<\n PropertyValue.AsObject,\n DomainPropertyValue | null | undefined\n> = M.mapProp('string', M.ifDefined(mapGetStringValue));\n\nconst mapGetLongValue: M.Func<PropertyValueLong.AsObject, DomainPropertyValue> =\n M.defineMapper(M.read(M.getProp('value')), ([value]) => ({\n type: 'long',\n value,\n }));\n\nconst mapLongValue: M.Func<\n PropertyValue.AsObject,\n DomainPropertyValue | null | undefined\n> = M.mapProp('pb_long', M.ifDefined(mapGetLongValue));\n\nconst mapGetDoubleValue: M.Func<\n PropertyValueDouble.AsObject,\n DomainPropertyValue\n> = M.defineMapper(M.read(M.getProp('value')), ([value]) => ({\n type: 'double',\n value,\n}));\n\nconst mapDoubleValue: M.Func<\n PropertyValue.AsObject,\n DomainPropertyValue | null | undefined\n> = M.mapProp('pb_double', M.ifDefined(mapGetDoubleValue));\n\nconst mapGetTimestampValue: M.Func<\n PropertyValueDate.AsObject,\n DomainPropertyValue\n> = M.defineMapper(M.read(M.requiredProp('value')), ([value]) => ({\n type: 'timestamp',\n value: value,\n}));\n\nconst mapTimestampValue: M.Func<\n PropertyValue.AsObject,\n DomainPropertyValue | null | undefined\n> = M.mapProp('date', M.ifDefined(mapGetTimestampValue));\n\nconst mapPropertyValue: M.Func<\n PropertyValue.AsObject,\n DomainPropertyValue | null | undefined\n> = M.compose(\n M.pickFirst(mapStringValue, mapLongValue, mapDoubleValue, mapTimestampValue),\n M.required('value')\n);\n\nconst mapEntriesList: M.Func<PropertyEntry.AsObject, DomainPropertyEntry> =\n M.defineMapper(\n M.read(\n M.requiredProp('id'),\n M.mapProp('key', M.ifDefined(mapPropertyKey)),\n M.mapProp('value', M.ifDefined(mapPropertyValue))\n ),\n ([id, key, value]) => ({ id, key, value })\n );\n\nconst mapListSceneItemMetadataResponse: M.Func<\n ListSceneItemMetadataResponse.AsObject,\n SceneItemMetadataResponse\n> = M.defineMapper(\n M.read(\n M.mapProp('cursor', mapCursor),\n M.mapRequiredProp('entriesList', M.mapArray(mapEntriesList))\n ),\n ([cursor, entries]) => ({\n paging: {\n next: cursor,\n },\n entries,\n })\n);\n\nexport const mapListSceneItemMetadataResponseOrThrow = M.ifInvalidThrow(\n mapListSceneItemMetadataResponse\n);\n\nconst mapSceneViewItemOverride: M.Func<\n PBSceneItemOverride.AsObject,\n SceneViewItemOverride\n> = M.defineMapper(\n M.read(\n M.mapRequiredProp('id', fromPbUuid2l),\n M.mapRequiredProp('createdAt', fromPbInstant),\n M.mapProp('materialOverride', M.ifDefined(fromPbMaterialOverride)),\n M.mapProp('transform', M.ifDefined(fromPbMatrix4f)),\n M.mapProp('isVisible', M.ifDefined(fromPbBoolValue)),\n M.mapProp('isSelected', M.ifDefined(fromPbBoolValue)),\n M.mapProp('isPhantom', M.ifDefined(fromPbBoolValue)),\n M.mapProp('endItem', M.ifDefined(fromPbBoolValue))\n ),\n ([\n id,\n createdAt,\n materialOverride,\n transform,\n isVisible,\n isSelected,\n isPhantom,\n endItem,\n ]) => ({\n id,\n createdAt,\n materialOverride,\n transform,\n isVisible,\n isSelected,\n isPhantom,\n endItem,\n })\n);\n\nexport const mapSceneViewItem: M.Func<PBSceneViewItem.AsObject, SceneViewItem> =\n M.defineMapper(\n M.read(\n M.mapRequiredProp('id', fromPbUuid2l),\n M.mapRequiredProp('createdAt', fromPbInstant),\n M.mapRequiredProp('name', fromPbStringValue),\n M.mapProp('parentId', M.ifDefined(fromPbUuid2l)),\n M.mapProp('suppliedId', M.ifDefined(fromPbStringValue)),\n M.mapProp('boundingBox', M.ifDefined(fromPbBoundingBox3f)),\n M.mapProp('worldTransform', M.ifDefined(fromPbMatrix4f)),\n M.mapProp('override', M.ifDefined(mapSceneViewItemOverride))\n ),\n ([\n id,\n createdAt,\n name,\n parentId,\n suppliedId,\n boundingBox,\n worldTransform,\n override,\n ]) => ({\n id,\n createdAt,\n name,\n parentId: parentId ?? undefined,\n suppliedId,\n boundingBox,\n worldTransform,\n override,\n })\n );\n\nexport const mapGetSceneViewItemResponseOrThrow: M.ThrowIfInvalidFunc<\n GetSceneViewItemResponse.AsObject,\n SceneViewItem | undefined\n> = M.ifInvalidThrow(\n M.defineMapper(\n M.read(M.mapProp('item', M.ifDefined(mapSceneViewItem))),\n ([item]) => item ?? undefined\n )\n);\n"]}
|
|
1
|
+
{"version":3,"file":"mapper.js","sourceRoot":"","sources":["../../../../../src/lib/scene-items/mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n PropertyEntry,\n PropertyKey,\n PropertyValue,\n PropertyValueDate,\n PropertyValueDouble,\n PropertyValueLong,\n SceneItemOverride as PBSceneItemOverride,\n SceneViewItem as PBSceneViewItem,\n} from '@vertexvis/scene-view-protos/sceneview/protos/domain_pb';\nimport {\n GetSceneViewItemResponse,\n ListSceneItemMetadataResponse,\n} from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { Mapper as M } from '@vertexvis/utils';\nimport { StringValue } from 'google-protobuf/google/protobuf/wrappers_pb';\n\nimport {\n fromPbBoolValue,\n fromPbBoundingBox3f,\n fromPbInstant,\n fromPbMatrix4f,\n fromPbStringValue,\n fromPbUuid2l,\n mapCursor,\n} from '../mappers';\nimport { fromPbMaterialOverride } from '../mappers/colorMaterial';\nimport {\n DomainPropertyEntry,\n DomainPropertyKey,\n DomainPropertyValue,\n SceneItemMetadataResponse,\n SceneViewItem,\n SceneViewItemOverride,\n} from './types';\n\nconst mapPropertyKey: M.Func<\n PropertyKey.AsObject,\n DomainPropertyKey | null | undefined\n> = M.defineMapper(\n M.read(M.requiredProp('name'), M.requiredProp('category')),\n ([name, category]) => ({ name, category }),\n);\n\nconst mapGetStringValue: M.Func<StringValue.AsObject, DomainPropertyValue> =\n M.defineMapper(M.read(M.getProp('value')), ([value]) => ({\n type: 'string',\n value,\n }));\n\nconst mapStringValue: M.Func<\n PropertyValue.AsObject,\n DomainPropertyValue | null | undefined\n> = M.mapProp('string', M.ifDefined(mapGetStringValue));\n\nconst mapGetLongValue: M.Func<PropertyValueLong.AsObject, DomainPropertyValue> =\n M.defineMapper(M.read(M.getProp('value')), ([value]) => ({\n type: 'long',\n value,\n }));\n\nconst mapLongValue: M.Func<\n PropertyValue.AsObject,\n DomainPropertyValue | null | undefined\n> = M.mapProp('pb_long', M.ifDefined(mapGetLongValue));\n\nconst mapGetDoubleValue: M.Func<\n PropertyValueDouble.AsObject,\n DomainPropertyValue\n> = M.defineMapper(M.read(M.getProp('value')), ([value]) => ({\n type: 'double',\n value,\n}));\n\nconst mapDoubleValue: M.Func<\n PropertyValue.AsObject,\n DomainPropertyValue | null | undefined\n> = M.mapProp('pb_double', M.ifDefined(mapGetDoubleValue));\n\nconst mapGetTimestampValue: M.Func<\n PropertyValueDate.AsObject,\n DomainPropertyValue\n> = M.defineMapper(M.read(M.requiredProp('value')), ([value]) => ({\n type: 'timestamp',\n value: value,\n}));\n\nconst mapTimestampValue: M.Func<\n PropertyValue.AsObject,\n DomainPropertyValue | null | undefined\n> = M.mapProp('date', M.ifDefined(mapGetTimestampValue));\n\nconst mapPropertyValue: M.Func<\n PropertyValue.AsObject,\n DomainPropertyValue | null | undefined\n> = M.compose(\n M.pickFirst(mapStringValue, mapLongValue, mapDoubleValue, mapTimestampValue),\n M.required('value'),\n);\n\nconst mapEntriesList: M.Func<PropertyEntry.AsObject, DomainPropertyEntry> =\n M.defineMapper(\n M.read(\n M.requiredProp('id'),\n M.mapProp('key', M.ifDefined(mapPropertyKey)),\n M.mapProp('value', M.ifDefined(mapPropertyValue)),\n ),\n ([id, key, value]) => ({ id, key, value }),\n );\n\nconst mapListSceneItemMetadataResponse: M.Func<\n ListSceneItemMetadataResponse.AsObject,\n SceneItemMetadataResponse\n> = M.defineMapper(\n M.read(\n M.mapProp('cursor', mapCursor),\n M.mapRequiredProp('entriesList', M.mapArray(mapEntriesList)),\n ),\n ([cursor, entries]) => ({\n paging: {\n next: cursor,\n },\n entries,\n }),\n);\n\nexport const mapListSceneItemMetadataResponseOrThrow = M.ifInvalidThrow(\n mapListSceneItemMetadataResponse,\n);\n\nconst mapSceneViewItemOverride: M.Func<\n PBSceneItemOverride.AsObject,\n SceneViewItemOverride\n> = M.defineMapper(\n M.read(\n M.mapRequiredProp('id', fromPbUuid2l),\n M.mapRequiredProp('createdAt', fromPbInstant),\n M.mapProp('materialOverride', M.ifDefined(fromPbMaterialOverride)),\n M.mapProp('transform', M.ifDefined(fromPbMatrix4f)),\n M.mapProp('isVisible', M.ifDefined(fromPbBoolValue)),\n M.mapProp('isSelected', M.ifDefined(fromPbBoolValue)),\n M.mapProp('isPhantom', M.ifDefined(fromPbBoolValue)),\n M.mapProp('endItem', M.ifDefined(fromPbBoolValue)),\n ),\n ([\n id,\n createdAt,\n materialOverride,\n transform,\n isVisible,\n isSelected,\n isPhantom,\n endItem,\n ]) => ({\n id,\n createdAt,\n materialOverride,\n transform,\n isVisible,\n isSelected,\n isPhantom,\n endItem,\n }),\n);\n\nexport const mapSceneViewItem: M.Func<PBSceneViewItem.AsObject, SceneViewItem> =\n M.defineMapper(\n M.read(\n M.mapRequiredProp('id', fromPbUuid2l),\n M.mapRequiredProp('createdAt', fromPbInstant),\n M.mapRequiredProp('name', fromPbStringValue),\n M.mapProp('parentId', M.ifDefined(fromPbUuid2l)),\n M.mapProp('suppliedId', M.ifDefined(fromPbStringValue)),\n M.mapProp('boundingBox', M.ifDefined(fromPbBoundingBox3f)),\n M.mapProp('worldTransform', M.ifDefined(fromPbMatrix4f)),\n M.mapProp('override', M.ifDefined(mapSceneViewItemOverride)),\n ),\n ([\n id,\n createdAt,\n name,\n parentId,\n suppliedId,\n boundingBox,\n worldTransform,\n override,\n ]) => ({\n id,\n createdAt,\n name,\n parentId: parentId ?? undefined,\n suppliedId,\n boundingBox,\n worldTransform,\n override,\n }),\n );\n\nexport const mapGetSceneViewItemResponseOrThrow: M.ThrowIfInvalidFunc<\n GetSceneViewItemResponse.AsObject,\n SceneViewItem | undefined\n> = M.ifInvalidThrow(\n M.defineMapper(\n M.read(M.mapProp('item', M.ifDefined(mapSceneViewItem))),\n ([item]) => item ?? undefined,\n ),\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/camera.ts"],"names":[],"mappings":"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","sourcesContent":["import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport {\n BoundingBox,\n BoundingSphere,\n Matrix4,\n Quaternion,\n Ray,\n Vector3,\n} from '@vertexvis/geometry';\nimport { StreamApi } from '@vertexvis/stream-api';\nimport { UUID } from '@vertexvis/utils';\n\nimport { FrameDecoder } from '../mappers';\nimport {\n constrainViewVector,\n updateLookAtRelativeToBoundingBoxCenter,\n} from '../rendering/vectors';\nimport { DEFAULT_TIMEOUT_IN_MS } from '../stream/dispatcher';\nimport {\n Animation,\n ClippingPlanes,\n FlyTo,\n FrameCamera,\n FrameCameraBase,\n FrameOrthographicCamera,\n FramePerspectiveCamera,\n StandardView,\n} from '../types';\nimport { withPositionAndViewVector } from '../types/frameCamera';\nimport { CameraRenderResult } from './cameraRenderResult';\nimport { buildFlyToOperation } from './mapper';\nimport ISceneItemQueryExpression = vertexvis.protobuf.stream.ISceneItemQueryExpression;\n\nexport interface CameraRenderOptions {\n correlationId?: string;\n animation?: Animation.Animation;\n}\n\nexport class TerminalFlyToExecutor {\n public constructor(private flyToOptions?: FlyTo.FlyToOptions) {}\n\n public build(): FlyTo.FlyToOptions | undefined {\n return this.flyToOptions;\n }\n}\n\nexport class FlyToExecutor {\n private flyToOptions?: FlyTo.FlyToOptions;\n\n public withItemId(id: string): TerminalFlyToExecutor {\n return new TerminalFlyToExecutor({\n flyTo: {\n type: 'internal',\n data: id,\n },\n });\n }\n\n public withSuppliedId(id: string): TerminalFlyToExecutor {\n return new TerminalFlyToExecutor({\n flyTo: {\n type: 'supplied',\n data: id,\n },\n });\n }\n\n public withCamera(camera: FrameCamera.FrameCamera): TerminalFlyToExecutor {\n return new TerminalFlyToExecutor({\n flyTo: {\n type: 'camera',\n data: camera,\n },\n });\n }\n\n public withBoundingBox(\n boundingBox: BoundingBox.BoundingBox\n ): TerminalFlyToExecutor {\n return new TerminalFlyToExecutor({\n flyTo: {\n type: 'bounding-box',\n data: boundingBox,\n },\n });\n }\n\n public build(): FlyTo.FlyToOptions | undefined {\n return this.flyToOptions;\n }\n}\n\nexport interface FlyToParams {\n itemId?: string;\n camera?: FrameCamera.FrameCamera;\n boundingBox?: BoundingBox.BoundingBox;\n itemSuppliedId?: string;\n sceneItemQueryExpression?: ISceneItemQueryExpression;\n}\n\n/**\n * The `Camera` class contains properties that reflect a world space position, a\n * view direction (lookAt), and normalized vector representing the up direction.\n *\n * It also provides utility methods to update orientation of the camera and\n * rerender the scene.\n *\n * This class in intended to be treated as an immutable type. Any mutations return\n * a new instance of the class with the updated properties.\n */\nexport abstract class Camera {\n public constructor(\n protected stream: StreamApi,\n protected aspect: number,\n private data: FrameCamera.FrameCamera,\n protected boundingBox: BoundingBox.BoundingBox,\n protected decodeFrame: FrameDecoder,\n protected flyToOptions?: FlyTo.FlyToOptions\n ) {}\n\n /**\n * Updates the position of the camera such that the given bounding box will\n * be contained within the camera's view.\n *\n * @param boundingBox The bounding box to position to.\n */\n public fitToBoundingBox(boundingBox: BoundingBox.BoundingBox): Camera {\n return this.flyTo({\n boundingBox,\n });\n }\n\n /**\n * Returns the distance from the camera's position to the center\n * of the provided bounding box (or the scene's visible bounding box if not provided).\n *\n * @param boundingBox - The bounding box to determine distance from.\n */\n public signedDistanceToBoundingBoxCenter(\n boundingBox?: BoundingBox.BoundingBox\n ): number {\n const { position, viewVector } = withPositionAndViewVector(this.data);\n\n const boundingBoxCenter = BoundingBox.center(\n boundingBox ?? this.boundingBox\n );\n const cameraToCenter = Vector3.subtract(boundingBoxCenter, position);\n\n return (\n Vector3.dot(viewVector, cameraToCenter) / Vector3.magnitude(viewVector)\n );\n }\n\n /**\n * Specifies that the next render of the camera will be repositioned to one of\n * the options specified in `options`.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector(\"vertex-viewer\");\n * const scene = await viewer.scene();\n * const camera = scene.camera();\n *\n * // Fly to and fit to a specific item by ID with an animation of 1 second\n * await camera\n * .flyTo({ itemId: \"item-id\" })\n * .render({ animation: { milliseconds: 1000 } });\n *\n * // Fly to and fit to a specific item by supplied ID with an animation of 1 second\n * await camera\n * .flyTo({ itemSuppliedId: \"item-supplied-id\" })\n * .render({ animation: { milliseconds: 1000 } });\n *\n * // Fly to and fit to the bounding box of the current set of selected items\n * // with an animation of 1 second\n * await camera\n * .flyTo({\n * boundingBox:\n * viewer.frame.scene.sceneViewSummary.selectedVisibleSummary.boundingBox,\n * })\n * .render({ animation: { milliseconds: 1000 } });\n *\n * // Fly to a specific camera\n * await camera\n * .flyTo({\n * camera: {\n * position: {\n * x: 1,\n * y: 2,\n * z: 3,\n * },\n * lookAt: {\n * x: 0,\n * y: 0,\n * z: 0,\n * },\n * up: {\n * x: 0,\n * y: 1,\n * z: 0,\n * },\n * },\n * })\n * .render({ animation: { milliseconds: 1000 } });\n *\n * // Fly to scene items specified by a query\n * await camera\n * .flyTo({\n * sceneItemQueryExpression: {\n * operand: {\n * metadata: {\n * valueFilter: 'WheelHub',\n * keys: ['ProductName'],\n * },\n * },\n * },\n * })\n * ```\n *\n * @param paramsOrQuery An object or query describing how the camera should\n * be positioned.\n */\n public flyTo(\n paramsOrQuery: FlyToParams | ((q: FlyToExecutor) => TerminalFlyToExecutor)\n ): Camera {\n if (typeof paramsOrQuery !== 'function') {\n return this.updateFlyToOptions({\n flyTo: this.buildFlyToType(paramsOrQuery),\n });\n } else {\n return this.updateFlyToOptions(\n paramsOrQuery(new FlyToExecutor()).build()\n );\n }\n }\n\n /**\n * Performs a `flyTo` operation with the current visible bounding box of\n * the scene.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n * const camera = scene.camera();\n *\n * // Fit to the visible bounding box of the scene with an animation of 1 second\n * await camera.viewAll().render({ animation: { milliseconds: 1000 } });\n * ```\n */\n public viewAll(): Camera {\n return this.fitToBoundingBox(this.boundingBox);\n }\n\n /**\n * Queues the rendering for a new frame using this camera. The returned\n * promise will resolve when a frame is received that contains this camera.\n */\n public async render(\n renderOptions: CameraRenderOptions = {}\n ): Promise<CameraRenderResult> {\n if (this.flyToOptions == null && renderOptions.animation) {\n this.flyToOptions = {\n flyTo: {\n type: 'camera',\n data: this.data,\n },\n };\n }\n\n try {\n renderOptions.correlationId ??= UUID.create();\n if (this.flyToOptions != null) {\n const payload = buildFlyToOperation(\n renderOptions.correlationId,\n this.flyToOptions,\n renderOptions.animation,\n this.toFrameCamera()\n );\n const flyToResponse = await this.stream.flyTo(payload, true);\n\n return new CameraRenderResult(\n this.stream,\n this.decodeFrame,\n {\n correlationId: renderOptions.correlationId,\n animationId: flyToResponse.flyTo?.animationId?.hex || undefined,\n },\n renderOptions.animation?.milliseconds != null\n ? renderOptions.animation.milliseconds + DEFAULT_TIMEOUT_IN_MS\n : undefined\n );\n } else {\n this.stream.replaceCamera({\n camera: FrameCamera.toProtobuf(this.data),\n frameCorrelationId: { value: renderOptions.correlationId },\n });\n\n return new CameraRenderResult(this.stream, this.decodeFrame, {\n correlationId: renderOptions.correlationId,\n });\n }\n } catch (e) {\n console.warn('Error when performing render: ', e);\n throw e;\n }\n }\n\n /**\n * Repositions the camera by rotating its current position around an axis placed\n * at the `lookAt` point. This method internally will call {@link Camera.rotateAroundAxisAtPoint}\n * with the `point` parameter set to the current `lookAt` point.\n *\n * @see {@link Camera.rotateAroundAxisAtPoint} for more information.\n *\n * @param angleInRadians The angle, in radians, to rotate.\n * @param axis A normalized vector to rotate around.\n */\n public rotateAroundAxis(\n angleInRadians: number,\n axis: Vector3.Vector3\n ): Camera {\n return this.rotateAroundAxisAtPoint(angleInRadians, this.data.lookAt, axis);\n }\n\n /**\n * Aligns the camera to the plane defined by the provided position and normal.\n * This will place the camera at the provided position, set the up vector to\n * the provided normal, and place the lookAt on the defined plane. The point\n * chosen for the lookAt will be determined using the current view vector.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector(\"vertex-viewer\");\n *\n * viewer.addEventListener(\"tap\", async (event) => {\n * const scene = await viewer.scene();\n * const raycaster = scene.raycaster();\n *\n * const [hit] = await raycaster.hitItems(event.detail.position);\n *\n * if (hit != null) {\n * const camera = scene.camera();\n *\n * // Align to the plane represented by the hit result with an animation of 1 second\n * await camera\n * .alignTo(hit.hitPoint, hit.hitNormal)\n * .render({ animation: { milliseconds: 1000 } });\n * }\n * });\n * ```\n *\n * @param position The position to place the camera at.\n * @param normal The normal of the plane to align to.\n */\n public alignTo(position: Vector3.Vector3, normal: Vector3.Vector3): Camera {\n const worldX = Vector3.normalize(\n Vector3.cross(this.up, Vector3.normalize(this.viewVector))\n );\n const positiveWorldY = Vector3.normalize(\n Vector3.cross(Vector3.normalize(this.viewVector), worldX)\n );\n\n // Invert the world y axis if the provided normal is more than 90 degrees from it\n // to compute a proper angle to rotate the view vector by\n const worldY =\n Vector3.angleTo(normal, positiveWorldY) > Math.PI / 2\n ? Vector3.negate(positiveWorldY)\n : positiveWorldY;\n const localX = Vector3.isEqual(worldY, normal)\n ? worldX\n : Vector3.normalize(Vector3.cross(worldY, normal));\n\n const transformedViewVector = Vector3.transformMatrix(\n this.viewVector,\n Matrix4.makeRotation(\n Quaternion.fromAxisAngle(localX, Vector3.angleTo(normal, worldY))\n )\n );\n const lookAtRay = Ray.create({\n origin: position,\n direction: Vector3.normalize(transformedViewVector),\n });\n const lookAt = Ray.at(lookAtRay, Vector3.magnitude(this.viewVector));\n\n return this.update({\n position,\n lookAt,\n up: normal,\n });\n }\n\n /**\n * Updates the `position` and `up` vectors of the camera to the given standard\n * view, and sets the `lookAt` point to the origin.\n *\n * @see {@link StandardView} for the available standard views.\n *\n * @param standardView The standard view to apply.\n * @returns A new camera.\n */\n public standardView(standardView: StandardView): Camera {\n return this.update({\n position: standardView.position,\n viewVector: Vector3.subtract(Vector3.origin(), standardView.position),\n lookAt: Vector3.origin(),\n up: standardView.up,\n });\n }\n\n /**\n * Updates the `position` and `up` vectors of the camera to the given standard\n * view, maintaining the existing `lookAt` point.\n *\n * @see {@link StandardView} for the available standard views.\n *\n * @param standardView The standard view to apply.\n * @returns A new camera.\n */\n public standardViewFixedLookAt(standardView: StandardView): Camera {\n const standardViewRay = Ray.create({\n origin: this.lookAt,\n direction: Vector3.normalize(standardView.position),\n });\n const updatedPosition = Ray.at(\n standardViewRay,\n Vector3.magnitude(this.viewVector)\n );\n\n return this.update({\n up: standardView.up,\n position: updatedPosition,\n viewVector: Vector3.subtract(this.lookAt, updatedPosition),\n });\n }\n\n private buildFlyToType(options: FlyToParams): FlyTo.FlyToType {\n if (options.boundingBox != null) {\n return { type: 'bounding-box', data: options.boundingBox };\n } else if (options.camera != null) {\n return { type: 'camera', data: options.camera };\n } else if (options.itemId != null) {\n return { type: 'internal', data: options.itemId };\n } else if (options.itemSuppliedId != null) {\n return { type: 'supplied', data: options.itemSuppliedId };\n } else if (options.sceneItemQueryExpression != null) {\n return {\n type: 'scene-item-query',\n data: options.sceneItemQueryExpression,\n };\n } else {\n throw new Error('Fly to must specify at least one option.');\n }\n }\n\n protected computeClippingPlanes(\n camera: FrameCamera.FrameCamera\n ): ClippingPlanes.ClippingPlanes {\n return ClippingPlanes.fromBoundingBoxAndLookAtCamera(\n this.boundingBox,\n camera\n );\n }\n\n /**\n * Repositions the camera by rotating its current position around an axis\n * defined at a specific world point.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n *\n * viewer.addEventListener('tap', async (event) => {\n * const scene = await viewer.scene();\n * const raycaster = scene.raycaster();\n *\n * const [hit] = await raycaster.hitItems(event.detail.position);\n *\n * if (hit != null) {\n * const camera = scene.camera();\n *\n * // Using the current `up` vector of the camera, rotate 45 degrees\n * // about the hit position with an animation of 1 second\n * await camera.rotateAroundAxisAtPoint(\n * Angle.toRadians(45),\n * hit.hitPoint,\n * camera.up,\n * ).render({ animation: { milliseconds: 1000 } });\n * }\n * });\n * ```\n *\n * @param angleInRadians The angle, in radians, to rotate.\n * @param point The point in world space to place the axis at.\n * @param axis A normalized vector to rotate around.\n */\n public abstract rotateAroundAxisAtPoint(\n angleInRadians: number,\n point: Vector3.Vector3,\n axis: Vector3.Vector3\n ): Camera;\n\n public abstract get position(): Vector3.Vector3;\n public abstract get lookAt(): Vector3.Vector3;\n public abstract get up(): Vector3.Vector3;\n public abstract get near(): number;\n public abstract get far(): number;\n public abstract get aspectRatio(): number;\n public abstract get viewVector(): Vector3.Vector3;\n\n /**\n * Shifts the position of the camera by the given delta.\n *\n * @param delta The number of units to shift the camera on the X, Y, and Z\n * axis.\n */\n public abstract moveBy(delta: Vector3.Vector3): Camera;\n\n /**\n * Updates the `position`, `lookAt` and/or `up` vectors of the camera. Each\n * vector can be omitted in the payload, and the resulting camera will keep\n * the previous `position`, `lookAt`, or `up` vectors.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector(\"vertex-viewer\");\n * const scene = await viewer.scene();\n * const camera = scene.camera();\n *\n * // Update the camera to place it at the origin\n * await camera\n * .update({\n * position: {\n * x: 0,\n * y: 0,\n * z: 0,\n * },\n * })\n * .render({ animation: { milliseconds: 1000 } });\n *\n * // Update the camera to look at the origin\n * await camera\n * .update({\n * lookAt: {\n * x: 0,\n * y: 0,\n * z: 0,\n * },\n * })\n * .render({ animation: { milliseconds: 1000 } });\n * ```\n *\n * @param camera The values to update the camera to.\n */\n public abstract update(camera: Partial<FrameCamera.FrameCamera>): Camera;\n\n /**\n * Returns a `FrameCameraBase` representation.\n */\n public abstract toFrameCamera(): FrameCameraBase;\n\n protected abstract updateFlyToOptions(\n flyToOptions?: FlyTo.FlyToOptions\n ): Camera;\n}\n\nexport class PerspectiveCamera\n extends Camera\n implements FrameCamera.PerspectiveFrameCamera\n{\n public constructor(\n stream: StreamApi,\n aspect: number,\n private perspectiveData: FrameCamera.PerspectiveFrameCamera,\n boundingBox: BoundingBox.BoundingBox,\n decodeFrame: FrameDecoder,\n flyToOptions?: FlyTo.FlyToOptions\n ) {\n super(\n stream,\n aspect,\n perspectiveData,\n boundingBox,\n decodeFrame,\n flyToOptions\n );\n }\n\n /**\n * Shifts the position of the camera by the given delta.\n *\n * @param delta The number of units to shift the camera on the X, Y, and Z\n * axis.\n */\n public moveBy(delta: Vector3.Vector3): Camera {\n return this.update({\n position: Vector3.add(this.position, delta),\n lookAt: Vector3.add(this.lookAt, delta),\n });\n }\n\n public rotateAroundAxisAtPoint(\n angleInRadians: number,\n point: Vector3.Vector3,\n axis: Vector3.Vector3\n ): Camera {\n return this.update({\n position: Vector3.rotateAboutAxis(\n angleInRadians,\n this.position,\n axis,\n point\n ),\n lookAt: Vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point),\n up: Vector3.rotateAboutAxis(\n angleInRadians,\n this.up,\n axis,\n Vector3.origin()\n ),\n });\n }\n\n public update(camera: Partial<FrameCamera.PerspectiveFrameCamera>): Camera {\n const fovY = camera.fovY ?? this.fovY;\n return new PerspectiveCamera(\n this.stream,\n this.aspect,\n { ...this.perspectiveData, ...camera, fovY },\n this.boundingBox,\n this.decodeFrame,\n this.flyToOptions\n );\n }\n\n public toFrameCamera(): FramePerspectiveCamera {\n return new FramePerspectiveCamera(\n this.position,\n this.lookAt,\n this.up,\n this.near,\n this.far,\n this.aspectRatio,\n this.fovY ?? 45\n );\n }\n\n public get viewVector(): Vector3.Vector3 {\n return Vector3.subtract(this.lookAt, this.position);\n }\n\n /**\n * The position vector for the camera, in world space coordinates.\n */\n public get position(): Vector3.Vector3 {\n return { ...this.perspectiveData.position };\n }\n\n /**\n * A normalized vector representing the up direction.\n */\n public get up(): Vector3.Vector3 {\n return { ...this.perspectiveData.up };\n }\n\n /**\n * A vector, in world space coordinates, of where the camera is pointed at.\n */\n public get lookAt(): Vector3.Vector3 {\n return { ...this.perspectiveData.lookAt };\n }\n\n /**\n * The camera's field of view.\n */\n public get fovY(): number | undefined {\n return this.perspectiveData.fovY;\n }\n\n /**\n * The aspect ratio of the camera.\n */\n public get aspectRatio(): number {\n return this.aspect;\n }\n\n /**\n * The camera's near clipping plane.\n */\n public get near(): number {\n const { near } = this.computeClippingPlanes(this.perspectiveData);\n return near;\n }\n\n /**\n * The camera's far clipping plane.\n */\n public get far(): number {\n const { far } = this.computeClippingPlanes(this.perspectiveData);\n return far;\n }\n\n protected updateFlyToOptions(\n flyToOptions?: FlyTo.FlyToOptions\n ): PerspectiveCamera {\n return new PerspectiveCamera(\n this.stream,\n this.aspect,\n this.perspectiveData,\n this.boundingBox,\n this.decodeFrame,\n flyToOptions\n );\n }\n}\n\nexport class OrthographicCamera\n extends Camera\n implements FrameCamera.OrthographicFrameCamera\n{\n public constructor(\n stream: StreamApi,\n aspect: number,\n private orthographicData: FrameCamera.OrthographicFrameCamera,\n boundingBox: BoundingBox.BoundingBox,\n decodeFrame: FrameDecoder,\n flyToOptions?: FlyTo.FlyToOptions\n ) {\n super(\n stream,\n aspect,\n orthographicData,\n boundingBox,\n decodeFrame,\n flyToOptions\n );\n }\n\n /**\n * Shifts the position of the camera by the given delta.\n *\n * @param delta The number of units to shift the camera on the X, Y, and Z\n * axis.\n */\n public moveBy(delta: Vector3.Vector3): Camera {\n // The rotation point should match the lookAt point when panning\n const updatedPoint = Vector3.add(this.lookAt, delta);\n return this.update({\n lookAt: updatedPoint,\n rotationPoint: updatedPoint,\n });\n }\n\n public rotateAroundAxisAtPoint(\n angleInRadians: number,\n point: Vector3.Vector3,\n axis: Vector3.Vector3\n ): Camera {\n const updatedLookAt = Vector3.rotateAboutAxis(\n angleInRadians,\n this.lookAt,\n axis,\n point\n );\n const updatedPosition = Vector3.rotateAboutAxis(\n angleInRadians,\n this.position,\n axis,\n point\n );\n const viewVector = constrainViewVector(\n Vector3.subtract(updatedLookAt, updatedPosition),\n BoundingSphere.create(this.boundingBox)\n );\n\n return this.update({\n viewVector: viewVector,\n lookAt: updatedLookAt,\n up: Vector3.rotateAboutAxis(\n angleInRadians,\n this.up,\n axis,\n Vector3.origin()\n ),\n });\n }\n\n public update(camera: Partial<FrameCamera.FrameCamera>): Camera {\n return new OrthographicCamera(\n this.stream,\n this.aspect,\n { ...this.orthographicData, ...camera },\n this.boundingBox,\n this.decodeFrame,\n this.flyToOptions\n );\n }\n\n public toFrameCamera(): FrameOrthographicCamera {\n const boundingSphere = BoundingSphere.create(this.boundingBox);\n const viewVector = constrainViewVector(this.viewVector, boundingSphere);\n const lookAt = updateLookAtRelativeToBoundingBoxCenter(\n this.lookAt,\n viewVector,\n boundingSphere.center\n );\n\n return new FrameOrthographicCamera(\n viewVector,\n lookAt,\n this.up,\n this.near,\n this.far,\n this.aspectRatio,\n this.fovHeight,\n this.rotationPoint\n );\n }\n\n public get viewVector(): Vector3.Vector3 {\n return { ...this.orthographicData.viewVector };\n }\n\n public get position(): Vector3.Vector3 {\n return Vector3.add(this.lookAt, Vector3.negate(this.viewVector));\n }\n\n /**\n * A vector, in world space coordinates, of where the camera should be rotated around.\n * Most interactions (like pan and zoom) will update lookAt and rotationPoint to be the same point.\n * However, rotation interactions will only update lookAt and not rotationPoint.\n */\n public get rotationPoint(): Vector3.Vector3 | undefined {\n const rotationPoint = this.orthographicData.rotationPoint;\n if (rotationPoint != null) {\n return rotationPoint;\n } else {\n return undefined;\n }\n }\n\n /**\n * A normalized vector representing the up direction.\n */\n public get up(): Vector3.Vector3 {\n return { ...this.orthographicData.up };\n }\n\n /**\n * A vector, in world space coordinates, of where the camera is pointed at.\n */\n public get lookAt(): Vector3.Vector3 {\n return { ...this.orthographicData.lookAt };\n }\n\n /**\n * The camera's field of view.\n */\n public get fovHeight(): number {\n return this.orthographicData.fovHeight;\n }\n\n /**\n * The aspect ratio of the camera.\n */\n public get aspectRatio(): number {\n return this.aspect;\n }\n\n /**\n * The camera's near clipping plane.\n */\n public get near(): number {\n const { near } = this.computeClippingPlanes(this.orthographicData);\n return near;\n }\n\n /**\n * The camera's far clipping plane.\n */\n public get far(): number {\n const { far } = this.computeClippingPlanes(this.orthographicData);\n return far;\n }\n\n protected updateFlyToOptions(\n flyToOptions?: FlyTo.FlyToOptions\n ): OrthographicCamera {\n return new OrthographicCamera(\n this.stream,\n this.aspect,\n this.orthographicData,\n this.boundingBox,\n this.decodeFrame,\n flyToOptions\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"camera.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/camera.ts"],"names":[],"mappings":"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","sourcesContent":["import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport {\n BoundingBox,\n BoundingSphere,\n Matrix4,\n Quaternion,\n Ray,\n Vector3,\n} from '@vertexvis/geometry';\nimport { StreamApi } from '@vertexvis/stream-api';\nimport { UUID } from '@vertexvis/utils';\n\nimport { FrameDecoder } from '../mappers';\nimport {\n constrainViewVector,\n updateLookAtRelativeToBoundingBoxCenter,\n} from '../rendering/vectors';\nimport { DEFAULT_TIMEOUT_IN_MS } from '../stream/dispatcher';\nimport {\n Animation,\n ClippingPlanes,\n FlyTo,\n FrameCamera,\n FrameCameraBase,\n FrameOrthographicCamera,\n FramePerspectiveCamera,\n StandardView,\n} from '../types';\nimport { withPositionAndViewVector } from '../types/frameCamera';\nimport { CameraRenderResult } from './cameraRenderResult';\nimport { buildFlyToOperation } from './mapper';\nimport ISceneItemQueryExpression = vertexvis.protobuf.stream.ISceneItemQueryExpression;\n\nexport interface CameraRenderOptions {\n correlationId?: string;\n animation?: Animation.Animation;\n}\n\nexport class TerminalFlyToExecutor {\n public constructor(private flyToOptions?: FlyTo.FlyToOptions) {}\n\n public build(): FlyTo.FlyToOptions | undefined {\n return this.flyToOptions;\n }\n}\n\nexport class FlyToExecutor {\n private flyToOptions?: FlyTo.FlyToOptions;\n\n public withItemId(id: string): TerminalFlyToExecutor {\n return new TerminalFlyToExecutor({\n flyTo: {\n type: 'internal',\n data: id,\n },\n });\n }\n\n public withSuppliedId(id: string): TerminalFlyToExecutor {\n return new TerminalFlyToExecutor({\n flyTo: {\n type: 'supplied',\n data: id,\n },\n });\n }\n\n public withCamera(camera: FrameCamera.FrameCamera): TerminalFlyToExecutor {\n return new TerminalFlyToExecutor({\n flyTo: {\n type: 'camera',\n data: camera,\n },\n });\n }\n\n public withBoundingBox(\n boundingBox: BoundingBox.BoundingBox,\n ): TerminalFlyToExecutor {\n return new TerminalFlyToExecutor({\n flyTo: {\n type: 'bounding-box',\n data: boundingBox,\n },\n });\n }\n\n public build(): FlyTo.FlyToOptions | undefined {\n return this.flyToOptions;\n }\n}\n\nexport interface FlyToParams {\n itemId?: string;\n camera?: FrameCamera.FrameCamera;\n boundingBox?: BoundingBox.BoundingBox;\n itemSuppliedId?: string;\n sceneItemQueryExpression?: ISceneItemQueryExpression;\n}\n\n/**\n * The `Camera` class contains properties that reflect a world space position, a\n * view direction (lookAt), and normalized vector representing the up direction.\n *\n * It also provides utility methods to update orientation of the camera and\n * rerender the scene.\n *\n * This class in intended to be treated as an immutable type. Any mutations return\n * a new instance of the class with the updated properties.\n */\nexport abstract class Camera {\n public constructor(\n protected stream: StreamApi,\n protected aspect: number,\n private data: FrameCamera.FrameCamera,\n protected boundingBox: BoundingBox.BoundingBox,\n protected decodeFrame: FrameDecoder,\n protected flyToOptions?: FlyTo.FlyToOptions,\n ) {}\n\n /**\n * Updates the position of the camera such that the given bounding box will\n * be contained within the camera's view.\n *\n * @param boundingBox The bounding box to position to.\n */\n public fitToBoundingBox(boundingBox: BoundingBox.BoundingBox): Camera {\n return this.flyTo({\n boundingBox,\n });\n }\n\n /**\n * Returns the distance from the camera's position to the center\n * of the provided bounding box (or the scene's visible bounding box if not provided).\n *\n * @param boundingBox - The bounding box to determine distance from.\n */\n public signedDistanceToBoundingBoxCenter(\n boundingBox?: BoundingBox.BoundingBox,\n ): number {\n const { position, viewVector } = withPositionAndViewVector(this.data);\n\n const boundingBoxCenter = BoundingBox.center(\n boundingBox ?? this.boundingBox,\n );\n const cameraToCenter = Vector3.subtract(boundingBoxCenter, position);\n\n return (\n Vector3.dot(viewVector, cameraToCenter) / Vector3.magnitude(viewVector)\n );\n }\n\n /**\n * Specifies that the next render of the camera will be repositioned to one of\n * the options specified in `options`.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector(\"vertex-viewer\");\n * const scene = await viewer.scene();\n * const camera = scene.camera();\n *\n * // Fly to and fit to a specific item by ID with an animation of 1 second\n * await camera\n * .flyTo({ itemId: \"item-id\" })\n * .render({ animation: { milliseconds: 1000 } });\n *\n * // Fly to and fit to a specific item by supplied ID with an animation of 1 second\n * await camera\n * .flyTo({ itemSuppliedId: \"item-supplied-id\" })\n * .render({ animation: { milliseconds: 1000 } });\n *\n * // Fly to and fit to the bounding box of the current set of selected items\n * // with an animation of 1 second\n * await camera\n * .flyTo({\n * boundingBox:\n * viewer.frame.scene.sceneViewSummary.selectedVisibleSummary.boundingBox,\n * })\n * .render({ animation: { milliseconds: 1000 } });\n *\n * // Fly to a specific camera\n * await camera\n * .flyTo({\n * camera: {\n * position: {\n * x: 1,\n * y: 2,\n * z: 3,\n * },\n * lookAt: {\n * x: 0,\n * y: 0,\n * z: 0,\n * },\n * up: {\n * x: 0,\n * y: 1,\n * z: 0,\n * },\n * },\n * })\n * .render({ animation: { milliseconds: 1000 } });\n *\n * // Fly to scene items specified by a query\n * await camera\n * .flyTo({\n * sceneItemQueryExpression: {\n * operand: {\n * metadata: {\n * valueFilter: 'WheelHub',\n * keys: ['ProductName'],\n * },\n * },\n * },\n * })\n * ```\n *\n * @param paramsOrQuery An object or query describing how the camera should\n * be positioned.\n */\n public flyTo(\n paramsOrQuery: FlyToParams | ((q: FlyToExecutor) => TerminalFlyToExecutor),\n ): Camera {\n if (typeof paramsOrQuery !== 'function') {\n return this.updateFlyToOptions({\n flyTo: this.buildFlyToType(paramsOrQuery),\n });\n } else {\n return this.updateFlyToOptions(\n paramsOrQuery(new FlyToExecutor()).build(),\n );\n }\n }\n\n /**\n * Performs a `flyTo` operation with the current visible bounding box of\n * the scene.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n * const scene = await viewer.scene();\n * const camera = scene.camera();\n *\n * // Fit to the visible bounding box of the scene with an animation of 1 second\n * await camera.viewAll().render({ animation: { milliseconds: 1000 } });\n * ```\n */\n public viewAll(): Camera {\n return this.fitToBoundingBox(this.boundingBox);\n }\n\n /**\n * Queues the rendering for a new frame using this camera. The returned\n * promise will resolve when a frame is received that contains this camera.\n */\n public async render(\n renderOptions: CameraRenderOptions = {},\n ): Promise<CameraRenderResult> {\n if (this.flyToOptions == null && renderOptions.animation) {\n this.flyToOptions = {\n flyTo: {\n type: 'camera',\n data: this.data,\n },\n };\n }\n\n try {\n renderOptions.correlationId ??= UUID.create();\n if (this.flyToOptions != null) {\n const payload = buildFlyToOperation(\n renderOptions.correlationId,\n this.flyToOptions,\n renderOptions.animation,\n this.toFrameCamera(),\n );\n const flyToResponse = await this.stream.flyTo(payload, true);\n\n return new CameraRenderResult(\n this.stream,\n this.decodeFrame,\n {\n correlationId: renderOptions.correlationId,\n animationId: flyToResponse.flyTo?.animationId?.hex || undefined,\n },\n renderOptions.animation?.milliseconds != null\n ? renderOptions.animation.milliseconds + DEFAULT_TIMEOUT_IN_MS\n : undefined,\n );\n } else {\n this.stream.replaceCamera({\n camera: FrameCamera.toProtobuf(this.data),\n frameCorrelationId: { value: renderOptions.correlationId },\n });\n\n return new CameraRenderResult(this.stream, this.decodeFrame, {\n correlationId: renderOptions.correlationId,\n });\n }\n } catch (e) {\n console.warn('Error when performing render: ', e);\n throw e;\n }\n }\n\n /**\n * Repositions the camera by rotating its current position around an axis placed\n * at the `lookAt` point. This method internally will call {@link Camera.rotateAroundAxisAtPoint}\n * with the `point` parameter set to the current `lookAt` point.\n *\n * @see {@link Camera.rotateAroundAxisAtPoint} for more information.\n *\n * @param angleInRadians The angle, in radians, to rotate.\n * @param axis A normalized vector to rotate around.\n */\n public rotateAroundAxis(\n angleInRadians: number,\n axis: Vector3.Vector3,\n ): Camera {\n return this.rotateAroundAxisAtPoint(angleInRadians, this.data.lookAt, axis);\n }\n\n /**\n * Aligns the camera to the plane defined by the provided position and normal.\n * This will place the camera at the provided position, set the up vector to\n * the provided normal, and place the lookAt on the defined plane. The point\n * chosen for the lookAt will be determined using the current view vector.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector(\"vertex-viewer\");\n *\n * viewer.addEventListener(\"tap\", async (event) => {\n * const scene = await viewer.scene();\n * const raycaster = scene.raycaster();\n *\n * const [hit] = await raycaster.hitItems(event.detail.position);\n *\n * if (hit != null) {\n * const camera = scene.camera();\n *\n * // Align to the plane represented by the hit result with an animation of 1 second\n * await camera\n * .alignTo(hit.hitPoint, hit.hitNormal)\n * .render({ animation: { milliseconds: 1000 } });\n * }\n * });\n * ```\n *\n * @param position The position to place the camera at.\n * @param normal The normal of the plane to align to.\n */\n public alignTo(position: Vector3.Vector3, normal: Vector3.Vector3): Camera {\n const worldX = Vector3.normalize(\n Vector3.cross(this.up, Vector3.normalize(this.viewVector)),\n );\n const positiveWorldY = Vector3.normalize(\n Vector3.cross(Vector3.normalize(this.viewVector), worldX),\n );\n\n // Invert the world y axis if the provided normal is more than 90 degrees from it\n // to compute a proper angle to rotate the view vector by\n const worldY =\n Vector3.angleTo(normal, positiveWorldY) > Math.PI / 2\n ? Vector3.negate(positiveWorldY)\n : positiveWorldY;\n const localX = Vector3.isEqual(worldY, normal)\n ? worldX\n : Vector3.normalize(Vector3.cross(worldY, normal));\n\n const transformedViewVector = Vector3.transformMatrix(\n this.viewVector,\n Matrix4.makeRotation(\n Quaternion.fromAxisAngle(localX, Vector3.angleTo(normal, worldY)),\n ),\n );\n const lookAtRay = Ray.create({\n origin: position,\n direction: Vector3.normalize(transformedViewVector),\n });\n const lookAt = Ray.at(lookAtRay, Vector3.magnitude(this.viewVector));\n\n return this.update({\n position,\n lookAt,\n up: normal,\n });\n }\n\n /**\n * Updates the `position` and `up` vectors of the camera to the given standard\n * view, and sets the `lookAt` point to the origin.\n *\n * @see {@link StandardView} for the available standard views.\n *\n * @param standardView The standard view to apply.\n * @returns A new camera.\n */\n public standardView(standardView: StandardView): Camera {\n return this.update({\n position: standardView.position,\n viewVector: Vector3.subtract(Vector3.origin(), standardView.position),\n lookAt: Vector3.origin(),\n up: standardView.up,\n });\n }\n\n /**\n * Updates the `position` and `up` vectors of the camera to the given standard\n * view, maintaining the existing `lookAt` point.\n *\n * @see {@link StandardView} for the available standard views.\n *\n * @param standardView The standard view to apply.\n * @returns A new camera.\n */\n public standardViewFixedLookAt(standardView: StandardView): Camera {\n const standardViewRay = Ray.create({\n origin: this.lookAt,\n direction: Vector3.normalize(standardView.position),\n });\n const updatedPosition = Ray.at(\n standardViewRay,\n Vector3.magnitude(this.viewVector),\n );\n\n return this.update({\n up: standardView.up,\n position: updatedPosition,\n viewVector: Vector3.subtract(this.lookAt, updatedPosition),\n });\n }\n\n private buildFlyToType(options: FlyToParams): FlyTo.FlyToType {\n if (options.boundingBox != null) {\n return { type: 'bounding-box', data: options.boundingBox };\n } else if (options.camera != null) {\n return { type: 'camera', data: options.camera };\n } else if (options.itemId != null) {\n return { type: 'internal', data: options.itemId };\n } else if (options.itemSuppliedId != null) {\n return { type: 'supplied', data: options.itemSuppliedId };\n } else if (options.sceneItemQueryExpression != null) {\n return {\n type: 'scene-item-query',\n data: options.sceneItemQueryExpression,\n };\n } else {\n throw new Error('Fly to must specify at least one option.');\n }\n }\n\n protected computeClippingPlanes(\n camera: FrameCamera.FrameCamera,\n ): ClippingPlanes.ClippingPlanes {\n return ClippingPlanes.fromBoundingBoxAndLookAtCamera(\n this.boundingBox,\n camera,\n );\n }\n\n /**\n * Repositions the camera by rotating its current position around an axis\n * defined at a specific world point.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector('vertex-viewer');\n *\n * viewer.addEventListener('tap', async (event) => {\n * const scene = await viewer.scene();\n * const raycaster = scene.raycaster();\n *\n * const [hit] = await raycaster.hitItems(event.detail.position);\n *\n * if (hit != null) {\n * const camera = scene.camera();\n *\n * // Using the current `up` vector of the camera, rotate 45 degrees\n * // about the hit position with an animation of 1 second\n * await camera.rotateAroundAxisAtPoint(\n * Angle.toRadians(45),\n * hit.hitPoint,\n * camera.up,\n * ).render({ animation: { milliseconds: 1000 } });\n * }\n * });\n * ```\n *\n * @param angleInRadians The angle, in radians, to rotate.\n * @param point The point in world space to place the axis at.\n * @param axis A normalized vector to rotate around.\n */\n public abstract rotateAroundAxisAtPoint(\n angleInRadians: number,\n point: Vector3.Vector3,\n axis: Vector3.Vector3,\n ): Camera;\n\n public abstract get position(): Vector3.Vector3;\n public abstract get lookAt(): Vector3.Vector3;\n public abstract get up(): Vector3.Vector3;\n public abstract get near(): number;\n public abstract get far(): number;\n public abstract get aspectRatio(): number;\n public abstract get viewVector(): Vector3.Vector3;\n\n /**\n * Shifts the position of the camera by the given delta.\n *\n * @param delta The number of units to shift the camera on the X, Y, and Z\n * axis.\n */\n public abstract moveBy(delta: Vector3.Vector3): Camera;\n\n /**\n * Updates the `position`, `lookAt` and/or `up` vectors of the camera. Each\n * vector can be omitted in the payload, and the resulting camera will keep\n * the previous `position`, `lookAt`, or `up` vectors.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector(\"vertex-viewer\");\n * const scene = await viewer.scene();\n * const camera = scene.camera();\n *\n * // Update the camera to place it at the origin\n * await camera\n * .update({\n * position: {\n * x: 0,\n * y: 0,\n * z: 0,\n * },\n * })\n * .render({ animation: { milliseconds: 1000 } });\n *\n * // Update the camera to look at the origin\n * await camera\n * .update({\n * lookAt: {\n * x: 0,\n * y: 0,\n * z: 0,\n * },\n * })\n * .render({ animation: { milliseconds: 1000 } });\n * ```\n *\n * @param camera The values to update the camera to.\n */\n public abstract update(camera: Partial<FrameCamera.FrameCamera>): Camera;\n\n /**\n * Returns a `FrameCameraBase` representation.\n */\n public abstract toFrameCamera(): FrameCameraBase;\n\n protected abstract updateFlyToOptions(\n flyToOptions?: FlyTo.FlyToOptions,\n ): Camera;\n}\n\nexport class PerspectiveCamera\n extends Camera\n implements FrameCamera.PerspectiveFrameCamera\n{\n public constructor(\n stream: StreamApi,\n aspect: number,\n private perspectiveData: FrameCamera.PerspectiveFrameCamera,\n boundingBox: BoundingBox.BoundingBox,\n decodeFrame: FrameDecoder,\n flyToOptions?: FlyTo.FlyToOptions,\n ) {\n super(\n stream,\n aspect,\n perspectiveData,\n boundingBox,\n decodeFrame,\n flyToOptions,\n );\n }\n\n /**\n * Shifts the position of the camera by the given delta.\n *\n * @param delta The number of units to shift the camera on the X, Y, and Z\n * axis.\n */\n public moveBy(delta: Vector3.Vector3): Camera {\n return this.update({\n position: Vector3.add(this.position, delta),\n lookAt: Vector3.add(this.lookAt, delta),\n });\n }\n\n public rotateAroundAxisAtPoint(\n angleInRadians: number,\n point: Vector3.Vector3,\n axis: Vector3.Vector3,\n ): Camera {\n return this.update({\n position: Vector3.rotateAboutAxis(\n angleInRadians,\n this.position,\n axis,\n point,\n ),\n lookAt: Vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point),\n up: Vector3.rotateAboutAxis(\n angleInRadians,\n this.up,\n axis,\n Vector3.origin(),\n ),\n });\n }\n\n public update(camera: Partial<FrameCamera.PerspectiveFrameCamera>): Camera {\n const fovY = camera.fovY ?? this.fovY;\n return new PerspectiveCamera(\n this.stream,\n this.aspect,\n { ...this.perspectiveData, ...camera, fovY },\n this.boundingBox,\n this.decodeFrame,\n this.flyToOptions,\n );\n }\n\n public toFrameCamera(): FramePerspectiveCamera {\n return new FramePerspectiveCamera(\n this.position,\n this.lookAt,\n this.up,\n this.near,\n this.far,\n this.aspectRatio,\n this.fovY ?? 45,\n );\n }\n\n public get viewVector(): Vector3.Vector3 {\n return Vector3.subtract(this.lookAt, this.position);\n }\n\n /**\n * The position vector for the camera, in world space coordinates.\n */\n public get position(): Vector3.Vector3 {\n return { ...this.perspectiveData.position };\n }\n\n /**\n * A normalized vector representing the up direction.\n */\n public get up(): Vector3.Vector3 {\n return { ...this.perspectiveData.up };\n }\n\n /**\n * A vector, in world space coordinates, of where the camera is pointed at.\n */\n public get lookAt(): Vector3.Vector3 {\n return { ...this.perspectiveData.lookAt };\n }\n\n /**\n * The camera's field of view.\n */\n public get fovY(): number | undefined {\n return this.perspectiveData.fovY;\n }\n\n /**\n * The aspect ratio of the camera.\n */\n public get aspectRatio(): number {\n return this.aspect;\n }\n\n /**\n * The camera's near clipping plane.\n */\n public get near(): number {\n const { near } = this.computeClippingPlanes(this.perspectiveData);\n return near;\n }\n\n /**\n * The camera's far clipping plane.\n */\n public get far(): number {\n const { far } = this.computeClippingPlanes(this.perspectiveData);\n return far;\n }\n\n protected updateFlyToOptions(\n flyToOptions?: FlyTo.FlyToOptions,\n ): PerspectiveCamera {\n return new PerspectiveCamera(\n this.stream,\n this.aspect,\n this.perspectiveData,\n this.boundingBox,\n this.decodeFrame,\n flyToOptions,\n );\n }\n}\n\nexport class OrthographicCamera\n extends Camera\n implements FrameCamera.OrthographicFrameCamera\n{\n public constructor(\n stream: StreamApi,\n aspect: number,\n private orthographicData: FrameCamera.OrthographicFrameCamera,\n boundingBox: BoundingBox.BoundingBox,\n decodeFrame: FrameDecoder,\n flyToOptions?: FlyTo.FlyToOptions,\n ) {\n super(\n stream,\n aspect,\n orthographicData,\n boundingBox,\n decodeFrame,\n flyToOptions,\n );\n }\n\n /**\n * Shifts the position of the camera by the given delta.\n *\n * @param delta The number of units to shift the camera on the X, Y, and Z\n * axis.\n */\n public moveBy(delta: Vector3.Vector3): Camera {\n // The rotation point should match the lookAt point when panning\n const updatedPoint = Vector3.add(this.lookAt, delta);\n return this.update({\n lookAt: updatedPoint,\n rotationPoint: updatedPoint,\n });\n }\n\n public rotateAroundAxisAtPoint(\n angleInRadians: number,\n point: Vector3.Vector3,\n axis: Vector3.Vector3,\n ): Camera {\n const updatedLookAt = Vector3.rotateAboutAxis(\n angleInRadians,\n this.lookAt,\n axis,\n point,\n );\n const updatedPosition = Vector3.rotateAboutAxis(\n angleInRadians,\n this.position,\n axis,\n point,\n );\n const viewVector = constrainViewVector(\n Vector3.subtract(updatedLookAt, updatedPosition),\n BoundingSphere.create(this.boundingBox),\n );\n\n return this.update({\n viewVector: viewVector,\n lookAt: updatedLookAt,\n up: Vector3.rotateAboutAxis(\n angleInRadians,\n this.up,\n axis,\n Vector3.origin(),\n ),\n });\n }\n\n public update(camera: Partial<FrameCamera.FrameCamera>): Camera {\n return new OrthographicCamera(\n this.stream,\n this.aspect,\n { ...this.orthographicData, ...camera },\n this.boundingBox,\n this.decodeFrame,\n this.flyToOptions,\n );\n }\n\n public toFrameCamera(): FrameOrthographicCamera {\n const boundingSphere = BoundingSphere.create(this.boundingBox);\n const viewVector = constrainViewVector(this.viewVector, boundingSphere);\n const lookAt = updateLookAtRelativeToBoundingBoxCenter(\n this.lookAt,\n viewVector,\n boundingSphere.center,\n );\n\n return new FrameOrthographicCamera(\n viewVector,\n lookAt,\n this.up,\n this.near,\n this.far,\n this.aspectRatio,\n this.fovHeight,\n this.rotationPoint,\n );\n }\n\n public get viewVector(): Vector3.Vector3 {\n return { ...this.orthographicData.viewVector };\n }\n\n public get position(): Vector3.Vector3 {\n return Vector3.add(this.lookAt, Vector3.negate(this.viewVector));\n }\n\n /**\n * A vector, in world space coordinates, of where the camera should be rotated around.\n * Most interactions (like pan and zoom) will update lookAt and rotationPoint to be the same point.\n * However, rotation interactions will only update lookAt and not rotationPoint.\n */\n public get rotationPoint(): Vector3.Vector3 | undefined {\n const rotationPoint = this.orthographicData.rotationPoint;\n if (rotationPoint != null) {\n return rotationPoint;\n } else {\n return undefined;\n }\n }\n\n /**\n * A normalized vector representing the up direction.\n */\n public get up(): Vector3.Vector3 {\n return { ...this.orthographicData.up };\n }\n\n /**\n * A vector, in world space coordinates, of where the camera is pointed at.\n */\n public get lookAt(): Vector3.Vector3 {\n return { ...this.orthographicData.lookAt };\n }\n\n /**\n * The camera's field of view.\n */\n public get fovHeight(): number {\n return this.orthographicData.fovHeight;\n }\n\n /**\n * The aspect ratio of the camera.\n */\n public get aspectRatio(): number {\n return this.aspect;\n }\n\n /**\n * The camera's near clipping plane.\n */\n public get near(): number {\n const { near } = this.computeClippingPlanes(this.orthographicData);\n return near;\n }\n\n /**\n * The camera's far clipping plane.\n */\n public get far(): number {\n const { far } = this.computeClippingPlanes(this.orthographicData);\n return far;\n }\n\n protected updateFlyToOptions(\n flyToOptions?: FlyTo.FlyToOptions,\n ): OrthographicCamera {\n return new OrthographicCamera(\n this.stream,\n this.aspect,\n this.orthographicData,\n this.boundingBox,\n this.decodeFrame,\n flyToOptions,\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cameraRenderResult.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/cameraRenderResult.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAShE,MAAM,OAAO,kBAAkB;IAK7B,YACE,MAAiB,EACjB,WAAyB,EACzB,EAAE,WAAW,EAAE,aAAa,EAAmB,EAC/C,OAAgB;QARX,SAAI,GAAG,SAAS,CAAC;QAUtB,IAAI,CAAC,oBAAoB,GAAG,IAAI,wBAAwB,CACtD,MAAM,EACN,CAAC,GAAG,EAAE,EAAE,mBAAC,OAAA,CAAA,MAAA,MAAA,MAAA,GAAG,CAAC,KAAK,0CAAE,kBAAkB,0CAAE,WAAW,0CAAE,GAAG,MAAK,WAAW,CAAA,EAAA,EACxE,CAAC,GAAG,EAAE,EAAE,mBAAC,OAAA,CAAA,MAAA,MAAA,MAAA,GAAG,CAAC,KAAK,0CAAE,kBAAkB,0CAAE,WAAW,0CAAE,GAAG,KAAI,SAAS,CAAA,EAAA,EACrE,OAAO,CACR,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAwB,CACjD,MAAM,EACN,CAAC,GAAG,EAAE,EAAE;;YACN,OAAA,CAAC,CAAC,CAAA,MAAA,MAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,SAAS,0CAAE,mBAAmB,0CAAE,IAAI,CACjD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,aAAa,CAC7B,CAAA,CAAA;SAAA,EACH,CAAC,GAAG,EAAE,EAAE;;YACN,OAAA,CAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,SAAS,KAAI,IAAI;gBAC5B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;gBACpC,CAAC,CAAC,SAAS,CAAA;SAAA,EACf,OAAO,CACR,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { StreamApi } from '@vertexvis/stream-api';\n\nimport type { FrameDecoder } from '../mappers';\nimport { StreamApiEventDispatcher } from '../stream/dispatcher';\nimport { Result } from '../stream/result';\nimport { Frame } from '../types';\n\nexport interface RenderResultIds {\n animationId?: string;\n correlationId?: string;\n}\n\nexport class CameraRenderResult implements Result {\n public data = undefined;\n public onAnimationCompleted: StreamApiEventDispatcher<string>;\n public onFrameReceived: StreamApiEventDispatcher<Frame>;\n\n public constructor(\n stream: StreamApi,\n decodeFrame: FrameDecoder,\n { animationId, correlationId }: RenderResultIds,\n timeout?: number
|
|
1
|
+
{"version":3,"file":"cameraRenderResult.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/cameraRenderResult.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAShE,MAAM,OAAO,kBAAkB;IAK7B,YACE,MAAiB,EACjB,WAAyB,EACzB,EAAE,WAAW,EAAE,aAAa,EAAmB,EAC/C,OAAgB;QARX,SAAI,GAAG,SAAS,CAAC;QAUtB,IAAI,CAAC,oBAAoB,GAAG,IAAI,wBAAwB,CACtD,MAAM,EACN,CAAC,GAAG,EAAE,EAAE,mBAAC,OAAA,CAAA,MAAA,MAAA,MAAA,GAAG,CAAC,KAAK,0CAAE,kBAAkB,0CAAE,WAAW,0CAAE,GAAG,MAAK,WAAW,CAAA,EAAA,EACxE,CAAC,GAAG,EAAE,EAAE,mBAAC,OAAA,CAAA,MAAA,MAAA,MAAA,GAAG,CAAC,KAAK,0CAAE,kBAAkB,0CAAE,WAAW,0CAAE,GAAG,KAAI,SAAS,CAAA,EAAA,EACrE,OAAO,CACR,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAwB,CACjD,MAAM,EACN,CAAC,GAAG,EAAE,EAAE;;YACN,OAAA,CAAC,CAAC,CAAA,MAAA,MAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,SAAS,0CAAE,mBAAmB,0CAAE,IAAI,CACjD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,aAAa,CAC7B,CAAA,CAAA;SAAA,EACH,CAAC,GAAG,EAAE,EAAE;;YACN,OAAA,CAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,SAAS,KAAI,IAAI;gBAC5B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;gBACpC,CAAC,CAAC,SAAS,CAAA;SAAA,EACf,OAAO,CACR,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { StreamApi } from '@vertexvis/stream-api';\n\nimport type { FrameDecoder } from '../mappers';\nimport { StreamApiEventDispatcher } from '../stream/dispatcher';\nimport { Result } from '../stream/result';\nimport { Frame } from '../types';\n\nexport interface RenderResultIds {\n animationId?: string;\n correlationId?: string;\n}\n\nexport class CameraRenderResult implements Result {\n public data = undefined;\n public onAnimationCompleted: StreamApiEventDispatcher<string>;\n public onFrameReceived: StreamApiEventDispatcher<Frame>;\n\n public constructor(\n stream: StreamApi,\n decodeFrame: FrameDecoder,\n { animationId, correlationId }: RenderResultIds,\n timeout?: number,\n ) {\n this.onAnimationCompleted = new StreamApiEventDispatcher(\n stream,\n (msg) => msg.event?.animationCompleted?.animationId?.hex === animationId,\n (msg) => msg.event?.animationCompleted?.animationId?.hex || undefined,\n timeout,\n );\n this.onFrameReceived = new StreamApiEventDispatcher<Frame>(\n stream,\n (msg) =>\n !!msg.request?.drawFrame?.frameCorrelationIds?.some(\n (id) => id === correlationId,\n ),\n (msg) =>\n msg.request?.drawFrame != null\n ? decodeFrame(msg.request.drawFrame)\n : undefined,\n timeout,\n );\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorMaterial.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/colorMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAczC,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,CAAC;IACb,OAAO,EAAE;QACP,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL;IACD,OAAO,EAAE;QACP,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL;IAED,QAAQ,EAAE;QACR,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL;IACD,QAAQ,EAAE;QACR,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,CAAS,EACT,CAAS,EACT,CAAS,EACT,OAAgB,EACD,EAAE;IACjB,OAAO;QACL,GAAG,YAAY;QACf,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,YAAY,CAAC,OAAO;QACxC,OAAO,EAAE;YACP,CAAC;YACD,CAAC;YACD,CAAC;YACD,CAAC,EAAE,CAAC;SACL;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,OAAgB,EAAiB,EAAE;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAEvC,OAAO;QACL,GAAG,YAAY;QACf,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,YAAY,CAAC,OAAO;QACxC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE;KACpE,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { Color } from '@vertexvis/utils';\n\n/**\n * The `ColorMaterial` interface is here.\n */\nexport interface ColorMaterial {\n opacity: number;\n glossiness: number;\n diffuse: Color.Color;\n ambient: Color.Color;\n specular: Color.Color;\n emissive: Color.Color;\n}\n\nexport const defaultColor: ColorMaterial = {\n opacity: 255,\n glossiness: 4,\n diffuse: {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n },\n ambient: {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n },\n\n specular: {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n },\n emissive: {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n },\n};\n\n/**\n * This helper creates an rgb value color\n * @param hex\n * @param opacity\n */\nexport const create = (\n r: number,\n g: number,\n b: number,\n opacity?: number
|
|
1
|
+
{"version":3,"file":"colorMaterial.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/colorMaterial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAczC,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,CAAC;IACb,OAAO,EAAE;QACP,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL;IACD,OAAO,EAAE;QACP,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL;IAED,QAAQ,EAAE;QACR,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL;IACD,QAAQ,EAAE;QACR,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,CAAS,EACT,CAAS,EACT,CAAS,EACT,OAAgB,EACD,EAAE;IACjB,OAAO;QACL,GAAG,YAAY;QACf,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,YAAY,CAAC,OAAO;QACxC,OAAO,EAAE;YACP,CAAC;YACD,CAAC;YACD,CAAC;YACD,CAAC,EAAE,CAAC;SACL;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,OAAgB,EAAiB,EAAE;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAEvC,OAAO;QACL,GAAG,YAAY;QACf,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,YAAY,CAAC,OAAO;QACxC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE;KACpE,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { Color } from '@vertexvis/utils';\n\n/**\n * The `ColorMaterial` interface is here.\n */\nexport interface ColorMaterial {\n opacity: number;\n glossiness: number;\n diffuse: Color.Color;\n ambient: Color.Color;\n specular: Color.Color;\n emissive: Color.Color;\n}\n\nexport const defaultColor: ColorMaterial = {\n opacity: 255,\n glossiness: 4,\n diffuse: {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n },\n ambient: {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n },\n\n specular: {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n },\n emissive: {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n },\n};\n\n/**\n * This helper creates an rgb value color\n * @param hex\n * @param opacity\n */\nexport const create = (\n r: number,\n g: number,\n b: number,\n opacity?: number,\n): ColorMaterial => {\n return {\n ...defaultColor,\n opacity: opacity ?? defaultColor.opacity,\n diffuse: {\n r,\n g,\n b,\n a: 0,\n },\n };\n};\n\n/**\n * This helper converts a hex string to a ColorMaterial object\n * @param hex\n * @param opacity\n */\nexport const fromHex = (hex: string, opacity?: number): ColorMaterial => {\n const color = Color.fromHexString(hex);\n\n return {\n ...defaultColor,\n opacity: opacity ?? defaultColor.opacity,\n diffuse: color != null ? { ...color } : { ...defaultColor.diffuse },\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crossSectioner.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/crossSectioner.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,YACU,MAAiB,EACjB,IAAqC;QADrC,WAAM,GAAN,MAAM,CAAW;QACjB,SAAI,GAAJ,IAAI,CAAiC;IAC5C,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACI,KAAK,CAAC,MAAM,CACjB,eAAgD;QAIhD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CACjD;YACE,eAAe,EAAE;gBACf,aAAa,EAAE,eAAe,CAAC,aAAa;gBAC5C,cAAc,EAAE,eAAe,CAAC,cAAc;gBAC9C,SAAS,EACP,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,KAAI,IAAI;oBAChC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE;oBACtC,CAAC,CAAC,IAAI;aACX;SACF,EACD,IAAI,CACL,CAAC;QAEF,OAAO,GAAG,CAAC,qBAAqB,IAAI,SAAS,CAAC;IAChD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF","sourcesContent":["import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport { StreamApi } from '@vertexvis/stream-api';\n\nimport { CrossSectioning } from '../types';\n\n/**\n * The `CrossSectioner` class is here.\n */\nexport class CrossSectioner {\n public constructor(\n private stream: StreamApi,\n private data: CrossSectioning.CrossSectioning
|
|
1
|
+
{"version":3,"file":"crossSectioner.js","sourceRoot":"","sources":["../../../../../src/lib/scenes/crossSectioner.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,YACU,MAAiB,EACjB,IAAqC;QADrC,WAAM,GAAN,MAAM,CAAW;QACjB,SAAI,GAAJ,IAAI,CAAiC;IAC5C,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACI,KAAK,CAAC,MAAM,CACjB,eAAgD;QAIhD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CACjD;YACE,eAAe,EAAE;gBACf,aAAa,EAAE,eAAe,CAAC,aAAa;gBAC5C,cAAc,EAAE,eAAe,CAAC,cAAc;gBAC9C,SAAS,EACP,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,KAAI,IAAI;oBAChC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE;oBACtC,CAAC,CAAC,IAAI;aACX;SACF,EACD,IAAI,CACL,CAAC;QAEF,OAAO,GAAG,CAAC,qBAAqB,IAAI,SAAS,CAAC;IAChD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF","sourcesContent":["import { vertexvis } from '@vertexvis/frame-streaming-protos';\nimport { StreamApi } from '@vertexvis/stream-api';\n\nimport { CrossSectioning } from '../types';\n\n/**\n * The `CrossSectioner` class is here.\n */\nexport class CrossSectioner {\n public constructor(\n private stream: StreamApi,\n private data: CrossSectioning.CrossSectioning,\n ) {}\n\n /**\n * Performs request on the stream to update the cross sectioning config.\n *\n * @example\n * ```typescript\n * const viewer = document.querySelector(\"vertex-viewer\");\n * const scene = await viewer.scene();\n * const crossSectioner = scene.crossSectioning();\n *\n * await scene.crossSectioning().update({\n * sectionPlanes: [\n * {\n * normal: {\n * x: 1,\n * y: 0,\n * z: 0,\n * },\n * offset: 0,\n * },\n * ],\n * highlightColor: Color.fromHexString(\"#ff0000\"),\n * lineWidth: 0.5,\n * });\n * ```\n *\n * @see {@link SectionPlane} for more information on the section planes.\n *\n * @see {@link CrossSectioning} for more information on the highlight color and\n * line width.\n *\n * @param crossSectioning The new cross sectioning.\n */\n public async update(\n crossSectioning: CrossSectioning.CrossSectioning,\n ): Promise<\n vertexvis.protobuf.stream.IUpdateCrossSectioningResult | undefined\n > {\n const res = await this.stream.updateCrossSectioning(\n {\n crossSectioning: {\n sectionPlanes: crossSectioning.sectionPlanes,\n highlightColor: crossSectioning.highlightColor,\n lineWidth:\n crossSectioning?.lineWidth != null\n ? { value: crossSectioning.lineWidth }\n : null,\n },\n },\n true,\n );\n\n return res.updateCrossSectioning || undefined;\n }\n\n public current(): CrossSectioning.CrossSectioning {\n return this.data;\n }\n}\n"]}
|