@vertexvis/viewer 0.13.2-canary.9 → 0.14.0
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/{_commonjsHelpers-537d719a.js → _commonjsHelpers-dcc4cf71.js} +21 -0
- package/dist/cjs/{app-globals-3671e828.js → app-globals-2035678d.js} +1 -1
- package/dist/cjs/{browser.esm-075810bf.js → browser.esm-0bcdc581.js} +1 -1
- package/dist/cjs/{bundle.esm-618a5fe9.js → bundle.esm-22b6f2d6.js} +35 -1
- package/dist/cjs/{config-fb124bac.js → config-c63caa4f.js} +3 -2
- package/dist/cjs/{cursors-d71f6a74.js → cursors-f5d3c9a6.js} +13 -1
- package/dist/cjs/{dom-57ef84e9.js → dom-8d90bfaf.js} +1 -1
- package/dist/cjs/dom-d1bbd67c.js +10 -0
- package/dist/cjs/elementRectObserver-9b28f182.js +25 -0
- package/dist/cjs/entities-9eb7e608.js +41 -0
- package/dist/cjs/{entities-90f1347a.js → entities-e71231d8.js} +4 -4
- package/dist/cjs/{grpc-web-client.umd-60a79aae.js → grpc-web-client.umd-2af20c1b.js} +1 -1
- package/dist/cjs/{index-e100709a.js → index-4138aa2c.js} +1 -0
- package/dist/cjs/{index-3bc6bac0.js → index-b9d13137.js} +1 -1
- package/dist/cjs/index.cjs.js +25 -22
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{mapper-80ee2957.js → mapper-08bbab48.js} +4 -4
- package/dist/cjs/{markup-7f7de5f2.js → markup-f7e61d16.js} +2 -2
- package/dist/cjs/{measurement-f1ae9248.js → measurement-3367e9b7.js} +2 -2
- package/dist/cjs/{model-55abd9ab.js → model-5ca87867.js} +1 -1
- package/dist/cjs/model-a9cfd037.js +246 -0
- package/dist/cjs/{overlays-68e8eff2.js → overlays-b0ba69fd.js} +2 -2
- package/dist/cjs/{png-decoder-076131d8.js → png-decoder-ef097f37.js} +2 -2
- package/dist/cjs/{results-e9496869.js → results-178e89a3.js} +1 -1
- package/dist/cjs/{scene-92728420.js → scene-b6b78909.js} +49 -12
- package/dist/cjs/{stencil-a664cd10.js → stencil-ef19638e.js} +5 -1
- package/dist/cjs/{streamAttributes-81eb52f2.js → streamAttributes-c343bdc8.js} +1993 -78
- package/dist/cjs/utils-78928e4e.js +162 -0
- package/dist/cjs/{utils-6397efca.js → utils-b157b0af.js} +1 -1
- package/dist/cjs/{utils-463cd52e.js → utils-c74b8bf0.js} +1 -1
- package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +16 -6
- package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +16 -14
- package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +3 -3
- package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +154 -27
- package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/{vertex-viewer-dom-element_3.cjs.entry.js → vertex-viewer-dom-element_2.cjs.entry.js} +20 -178
- package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +191 -0
- package/dist/cjs/vertex-viewer-icon.cjs.entry.js +6 -3
- package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +49 -196
- package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +5 -5
- package/dist/cjs/vertex-viewer-markup.cjs.entry.js +5 -5
- package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +8 -7
- package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +16 -15
- package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +10 -9
- package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +18 -35
- package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +8 -7
- package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +12 -11
- package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +167 -0
- package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +276 -0
- package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +322 -0
- package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +13272 -0
- package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +8 -7
- package/dist/cjs/vertex-viewer.cjs.entry.js +119 -52
- package/dist/cjs/viewer.cjs.js +4 -4
- package/dist/cjs/{viewport-54b1389d.js → viewport-5ca619f7.js} +14 -4
- package/dist/collection/__mocks__/regl-shape.js +6 -0
- package/dist/collection/__mocks__/regl.js +3 -0
- package/dist/collection/collection-manifest.json +5 -0
- package/dist/collection/components/scene-tree/lib/controller.js +17 -5
- package/dist/collection/components/scene-tree/lib/errors.js +7 -1
- package/dist/collection/components/scene-tree/lib/viewer-ops.js +12 -1
- package/dist/collection/components/scene-tree/scene-tree.js +112 -22
- package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.css +0 -7
- package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js +34 -12
- package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +14 -2
- package/dist/collection/components/viewer/viewer.js +79 -14
- package/dist/collection/components/viewer-dom-element/viewer-dom-element.js +32 -4
- package/dist/collection/components/viewer-dom-group/utils.js +3 -2
- package/dist/collection/components/viewer-dom-group/viewer-dom-group.js +30 -2
- package/dist/collection/components/viewer-icon/viewer-icon.js +5 -2
- package/dist/collection/components/viewer-markup/utils.js +3 -2
- package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-results.js +2 -2
- package/dist/collection/components/viewer-pin-group/pin-renderer.js +12 -0
- package/dist/collection/components/viewer-pin-group/utils.js +24 -0
- package/dist/collection/components/viewer-pin-group/viewer-pin-group.css +83 -0
- package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +276 -0
- package/dist/collection/components/viewer-pin-label/utils.js +4 -0
- package/dist/collection/components/viewer-pin-label/viewer-pin-label.css +154 -0
- package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +410 -0
- package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.css +36 -0
- package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.js +61 -0
- package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.css +9 -0
- package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js +277 -0
- package/dist/collection/components/viewer-transform-widget/__mocks__/widget.js +21 -0
- package/dist/collection/components/viewer-transform-widget/util.js +78 -0
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.css +48 -0
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +442 -0
- package/dist/collection/components/viewer-transform-widget/widget.js +259 -0
- package/dist/collection/lib/cursors.js +11 -1
- package/dist/collection/lib/interactions/baseInteractionHandler.js +9 -2
- package/dist/collection/lib/interactions/flyToPositionKeyInteraction.js +4 -3
- package/dist/collection/lib/interactions/interactionApi.js +21 -1
- package/dist/collection/lib/interactions/interactionApiOrthographic.js +18 -1
- package/dist/collection/lib/interactions/mouseInteractionHandler.js +4 -4
- package/dist/collection/lib/interactions/mouseInteractions.js +24 -1
- package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +1 -2
- package/dist/collection/lib/interactions/pointerInteractionHandler.js +3 -3
- package/dist/collection/lib/mappers/streamAttributes.js +4 -2
- package/dist/collection/lib/pins/controller.js +100 -0
- package/dist/collection/lib/pins/interactions.js +183 -0
- package/dist/collection/lib/pins/model.js +136 -0
- package/dist/collection/lib/rendering/canvas.js +6 -28
- package/dist/collection/lib/scenes/camera.js +34 -2
- package/dist/collection/lib/scenes/colorMaterial.js +8 -8
- package/dist/collection/lib/scenes/mapper.js +2 -1
- package/dist/collection/lib/scenes/queries.js +6 -4
- package/dist/collection/lib/transforms/axis-lines.js +31 -0
- package/dist/collection/lib/transforms/axis-rotation.js +34 -0
- package/dist/collection/lib/transforms/axis-translation.js +30 -0
- package/dist/collection/lib/transforms/controller.js +117 -0
- package/dist/collection/lib/transforms/drawable.js +47 -0
- package/dist/collection/lib/transforms/hits.js +51 -0
- package/dist/collection/lib/transforms/line.js +58 -0
- package/dist/collection/lib/transforms/mesh.js +35 -0
- package/dist/collection/lib/transforms/shape.js +2 -0
- package/dist/collection/lib/transforms/util.js +4 -0
- package/dist/collection/lib/types/depthBuffer.js +2 -2
- package/dist/collection/lib/types/frameCamera.js +4 -6
- package/dist/collection/lib/types/viewport.js +14 -4
- package/dist/custom-elements/index.d.ts +30 -0
- package/dist/custom-elements/index.js +16835 -335
- package/dist/esm/{_commonjsHelpers-9943807e.js → _commonjsHelpers-11ca3be1.js} +20 -1
- package/dist/esm/{app-globals-3a04a531.js → app-globals-40df99a0.js} +1 -1
- package/dist/esm/{browser.esm-e72d80ad.js → browser.esm-1ddb69c9.js} +1 -1
- package/dist/esm/{bundle.esm-8ceccb91.js → bundle.esm-ce2c7ad3.js} +36 -2
- package/dist/esm/{config-fb7cd8ff.js → config-7075833a.js} +3 -2
- package/dist/esm/{cursors-fc2deed7.js → cursors-98b7d89d.js} +12 -2
- package/dist/esm/{dom-2cd18856.js → dom-5b164305.js} +1 -1
- package/dist/esm/dom-be140992.js +8 -0
- package/dist/esm/elementRectObserver-39cf7b95.js +23 -0
- package/dist/esm/{entities-78557270.js → entities-46be90d5.js} +4 -4
- package/dist/esm/entities-ce81dd7f.js +41 -0
- package/dist/esm/{grpc-web-client.umd-5982b7b0.js → grpc-web-client.umd-5409853c.js} +1 -1
- package/dist/esm/{index-10c1495a.js → index-a9fb8318.js} +1 -1
- package/dist/esm/{index-455380d0.js → index-e841d91b.js} +1 -1
- package/dist/esm/index.js +15 -14
- package/dist/esm/index.mjs +15 -14
- package/dist/esm/loader.js +4 -4
- package/dist/esm/loader.mjs +4 -4
- package/dist/esm/{mapper-da36de17.js → mapper-bde6c607.js} +4 -4
- package/dist/esm/{markup-c313d99c.js → markup-8904f2fe.js} +2 -2
- package/dist/esm/{measurement-544b69d5.js → measurement-3f9b0ae0.js} +2 -2
- package/dist/esm/{model-2a34b443.js → model-e54b081f.js} +1 -1
- package/dist/esm/model-f679c493.js +241 -0
- package/dist/esm/{overlays-354e275c.js → overlays-ea2d45ec.js} +2 -2
- package/dist/esm/{png-decoder-07de80d1.js → png-decoder-d4b65417.js} +2 -2
- package/dist/esm/{results-4d0c3568.js → results-3b4df2cf.js} +1 -1
- package/dist/esm/{scene-2bfcce74.js → scene-22ebacfd.js} +49 -12
- package/dist/esm/{stencil-9bf7fb9e.js → stencil-8b20e5a8.js} +5 -2
- package/dist/esm/{streamAttributes-d0b384b3.js → streamAttributes-72a92676.js} +1982 -67
- package/dist/esm/{utils-3ea0acdd.js → utils-0b980078.js} +1 -1
- package/dist/esm/utils-c714e2f7.js +153 -0
- package/dist/esm/{utils-e0941c61.js → utils-f11bd6f7.js} +1 -1
- package/dist/esm/vertex-scene-tree-search_3.entry.js +16 -6
- package/dist/esm/vertex-scene-tree-table-cell.entry.js +16 -14
- package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +3 -3
- package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
- package/dist/esm/vertex-scene-tree.entry.js +154 -27
- package/dist/esm/vertex-viewer-button_3.entry.js +3 -3
- package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
- package/dist/esm/{vertex-viewer-dom-element_3.entry.js → vertex-viewer-dom-element_2.entry.js} +21 -178
- package/dist/esm/vertex-viewer-dom-group.entry.js +187 -0
- package/dist/esm/vertex-viewer-icon.entry.js +6 -3
- package/dist/esm/vertex-viewer-layer.entry.js +1 -1
- package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +8 -155
- package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
- package/dist/esm/vertex-viewer-markup.entry.js +5 -5
- package/dist/esm/vertex-viewer-measurement-details.entry.js +8 -7
- package/dist/esm/vertex-viewer-measurement-distance.entry.js +16 -15
- package/dist/esm/vertex-viewer-measurement-line_2.entry.js +10 -9
- package/dist/esm/vertex-viewer-measurement-precise.entry.js +15 -32
- package/dist/esm/vertex-viewer-measurement-tool.entry.js +8 -7
- package/dist/esm/vertex-viewer-measurements.entry.js +12 -11
- package/dist/esm/vertex-viewer-pin-group.entry.js +163 -0
- package/dist/esm/vertex-viewer-pin-label_2.entry.js +271 -0
- package/dist/esm/vertex-viewer-pin-tool.entry.js +318 -0
- package/dist/esm/vertex-viewer-transform-widget.entry.js +13268 -0
- package/dist/esm/vertex-viewer-view-cube.entry.js +8 -7
- package/dist/esm/vertex-viewer.entry.js +118 -51
- package/dist/esm/viewer.js +4 -4
- package/dist/esm/{viewport-5cc7b128.js → viewport-e39e2eba.js} +14 -4
- package/dist/types/__mocks__/regl-shape.d.ts +5 -0
- package/dist/types/__mocks__/regl.d.ts +5 -0
- package/dist/types/components/scene-tree/lib/controller.d.ts +13 -1
- package/dist/types/components/scene-tree/lib/errors.d.ts +3 -1
- package/dist/types/components/scene-tree/lib/viewer-ops.d.ts +1 -0
- package/dist/types/components/scene-tree/scene-tree.d.ts +16 -4
- package/dist/types/components/scene-tree-table-cell/scene-tree-table-cell.d.ts +6 -2
- package/dist/types/components/scene-tree-table-layout/scene-tree-table-layout.d.ts +2 -0
- package/dist/types/components/viewer/viewer.d.ts +13 -1
- package/dist/types/components/viewer-dom-element/viewer-dom-element.d.ts +10 -2
- package/dist/types/components/viewer-dom-group/viewer-dom-group.d.ts +9 -1
- package/dist/types/components/viewer-icon/viewer-icon.d.ts +1 -1
- package/dist/types/components/viewer-pin-group/pin-renderer.d.ts +8 -0
- package/dist/types/components/viewer-pin-group/utils.d.ts +2 -0
- package/dist/types/components/viewer-pin-group/viewer-pin-group.d.ts +49 -0
- package/dist/types/components/viewer-pin-label/utils.d.ts +1 -0
- package/dist/types/components/viewer-pin-label/viewer-pin-label.d.ts +77 -0
- package/dist/types/components/viewer-pin-label-line/viewer-pin-label-line.d.ts +7 -0
- package/dist/types/components/viewer-pin-tool/viewer-pin-tool.d.ts +68 -0
- package/dist/types/components/viewer-transform-widget/__mocks__/widget.d.ts +11 -0
- package/dist/types/components/viewer-transform-widget/util.d.ts +5 -0
- package/dist/types/components/viewer-transform-widget/viewer-transform-widget.d.ts +81 -0
- package/dist/types/components/viewer-transform-widget/widget.d.ts +74 -0
- package/dist/types/components.d.ts +303 -12
- package/dist/types/interfaces.d.ts +1 -0
- package/dist/types/lib/cursors.d.ts +10 -0
- package/dist/types/lib/interactions/baseInteractionHandler.d.ts +4 -3
- package/dist/types/lib/interactions/interactionApi.d.ts +10 -1
- package/dist/types/lib/interactions/interactionApiOrthographic.d.ts +7 -0
- package/dist/types/lib/interactions/mouseInteractionHandler.d.ts +2 -2
- package/dist/types/lib/interactions/mouseInteractions.d.ts +6 -0
- package/dist/types/lib/pins/controller.d.ts +70 -0
- package/dist/types/lib/pins/interactions.d.ts +30 -0
- package/dist/types/lib/pins/model.d.ts +104 -0
- package/dist/types/lib/rendering/canvas.d.ts +1 -2
- package/dist/types/lib/scenes/camera.d.ts +10 -0
- package/dist/types/lib/scenes/colorMaterial.d.ts +1 -0
- package/dist/types/lib/scenes/queries.d.ts +4 -2
- package/dist/types/lib/transforms/axis-lines.d.ts +6 -0
- package/dist/types/lib/transforms/axis-rotation.d.ts +6 -0
- package/dist/types/lib/transforms/axis-translation.d.ts +6 -0
- package/dist/types/lib/transforms/controller.d.ts +17 -0
- package/dist/types/lib/transforms/drawable.d.ts +26 -0
- package/dist/types/lib/transforms/hits.d.ts +10 -0
- package/dist/types/lib/transforms/line.d.ts +31 -0
- package/dist/types/lib/transforms/mesh.d.ts +23 -0
- package/dist/types/lib/transforms/shape.d.ts +3 -0
- package/dist/types/lib/transforms/util.d.ts +2 -0
- package/dist/types/lib/types/frameCamera.d.ts +1 -0
- package/dist/types/lib/types/viewport.d.ts +8 -0
- package/dist/types/regl-shape.d.ts +26 -0
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/p-058632f4.js +4 -0
- package/dist/viewer/p-07aeee89.js +10 -0
- package/dist/viewer/{p-e75bba97.js → p-083f427e.js} +1 -1
- package/dist/viewer/{p-a455ae02.entry.js → p-08eda2b2.entry.js} +1 -1
- package/dist/viewer/{p-bcb66f97.js → p-096e60bd.js} +1 -1
- package/dist/viewer/p-0bc4b3f7.js +4 -0
- package/dist/viewer/p-148c5f1a.js +4 -0
- package/dist/viewer/p-1db9bd1a.entry.js +4 -0
- package/dist/viewer/{p-70ca1ea7.entry.js → p-1f251549.entry.js} +1 -1
- package/dist/viewer/p-29986489.js +4 -0
- package/dist/viewer/{p-cafa57a6.js → p-2e581b2a.js} +1 -1
- package/dist/viewer/{p-d2bcf788.entry.js → p-33daeb09.entry.js} +1 -1
- package/dist/viewer/p-39803f8f.js +4 -0
- package/dist/viewer/p-465a92d9.entry.js +4 -0
- package/dist/viewer/p-4a65ddb3.entry.js +4 -0
- package/dist/viewer/{p-099fe6ca.entry.js → p-4aaf02b4.entry.js} +1 -1
- package/dist/viewer/{p-31658489.entry.js → p-4c3a3738.entry.js} +1 -1
- package/dist/viewer/{p-e38458da.js → p-4d37d97c.js} +1 -1
- package/dist/viewer/p-4fdf8553.entry.js +4 -0
- package/dist/viewer/p-5679f46b.entry.js +4 -0
- package/dist/viewer/p-5809b400.js +4 -0
- package/dist/viewer/{p-fa9a0bed.js → p-58dacdce.js} +1 -1
- package/dist/viewer/p-61a042f0.entry.js +4 -0
- package/dist/viewer/{p-b8774c9c.js → p-6c377932.js} +1 -1
- package/dist/viewer/p-6d379d4a.js +4 -0
- package/dist/viewer/p-6d70b198.entry.js +4 -0
- package/dist/viewer/p-6e7e094a.entry.js +4 -0
- package/dist/viewer/{p-661f0612.js → p-70e5e8a8.js} +1 -1
- package/dist/viewer/p-74102b29.entry.js +32 -0
- package/dist/viewer/p-7a5a9a93.entry.js +4 -0
- package/dist/viewer/p-7c755e0e.entry.js +4 -0
- package/dist/viewer/{p-3a20a038.js → p-92fe4417.js} +1 -1
- package/dist/viewer/{p-7e0328aa.js → p-98e6a50e.js} +1 -1
- package/dist/viewer/{p-388a43f7.js → p-990f98c2.js} +1 -1
- package/dist/viewer/{p-487e054a.js → p-99352cf0.js} +1 -1
- package/dist/viewer/{p-1ca95f9a.entry.js → p-99799a71.entry.js} +1 -1
- package/dist/viewer/p-9acd1b44.js +4 -0
- package/dist/viewer/{p-69058178.js → p-9bcde9c8.js} +1 -1
- package/dist/viewer/{p-5b342e97.js → p-a2ef15e5.js} +1 -1
- package/dist/viewer/{p-61b1097b.entry.js → p-a32cc378.entry.js} +1 -1
- package/dist/viewer/p-a380f0c2.js +4 -0
- package/dist/viewer/{p-41028d3b.entry.js → p-af37b63e.entry.js} +1 -1
- package/dist/viewer/p-b6b727a6.entry.js +4 -0
- package/dist/viewer/p-c2e3312b.js +4 -0
- package/dist/viewer/{p-4717c98e.entry.js → p-c9f91798.entry.js} +1 -1
- package/dist/viewer/p-ca518dcb.entry.js +4 -0
- package/dist/viewer/p-d828fd18.entry.js +4 -0
- package/dist/viewer/p-d996b1d2.entry.js +4 -0
- package/dist/viewer/{p-3f0f83ad.js → p-db01460a.js} +1 -1
- package/dist/viewer/p-db716103.entry.js +4 -0
- package/dist/viewer/p-df8fbe56.js +4 -0
- package/dist/viewer/p-dfe5a97d.js +4 -0
- package/dist/viewer/p-e42cb163.js +4 -0
- package/dist/viewer/p-eb8e5db5.js +4 -0
- package/dist/viewer/{p-46459921.entry.js → p-ebb801c3.entry.js} +1 -1
- package/dist/viewer/p-ebd85d58.entry.js +4 -0
- package/dist/viewer/p-eefae62a.entry.js +4 -0
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +12 -10
- package/readme.md +4 -4
- package/dist/viewer/p-0a189e62.entry.js +0 -4
- package/dist/viewer/p-112455b1.js +0 -4
- package/dist/viewer/p-3561d910.js +0 -4
- package/dist/viewer/p-49d36e94.entry.js +0 -4
- package/dist/viewer/p-73a5eacc.entry.js +0 -4
- package/dist/viewer/p-77be081a.js +0 -4
- package/dist/viewer/p-809d09d9.js +0 -4
- package/dist/viewer/p-858bd2c7.entry.js +0 -4
- package/dist/viewer/p-89b66838.entry.js +0 -32
- package/dist/viewer/p-90bb0a1f.entry.js +0 -4
- package/dist/viewer/p-a93a63a9.js +0 -4
- package/dist/viewer/p-b043b076.entry.js +0 -4
- package/dist/viewer/p-b0ac6b3c.entry.js +0 -4
- package/dist/viewer/p-bcde5521.entry.js +0 -4
- package/dist/viewer/p-d1584404.js +0 -4
- package/dist/viewer/p-d32b54cb.js +0 -4
- package/dist/viewer/p-d3a20af4.entry.js +0 -4
- package/dist/viewer/p-d9f99f4d.entry.js +0 -4
- package/dist/viewer/p-ebd55df7.entry.js +0 -4
- package/dist/viewer/p-f0411993.entry.js +0 -4
- package/dist/viewer/p-f482325b.js +0 -10
- package/dist/viewer/p-fad9693e.js +0 -4
- package/dist/viewer/p-ffdeb08c.js +0 -4
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { EventDispatcher } from '@vertexvis/utils';
|
|
2
|
+
export function isTextPin(pin) {
|
|
3
|
+
return pin != null && pin.label != null;
|
|
4
|
+
}
|
|
5
|
+
export function isDefaultPin(pin) {
|
|
6
|
+
return pin != null && pin.label == null;
|
|
7
|
+
}
|
|
8
|
+
export class PinModel {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.entities = {};
|
|
11
|
+
this.entitiesChanged = new EventDispatcher();
|
|
12
|
+
this.selectionChanged = new EventDispatcher();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Registers an entity to be drawn in the canvas
|
|
16
|
+
*
|
|
17
|
+
* @param pin A pin entity to draw.
|
|
18
|
+
* @returns `true` if the entity has been added.
|
|
19
|
+
*/
|
|
20
|
+
addPin(pin, surpressEvent = false) {
|
|
21
|
+
if (this.entities[pin.id] == null) {
|
|
22
|
+
this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
|
|
23
|
+
if (!surpressEvent) {
|
|
24
|
+
this.entitiesChanged.emit(this.getPins());
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Clears all registered entities from the model.
|
|
34
|
+
*/
|
|
35
|
+
clearPins() {
|
|
36
|
+
this.getPins().forEach((e) => this.removePin(e));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Returns all the entities registered with the model.
|
|
40
|
+
*/
|
|
41
|
+
getPins() {
|
|
42
|
+
return Object.keys(this.entities).map((key) => this.entities[key]);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns single entity by id if present in the model.
|
|
46
|
+
*/
|
|
47
|
+
getPinById(id) {
|
|
48
|
+
return this.entities[id];
|
|
49
|
+
}
|
|
50
|
+
getSelectedPinId() {
|
|
51
|
+
return this.selectedPinId;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Unregisters an entity from the model.
|
|
55
|
+
*
|
|
56
|
+
* @param entity The entity to remove.
|
|
57
|
+
* @returns `true` if the entity was removed.
|
|
58
|
+
*/
|
|
59
|
+
removePin(entity) {
|
|
60
|
+
if (this.entities[entity.id] != null) {
|
|
61
|
+
delete this.entities[entity.id];
|
|
62
|
+
this.entitiesChanged.emit(this.getPins());
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Sets the set of entities to be placed with the model.
|
|
71
|
+
*
|
|
72
|
+
* @param entities A set of entities to draw.
|
|
73
|
+
* @returns `true` if the entity has been added.
|
|
74
|
+
*/
|
|
75
|
+
setPins(pins) {
|
|
76
|
+
this.clearPins();
|
|
77
|
+
pins.forEach((e) => this.addPin(e, true));
|
|
78
|
+
this.entitiesChanged.emit(this.getPins());
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Sets the set of entities to be placed with the model.
|
|
83
|
+
*
|
|
84
|
+
* @param pin A pin to set
|
|
85
|
+
* @returns `true` if the entity has been set
|
|
86
|
+
*/
|
|
87
|
+
setPin(pin) {
|
|
88
|
+
this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
|
|
89
|
+
this.entitiesChanged.emit(this.getPins());
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Sets the set of entities to be placed with the model.
|
|
94
|
+
*
|
|
95
|
+
* @param pin A pin to set
|
|
96
|
+
* @returns `true` if the entity has been set
|
|
97
|
+
*/
|
|
98
|
+
updatePin(pin) {
|
|
99
|
+
const pinById = this.getPinById(pin.id);
|
|
100
|
+
if (pinById != null) {
|
|
101
|
+
this.entities = Object.assign(Object.assign({}, this.entities), { [pin.id]: pin });
|
|
102
|
+
this.entitiesChanged.emit(this.getPins());
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Registers an event listener that will be invoked when the model's
|
|
109
|
+
* pin entities change.
|
|
110
|
+
*
|
|
111
|
+
* @param listener The listener to add.
|
|
112
|
+
* @returns A disposable that can be used to remove the listener.
|
|
113
|
+
*/
|
|
114
|
+
onEntitiesChanged(listener) {
|
|
115
|
+
return this.entitiesChanged.on(listener);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Registers an event listener that will be invoked when the model's
|
|
119
|
+
* pin selection changes
|
|
120
|
+
*
|
|
121
|
+
* @param listener The listener to add.
|
|
122
|
+
* @returns A disposable that can be used to remove the listener.
|
|
123
|
+
*/
|
|
124
|
+
onSelectionChange(listener) {
|
|
125
|
+
return this.selectionChanged.on(listener);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Sets the selected pin Id
|
|
129
|
+
* @param pinId
|
|
130
|
+
*/
|
|
131
|
+
setSelectedPin(pinId) {
|
|
132
|
+
this.selectedPinId = pinId;
|
|
133
|
+
this.selectionChanged.emit(this.selectedPinId);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3BpbnMvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLGVBQWUsRUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBa0N6RSxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVM7RUFDakMsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFLLEdBQWUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQVM7RUFDcEMsT0FBTyxHQUFHLElBQUksSUFBSSxJQUFLLEdBQWUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLE9BQU8sUUFBUTtFQUFyQjtJQUNVLGFBQVEsR0FBd0IsRUFBRSxDQUFDO0lBR25DLG9CQUFlLEdBQUcsSUFBSSxlQUFlLEVBQVMsQ0FBQztJQUMvQyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsRUFBc0IsQ0FBQztFQWlKdkUsQ0FBQztFQS9JQzs7Ozs7S0FLRztFQUNJLE1BQU0sQ0FBQyxHQUFRLEVBQUUsYUFBYSxHQUFHLEtBQUs7SUFDM0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUU7TUFDakMsSUFBSSxDQUFDLFFBQVEsbUNBQ1IsSUFBSSxDQUFDLFFBQVEsS0FDaEIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUNkLENBQUM7TUFFRixJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO09BQzNDO01BQ0QsT0FBTyxJQUFJLENBQUM7S0FDYjtTQUFNO01BQ0wsT0FBTyxLQUFLLENBQUM7S0FDZDtFQUNILENBQUM7RUFFRDs7S0FFRztFQUNJLFNBQVM7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
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Dimensions } from '@vertexvis/geometry';
|
|
2
1
|
import { loadImageBytes } from './imageLoaders';
|
|
3
2
|
const REPORTING_INTERVAL_MS = 1000;
|
|
4
3
|
function drawImage(image, data) {
|
|
@@ -69,36 +68,15 @@ export function measureCanvasRenderer(meter, renderer, logFrameRate, callback, i
|
|
|
69
68
|
export function createCanvasRenderer() {
|
|
70
69
|
let lastFrameNumber;
|
|
71
70
|
return async (data) => {
|
|
72
|
-
var _a;
|
|
73
|
-
const frameNumber = data.frame.sequenceNumber;
|
|
74
|
-
const image = await loadImageBytes(data.frame.image.imageBytes);
|
|
75
|
-
if (lastFrameNumber == null || frameNumber > lastFrameNumber) {
|
|
76
|
-
lastFrameNumber = frameNumber;
|
|
77
|
-
(_a = data.beforeDraw) === null || _a === void 0 ? void 0 : _a.call(data);
|
|
78
|
-
drawImage(image, data);
|
|
79
|
-
}
|
|
80
|
-
image.dispose();
|
|
81
|
-
return data.frame;
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
export function createHiddenCanvasRenderer() {
|
|
85
|
-
const hiddenCanvas = document.createElement('canvas');
|
|
86
|
-
let lastFrameNumber;
|
|
87
|
-
return async (data) => {
|
|
88
|
-
var _a;
|
|
71
|
+
var _a, _b, _c;
|
|
89
72
|
const frameNumber = data.frame.sequenceNumber;
|
|
90
73
|
const frameIsNewer = lastFrameNumber == null || frameNumber > lastFrameNumber;
|
|
91
|
-
const frameDimensionsMatch = data.dimensions == null ||
|
|
92
|
-
Dimensions.isEqual(data.dimensions, data.frame.image.imageAttr.frameDimensions);
|
|
93
74
|
const image = await loadImageBytes(data.frame.image.imageBytes);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const ctx = hiddenCanvas.getContext('2d');
|
|
97
|
-
if (ctx != null && frameIsNewer && frameDimensionsMatch) {
|
|
75
|
+
const predicatePassing = (_b = (_a = data.predicate) === null || _a === void 0 ? void 0 : _a.call(data)) !== null && _b !== void 0 ? _b : true;
|
|
76
|
+
if (frameIsNewer && predicatePassing) {
|
|
98
77
|
lastFrameNumber = frameNumber;
|
|
99
|
-
|
|
100
|
-
(
|
|
101
|
-
data.canvas.drawImage(hiddenCanvas, 0, 0);
|
|
78
|
+
(_c = data.beforeDraw) === null || _c === void 0 ? void 0 : _c.call(data);
|
|
79
|
+
drawImage(image, data);
|
|
102
80
|
}
|
|
103
81
|
image.dispose();
|
|
104
82
|
return data.frame;
|
|
@@ -121,4 +99,4 @@ export function debugStencilBuffer(stencilManager, drawStencil, renderer) {
|
|
|
121
99
|
return frame;
|
|
122
100
|
};
|
|
123
101
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZW5kZXJpbmcvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBYSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczRCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQztBQWVuQyxTQUFTLFNBQVMsQ0FBQyxLQUFnQixFQUFFLElBQWU7RUFDbEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0VBRS9ELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUNuQixDQUFDLEVBQ0QsQ0FBQyxFQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQzdCLENBQUM7RUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQ3BCLEtBQWtCLEVBQ2xCLFFBQStCO0VBRS9CLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0VBRXpDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7SUFDdEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0dBQ25CO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsS0FBa0IsRUFDbEIsUUFBd0IsRUFDeEIsWUFBcUIsRUFDckIsUUFBK0IsRUFDL0IsYUFBcUIscUJBQXFCO0VBRTFDLDhEQUE4RDtFQUM5RCxJQUFJLEtBQVUsQ0FBQztF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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BoundingBox, BoundingSphere, Vector3 } from '@vertexvis/geometry';
|
|
1
|
+
import { BoundingBox, BoundingSphere, Matrix4, Quaternion, Ray, Vector3, } from '@vertexvis/geometry';
|
|
2
2
|
import { UUID } from '@vertexvis/utils';
|
|
3
3
|
import { constrainViewVector } from '../rendering/vectors';
|
|
4
4
|
import { DEFAULT_TIMEOUT_IN_MS } from '../stream/dispatcher';
|
|
@@ -159,6 +159,38 @@ export class Camera {
|
|
|
159
159
|
rotateAroundAxis(angleInRadians, axis) {
|
|
160
160
|
return this.rotateAroundAxisAtPoint(angleInRadians, this.data.lookAt, axis);
|
|
161
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Aligns the camera to the plane defined by the provided position and normal.
|
|
164
|
+
* This will place the camera at the provided position, set the up vector to
|
|
165
|
+
* the provided normal, and place the lookAt on the defined plane. The point
|
|
166
|
+
* chosen for the lookAt will be determined using the current view vector.
|
|
167
|
+
*
|
|
168
|
+
* @param position The position to place the camera at.
|
|
169
|
+
* @param normal The normal of the plane to align to.
|
|
170
|
+
*/
|
|
171
|
+
alignTo(position, normal) {
|
|
172
|
+
const worldX = Vector3.normalize(Vector3.cross(this.up, Vector3.normalize(this.viewVector)));
|
|
173
|
+
const positiveWorldY = Vector3.normalize(Vector3.cross(Vector3.normalize(this.viewVector), worldX));
|
|
174
|
+
// Invert the world y axis if the provided normal is more than 90 degrees from it
|
|
175
|
+
// to compute a proper angle to rotate the view vector by
|
|
176
|
+
const worldY = Vector3.angleTo(normal, positiveWorldY) > Math.PI / 2
|
|
177
|
+
? Vector3.negate(positiveWorldY)
|
|
178
|
+
: positiveWorldY;
|
|
179
|
+
const localX = Vector3.isEqual(worldY, normal)
|
|
180
|
+
? worldX
|
|
181
|
+
: Vector3.normalize(Vector3.cross(worldY, normal));
|
|
182
|
+
const transformedViewVector = Vector3.transformMatrix(this.viewVector, Matrix4.makeRotation(Quaternion.fromAxisAngle(localX, Vector3.angleTo(normal, worldY))));
|
|
183
|
+
const lookAtRay = Ray.create({
|
|
184
|
+
origin: position,
|
|
185
|
+
direction: Vector3.normalize(transformedViewVector),
|
|
186
|
+
});
|
|
187
|
+
const lookAt = Ray.at(lookAtRay, Vector3.magnitude(this.viewVector));
|
|
188
|
+
return this.update({
|
|
189
|
+
position,
|
|
190
|
+
lookAt,
|
|
191
|
+
up: normal,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
162
194
|
/**
|
|
163
195
|
* Updates the `position` and `up` vectors of the camera to the given standard
|
|
164
196
|
* view.
|
|
@@ -378,4 +410,4 @@ export class OrthographicCamera extends Camera {
|
|
|
378
410
|
return new OrthographicCamera(this.stream, this.aspect, this.orthographicData, this.boundingBox, this.decodeFrame, flyToOptions);
|
|
379
411
|
}
|
|
380
412
|
}
|
|
381
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zY2VuZXMvY2FtZXJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBRUwsY0FBYyxFQUVkLFdBQVcsRUFFWCx1QkFBdUIsRUFDdkIsc0JBQXNCLEdBRXZCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztBQU10QyxNQUFNLE9BQU8scUJBQXFCO0VBQ2hDLFlBQTJCLFlBQWlDO0lBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtFQUFHLENBQUM7RUFFekQsS0FBSztJQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztFQUMzQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sYUFBYTtFQUdqQixVQUFVLENBQUMsRUFBVTtJQUMxQixPQUFPLElBQUkscUJBQXFCLENBQUM7TUFDL0IsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLEVBQUU7T0FDVDtLQUNGLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFTSxjQUFjLENBQUMsRUFBVTtJQUM5QixPQUFPLElBQUkscUJBQXFCLENBQUM7TUFD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
|
|
413
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zY2VuZXMvY2FtZXJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsY0FBYyxFQUNkLE9BQU8sRUFDUCxVQUFVLEVBQ1YsR0FBRyxFQUNILE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBRUwsY0FBYyxFQUVkLFdBQVcsRUFFWCx1QkFBdUIsRUFDdkIsc0JBQXNCLEdBRXZCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztBQU10QyxNQUFNLE9BQU8scUJBQXFCO0VBQ2hDLFlBQTJCLFlBQWlDO0lBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtFQUFHLENBQUM7RUFFekQsS0FBSztJQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztFQUMzQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sYUFBYTtFQUdqQixVQUFVLENBQUMsRUFBVTtJQUMxQixPQUFPLElBQUkscUJBQXFCLENBQUM7TUFDL0IsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLEVBQUU7T0FDVDtLQUNGLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFTSxjQUFjLENBQUMsRUFBVTtJ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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Color } from '@vertexvis/utils';
|
|
2
|
-
const defaultColor = {
|
|
3
|
-
opacity:
|
|
4
|
-
glossiness:
|
|
2
|
+
export const defaultColor = {
|
|
3
|
+
opacity: 255,
|
|
4
|
+
glossiness: 4,
|
|
5
5
|
diffuse: {
|
|
6
6
|
r: 0,
|
|
7
7
|
g: 0,
|
|
@@ -33,7 +33,7 @@ const defaultColor = {
|
|
|
33
33
|
* @param opacity
|
|
34
34
|
*/
|
|
35
35
|
export const create = (r, g, b, opacity) => {
|
|
36
|
-
return Object.assign(Object.assign({}, defaultColor), { opacity: opacity
|
|
36
|
+
return Object.assign(Object.assign({}, defaultColor), { opacity: opacity !== null && opacity !== void 0 ? opacity : defaultColor.opacity, diffuse: {
|
|
37
37
|
r,
|
|
38
38
|
g,
|
|
39
39
|
b,
|
|
@@ -47,14 +47,14 @@ export const create = (r, g, b, opacity) => {
|
|
|
47
47
|
*/
|
|
48
48
|
export const fromHex = (hex, opacity) => {
|
|
49
49
|
const color = Color.fromHexString(hex);
|
|
50
|
-
return Object.assign(Object.assign({}, defaultColor), { opacity: opacity
|
|
50
|
+
return Object.assign(Object.assign({}, defaultColor), { opacity: opacity !== null && opacity !== void 0 ? opacity : defaultColor.opacity, diffuse: color != null ? Object.assign({}, color) : Object.assign({}, defaultColor.diffuse) });
|
|
51
51
|
};
|
|
52
52
|
/**
|
|
53
53
|
* The default material that is used for selected items.
|
|
54
54
|
*/
|
|
55
55
|
export const defaultSelectionMaterial = {
|
|
56
|
-
opacity:
|
|
57
|
-
glossiness:
|
|
56
|
+
opacity: defaultColor.opacity,
|
|
57
|
+
glossiness: defaultColor.glossiness,
|
|
58
58
|
diffuse: {
|
|
59
59
|
r: 255,
|
|
60
60
|
g: 255,
|
|
@@ -80,4 +80,4 @@ export const defaultSelectionMaterial = {
|
|
|
80
80
|
a: 0,
|
|
81
81
|
},
|
|
82
82
|
};
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JNYXRlcmlhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc2NlbmVzL2NvbG9yTWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBY3pDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBa0I7RUFDekMsT0FBTyxFQUFFLEdBQUc7RUFDWixVQUFVLEVBQUUsQ0FBQztFQUNiLE9BQU8sRUFBRTtJQUNQLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0dBQ0w7RUFDRCxPQUFPLEVBQUU7SUFDUCxDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztHQUNMO0VBRUQsUUFBUSxFQUFFO0lBQ1IsQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7R0FDTDtFQUNELFFBQVEsRUFBRTtJQUNSLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0dBQ0w7Q0FDRixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUNwQixDQUFTLEVBQ1QsQ0FBUyxFQUNULENBQVMsRUFDVCxPQUFnQixFQUNELEVBQUU7RUFDakIsdUNBQ0ssWUFBWSxLQUNmLE9BQU8sRUFBRSxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxZQUFZLENBQUMsT0FBTyxFQUN4QyxPQUFPLEVBQUU7TUFDUCxDQUFDO01BQ0QsQ0FBQztNQUNELENBQUM7TUFDRCxDQUFDLEVBQUUsQ0FBQztLQUNMLElBQ0Q7QUFDSixDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBVyxFQUFFLE9BQWdCLEVBQWlCLEVBQUU7RUFDdEUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUV2Qyx1Q0FDSyxZQUFZLEtBQ2YsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLFlBQVksQ0FBQyxPQUFPLEVBQ3hDLE9BQU8sRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsbUJBQU0sS0FBSyxFQUFHLENBQUMsbUJBQU0sWUFBWSxDQUFDLE9BQU8sQ0FBRSxJQUNuRTtBQUNKLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQWtCO0VBQ3JELE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTztFQUM3QixVQUFVLEVBQUUsWUFBWSxDQUFDLFVBQVU7RUFDbkMsT0FBTyxFQUFFO0lBQ1AsQ0FBQyxFQUFFLEdBQUc7SUFDTixDQUFDLEVBQUUsR0FBRztJQUNOLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7R0FDTDtFQUNELE9BQU8sRUFBRTtJQUNQLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0dBQ0w7RUFDRCxRQUFRLEVBQUU7SUFDUixDQUFDLEVBQUUsR0FBRztJQUNOLENBQUMsRUFBRSxHQUFHO0lBQ04sQ0FBQyxFQUFFLEdBQUc7SUFDTixDQUFDLEVBQUUsQ0FBQztHQUNMO0VBQ0QsUUFBUSxFQUFFO0lBQ1IsQ0FBQyxFQUFFLENBQUM7SUFDSixDQUFDLEVBQUUsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDO0lBQ0osQ0FBQyxFQUFFLENBQUM7R0FDTDtDQUNGLENBQUMifQ==
|
|
@@ -40,6 +40,7 @@ export function buildSceneOperation(query, operations, context) {
|
|
|
40
40
|
metadata: {
|
|
41
41
|
valueFilter: query.filter,
|
|
42
42
|
keys: query.keys,
|
|
43
|
+
exactMatch: query.exactMatch,
|
|
43
44
|
},
|
|
44
45
|
operationTypes,
|
|
45
46
|
};
|
|
@@ -175,4 +176,4 @@ function buildOperationTypes(operations) {
|
|
|
175
176
|
}
|
|
176
177
|
});
|
|
177
178
|
}
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zY2VuZXMvbWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHeEQsT0FBTyxFQUFvQixXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFRekQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxLQUFzQixFQUN0QixVQUEyQixFQUMzQixPQUFtQztFQUVuQyxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztFQUV2RCxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUU7SUFDbEIsS0FBSyxLQUFLLENBQUM7SUFDWCxLQUFLLElBQUk7TUFDUCxPQUFPO1FBQ0wsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7VUFDWixPQUFPLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkMsY0FBYyxFQUFFLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztXQUN6QyxDQUFDLENBQUM7U0FDSjtRQUNELGNBQWM7T0FDZixDQUFDO0lBQ0osS0FBSyxTQUFTLENBQUM7SUFDZixLQUFLLGFBQWE7TUFDaEIsT0FBTztRQUNMLElBQUksRUFBRTtVQUNKLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7U0FDM0M7UUFDRCxjQUFjO09BQ2YsQ0FBQztJQUNKLEtBQUssS0FBSztNQUNSLE9BQU87UUFDTCxHQUFHLEVBQUUsRUFBRTtRQUNQLGNBQWM7T0FDZixDQUFDO0lBQ0osS0FBSyxrQkFBa0I7TUFDckIsT0FBTztRQUNMLGNBQWMsRUFBRTtVQUNkLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUs7VUFDeEIsR0FB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
|
|
@@ -18,8 +18,8 @@ export class RootQuery {
|
|
|
18
18
|
withSceneTreeRange(range) {
|
|
19
19
|
return new SceneTreeRangeQuery(range);
|
|
20
20
|
}
|
|
21
|
-
withMetadata(filter, keys) {
|
|
22
|
-
return new MetadataQuery(filter, keys);
|
|
21
|
+
withMetadata(filter, keys, exactMatch) {
|
|
22
|
+
return new MetadataQuery(filter, keys, exactMatch);
|
|
23
23
|
}
|
|
24
24
|
withSelected() {
|
|
25
25
|
return new AllSelectedQuery();
|
|
@@ -45,15 +45,17 @@ export class SceneTreeRangeQuery {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
export class MetadataQuery {
|
|
48
|
-
constructor(filter, keys) {
|
|
48
|
+
constructor(filter, keys, exactMatch) {
|
|
49
49
|
this.filter = filter;
|
|
50
50
|
this.keys = keys;
|
|
51
|
+
this.exactMatch = exactMatch;
|
|
51
52
|
}
|
|
52
53
|
build() {
|
|
53
54
|
return {
|
|
54
55
|
type: 'metadata',
|
|
55
56
|
filter: this.filter,
|
|
56
57
|
keys: this.keys,
|
|
58
|
+
exactMatch: this.exactMatch,
|
|
57
59
|
};
|
|
58
60
|
}
|
|
59
61
|
}
|
|
@@ -155,4 +157,4 @@ export class SceneItemQueryExecutor {
|
|
|
155
157
|
return new SceneItemOperationsBuilder(expression, this.defaultSelectionMaterial);
|
|
156
158
|
}
|
|
157
159
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc2NlbmVzL3F1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBK0VyRCxNQUFNLE9BQU8sU0FBUztFQUNiLEdBQUc7SUFDUixPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7RUFDeEIsQ0FBQztFQUVNLFdBQVcsQ0FBQyxHQUFhO0lBQzlCLE9BQU8sSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0VBQ3ZDLENBQUM7RUFFTSxlQUFlLENBQUMsR0FBYTtJQUNsQyxPQUFPLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztFQUMzQyxDQUFDO0VBRU0sVUFBVSxDQUFDLEVBQVU7SUFDMUIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7RUFDekQsQ0FBQztFQUVNLGNBQWMsQ0FBQyxFQUFVO0lBQzlCLE9BQU8sSUFBSSxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0VBQzdELENBQUM7RUFFTSxrQkFBa0IsQ0FBQyxLQUFxQjtJQUM3QyxPQUFPLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7RUFDeEMsQ0FBQztFQUVNLFlBQVksQ0FDakIsTUFBYyxFQUNkLElBQWMsRUFDZCxVQUFtQjtJQUVuQixPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7RUFDckQsQ0FBQztFQUVNLFlBQVk7SUFDakIsT0FBTyxJQUFJLGdCQUFnQixFQUFFLENBQUM7RUFDaEMsQ0FBQztFQUVNLFNBQVMsQ0FBQyxLQUFrQjtJQUNqQyxPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0VBQy9CLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxRQUFRO0VBQ1osS0FBSztJQUNWLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7RUFDekIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtFQUM5QixZQUEyQixLQUFxQjtJQUFyQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtFQUFHLENBQUM7RUFFN0MsS0FBSztJQUNWLE9BQU87TUFDTCxJQUFJLEVBQUUsa0JBQWtCO01BQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztLQUNsQixDQUFDO0VBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGFBQWE7RUFDeEIsWUFDVSxNQUFjLEVBQ2QsSUFBYyxFQUNkLFVBQW1CO0lBRm5CLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDZCxTQUFJLEdBQUosSUFBSSxDQUFVO0lBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBUztFQUMxQixDQUFDO0VBRUcsS0FBSztJQUNWLE9BQU87TUFDTCxJQUFJLEVBQUUsVUFBVTtNQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07TUFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO01BQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO0tBQzVCLENBQUM7RUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0VBQ3BCLEtBQUs7SUFDVixPQUFPO01BQ0wsSUFBSSxFQUFFLGNBQWM7S0FDckIsQ0FBQztFQUNKLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxVQUFVO0VBQ3JCLFlBQTJCLEtBQWtCO0lBQWxCLFVBQUssR0FBTCxLQUFLLENBQWE7RUFBRyxDQUFDO0VBRTFDLEtBQUs7SUFDVixPQUFPO01BQ0wsSUFBSSxFQUFFLE9BQU87TUFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7S0FDbEIsQ0FBQztFQUNKLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxTQUFTO0VBQ3BCLFlBQ1UsR0FBYSxFQUNiLElBQStCO0lBRC9CLFFBQUcsR0FBSCxHQUFHLENBQVU7SUFDYixTQUFJLEdBQUosSUFBSSxDQUEyQjtFQUN0QyxDQUFDO0VBRUcsS0FBSztJQUNWLE9BQU87TUFDTCxJQUFJLEVBQUUsSUFBSTtNQUNWLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQy9CLE9BQU87VUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7VUFDZixLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7TUFDSixDQUFDLENBQUM7S0FDSCxDQUFDO0VBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxXQUFXO0VBQ2YsWUFBMkIsS0FBc0I7SUFBdEIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7RUFBRyxDQUFDO0VBRTlDLEtBQUs7SUFDVix5QkFBWSxJQUFJLENBQUMsS0FBSyxFQUFHO0VBQzNCLENBQUM7RUFFTSxHQUFHO0lBQ1IsT0FBTyxJQUFJLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0VBQ3BDLENBQUM7RUFFTSxFQUFFO0lBQ1AsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0VBQ25DLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxPQUFPO0VBQ2xCLFlBQTJCLFdBQThCO0lBQTlCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtFQUFHLENBQUM7RUFFdEQsS0FBSztJQUNWLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7RUFDNUQsQ0FBQztFQUVNLFVBQVUsQ0FBQyxFQUFVO0lBQzFCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7RUFDNUUsQ0FBQztFQUVNLGNBQWMsQ0FBQyxFQUFVO0lBQzlCLE9BQU8sSUFBSSxPQUFPLENBQUM7TUFDakIsR0FBRyxJQUFJLENBQUMsV0FBVztNQUNuQixFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtLQUNuQyxDQUFDLENBQUM7RUFDTCxDQUFDO0VBRU0sRUFBRTtJQUNQLE9BQU8sSUFBSSxDQUFDO0VBQ2QsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFFBQVE7RUFDbkIsWUFBMkIsV0FBOEI7SUFBOUIsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO0VBQUcsQ0FBQztFQUV0RCxLQUFLO0lBQ1YsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztFQUM3RCxDQUFDO0VBRU0sVUFBVSxDQUFDLEVBQVU7SUFDMUIsT0FBTyxJQUFJLFFBQVEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUM3RSxDQUFDO0VBRU0sY0FBYyxDQUFDLEVBQVU7SUFDOUIsT0FBTyxJQUFJLFFBQVEsQ0FBQztNQUNsQixHQUFHLElBQUksQ0FBQyxXQUFXO01BQ25CLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO0tBQ25DLENBQUMsQ0FBQztFQUNMLENBQUM7RUFFTSxHQUFHO0lBQ1IsT0FBTyxJQUFJLENBQUM7RUFDZCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sc0JBQXNCO0VBQ2pDLFlBQTJCLHdCQUF1QztJQUF2Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQWU7RUFBRyxDQUFDO0VBRS9ELEtBQUssQ0FDVixLQUFzQztJQUV0QyxNQUFNLFVBQVUsR0FBb0IsS0FBSyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVuRSxPQUFPLElBQUksMEJBQTBCLENBQ25DLFVBQVUsRUFDVixJQUFJLENBQUMsd0JBQXdCLENBQzlCLENBQUM7RUFDSixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Ray, Vector3 } from '@vertexvis/geometry';
|
|
2
|
+
import { AxisLinePoints, RotationLinePoints } from './line';
|
|
3
|
+
export function axisPositions(widgetTransform, camera, arrowMesh) {
|
|
4
|
+
const position = Vector3.fromMatrixPosition(widgetTransform);
|
|
5
|
+
return new AxisLinePoints(arrowMesh.points.valid, position, arrowMesh.points.worldBase, Vector3.transformMatrix(position, camera.projectionViewMatrix), arrowMesh.points.base);
|
|
6
|
+
}
|
|
7
|
+
export function rotationAxisPositions(camera, rotationMesh, towardPoint, triangleSize = 3) {
|
|
8
|
+
if (rotationMesh != null && towardPoint != null) {
|
|
9
|
+
const baseDistance = Vector3.distance(rotationMesh.points.worldBase, towardPoint);
|
|
10
|
+
const tipDistance = Vector3.distance(rotationMesh.points.worldTip, towardPoint);
|
|
11
|
+
const origin = baseDistance < tipDistance
|
|
12
|
+
? rotationMesh.points.worldBase
|
|
13
|
+
: rotationMesh.points.worldTip;
|
|
14
|
+
const middle = Vector3.scale(0.5, Vector3.add(origin, towardPoint));
|
|
15
|
+
const centerPointRay = Ray.create({
|
|
16
|
+
origin: middle,
|
|
17
|
+
direction: Vector3.normalize(Vector3.subtract(rotationMesh.points.worldRight, rotationMesh.points.worldLeft)),
|
|
18
|
+
});
|
|
19
|
+
const worldPoints = [0, 0.05, 0.1, 0.15].map((v) => computeQuadraticBezierCurvePoint(origin, Ray.at(centerPointRay, triangleSize * 2), towardPoint, v));
|
|
20
|
+
return new RotationLinePoints(rotationMesh.points.valid, worldPoints, worldPoints.map((p) => Vector3.transformMatrix(p, camera.projectionViewMatrix)));
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
function computeQuadraticBezierCurvePoint(start, control, end, distance) {
|
|
25
|
+
const distanceInverse = 1 - distance;
|
|
26
|
+
const startScalar = distanceInverse * distanceInverse;
|
|
27
|
+
const controlScalar = 2 * distanceInverse * distance;
|
|
28
|
+
const endScalar = distance * distance;
|
|
29
|
+
return Vector3.create(startScalar * start.x + controlScalar * control.x + endScalar * end.x, startScalar * start.y + controlScalar * control.y + endScalar * end.y, startScalar * start.z + controlScalar * control.z + endScalar * end.z);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy1saW5lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmb3Jtcy9heGlzLWxpbmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUc1RCxNQUFNLFVBQVUsYUFBYSxDQUMzQixlQUFnQyxFQUNoQyxNQUF1QixFQUN2QixTQUF1QjtFQUV2QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7RUFDN0QsT0FBTyxJQUFJLGNBQWMsQ0FDdkIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ3RCLFFBQVEsRUFDUixTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFDMUIsT0FBTyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQzlELFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsTUFBdUIsRUFDdkIsWUFBMkIsRUFDM0IsV0FBNkIsRUFDN0IsWUFBWSxHQUFHLENBQUM7RUFFaEIsSUFBSSxZQUFZLElBQUksSUFBSSxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUU7SUFDL0MsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FDbkMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQzdCLFdBQVcsQ0FDWixDQUFDO0lBQ0YsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FDbEMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQzVCLFdBQVcsQ0FDWixDQUFDO0lBRUYsTUFBTSxNQUFNLEdBQ1YsWUFBWSxHQUFHLFdBQVc7TUFDeEIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUztNQUMvQixDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDbkMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUVwRSxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO01BQ2hDLE1BQU0sRUFBRSxNQUFNO01BQ2QsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQ2QsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQzlCLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUM5QixDQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNqRCxnQ0FBZ0MsQ0FDOUIsTUFBTSxFQUNOLEdBQUcsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLFlBQVksR0FBRyxDQUFDLENBQUMsRUFDeEMsV0FBVyxFQUNYLENBQUMsQ0FDRixDQUNGLENBQUM7SUFFRixPQUFPLElBQUksa0JBQWtCLENBQzNCLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUN6QixXQUFXLEVBQ1gsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3BCLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUN4RCxDQUNGLENBQUM7R0FDSDtFQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLGdDQUFnQyxDQUN2QyxLQUFzQixFQUN0QixPQUF3QixFQUN4QixHQUFvQixFQUNwQixRQUFnQjtFQUVoQixNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO0VBQ3JDLE1BQU0sV0FBVyxHQUFHLGVBQWUsR0FBRyxlQUFlLENBQUM7RUFDdEQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLGVBQWUsR0FBRyxRQUFRLENBQUM7RUFDckQsTUFBTSxTQUFTLEdBQUcsUUFBUSxHQUFHLFFBQVEsQ0FBQztFQUV0QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQ25CLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLGFBQWEsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUNyRSxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxhQUFhLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFDckUsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsYUFBYSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQ3RFLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Angle, Matrix4, Quaternion, Ray, Vector3 } from '@vertexvis/geometry';
|
|
2
|
+
import { TriangleMeshPoints } from './mesh';
|
|
3
|
+
export function xAxisRotationPositions(widgetTransform, camera, triangleSize = 3) {
|
|
4
|
+
return computeRotationNdcValues(widgetTransform, camera, Vector3.back(), Vector3.up(), triangleSize);
|
|
5
|
+
}
|
|
6
|
+
export function yAxisRotationPositions(widgetTransform, camera, triangleSize = 3) {
|
|
7
|
+
return computeRotationNdcValues(widgetTransform, camera, Vector3.right(), Vector3.back(), triangleSize);
|
|
8
|
+
}
|
|
9
|
+
export function zAxisRotationPositions(widgetTransform, camera, triangleSize = 3) {
|
|
10
|
+
return computeRotationNdcValues(widgetTransform, camera, Vector3.right(), Vector3.up(), triangleSize);
|
|
11
|
+
}
|
|
12
|
+
function computeRotationNdcValues(widgetTransform, camera, xDirection, yDirection, triangleSize) {
|
|
13
|
+
const transformedDirection = Vector3.transformMatrix(Vector3.add(xDirection, yDirection), Matrix4.makeRotation(Quaternion.fromMatrixRotation(widgetTransform)));
|
|
14
|
+
const transformedX = Vector3.transformMatrix(xDirection, Matrix4.makeRotation(Quaternion.fromMatrixRotation(widgetTransform)));
|
|
15
|
+
const transformedY = Vector3.transformMatrix(yDirection, Matrix4.makeRotation(Quaternion.fromMatrixRotation(widgetTransform)));
|
|
16
|
+
const basePosition = Vector3.fromMatrixPosition(widgetTransform);
|
|
17
|
+
const position = Vector3.add(basePosition, Vector3.scale(triangleSize * 10, transformedDirection));
|
|
18
|
+
const xRay = Ray.create({
|
|
19
|
+
origin: position,
|
|
20
|
+
direction: transformedX,
|
|
21
|
+
});
|
|
22
|
+
const yRay = Ray.create({
|
|
23
|
+
origin: position,
|
|
24
|
+
direction: transformedY,
|
|
25
|
+
});
|
|
26
|
+
const rotationAxis = Vector3.cross(transformedX, transformedY);
|
|
27
|
+
const base = Vector3.rotateAboutAxis(Angle.toRadians(45), Ray.at(yRay, -triangleSize), rotationAxis, position);
|
|
28
|
+
const right = Vector3.rotateAboutAxis(Angle.toRadians(45), Ray.at(xRay, triangleSize), rotationAxis, position);
|
|
29
|
+
const up = Vector3.rotateAboutAxis(Angle.toRadians(45), Ray.at(yRay, triangleSize), rotationAxis, position);
|
|
30
|
+
const left = Vector3.rotateAboutAxis(Angle.toRadians(45), Ray.at(xRay, -triangleSize), rotationAxis, position);
|
|
31
|
+
return new TriangleMeshPoints(Vector3.dot(transformedX, camera.direction) !== -1 &&
|
|
32
|
+
Vector3.dot(transformedY, camera.direction) !== -1, base, left, right, up, Vector3.transformMatrix(base, camera.projectionViewMatrix), Vector3.transformMatrix(left, camera.projectionViewMatrix), Vector3.transformMatrix(right, camera.projectionViewMatrix), Vector3.transformMatrix(up, camera.projectionViewMatrix));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy1yb3RhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmb3Jtcy9heGlzLXJvdGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTVDLE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsZUFBZ0MsRUFDaEMsTUFBdUIsRUFDdkIsWUFBWSxHQUFHLENBQUM7RUFFaEIsT0FBTyx3QkFBd0IsQ0FDN0IsZUFBZSxFQUNmLE1BQU0sRUFDTixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQ2QsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUNaLFlBQVksQ0FDYixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsZUFBZ0MsRUFDaEMsTUFBdUIsRUFDdkIsWUFBWSxHQUFHLENBQUM7RUFFaEIsT0FBTyx3QkFBd0IsQ0FDN0IsZUFBZSxFQUNmLE1BQU0sRUFDTixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQ2YsT0FBTyxDQUFDLElBQUksRUFBRSxFQUNkLFlBQVksQ0FDYixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsZUFBZ0MsRUFDaEMsTUFBdUIsRUFDdkIsWUFBWSxHQUFHLENBQUM7RUFFaEIsT0FBTyx3QkFBd0IsQ0FDN0IsZUFBZSxFQUNmLE1BQU0sRUFDTixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQ2YsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUNaLFlBQVksQ0FDYixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQy9CLGVBQWdDLEVBQ2hDLE1BQXVCLEVBQ3ZCLFVBQTJCLEVBQzNCLFVBQTJCLEVBQzNCLFlBQW9CO0VB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
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Matrix4, Quaternion, Ray, Vector3 } from '@vertexvis/geometry';
|
|
2
|
+
import { TriangleMeshPoints } from './mesh';
|
|
3
|
+
export function xAxisArrowPositions(widgetTransform, camera, triangleSize = 3) {
|
|
4
|
+
return computeArrowNdcValues(widgetTransform, camera, Vector3.right(), triangleSize);
|
|
5
|
+
}
|
|
6
|
+
export function yAxisArrowPositions(widgetTransform, camera, triangleSize = 3) {
|
|
7
|
+
return computeArrowNdcValues(widgetTransform, camera, Vector3.up(), triangleSize);
|
|
8
|
+
}
|
|
9
|
+
export function zAxisArrowPositions(widgetTransform, camera, triangleSize = 3) {
|
|
10
|
+
return computeArrowNdcValues(widgetTransform, camera, Vector3.back(), triangleSize);
|
|
11
|
+
}
|
|
12
|
+
function computeArrowNdcValues(widgetTransform, camera, direction, triangleSize) {
|
|
13
|
+
const transformedDirection = Vector3.transformMatrix(direction, Matrix4.makeRotation(Quaternion.fromMatrixRotation(widgetTransform)));
|
|
14
|
+
const basePosition = Vector3.fromMatrixPosition(widgetTransform);
|
|
15
|
+
const position = Vector3.add(basePosition, Vector3.scale(triangleSize * 9, transformedDirection));
|
|
16
|
+
const worldX = Vector3.normalize(Vector3.cross(transformedDirection, Vector3.normalize(camera.viewVector)));
|
|
17
|
+
const xRay = Ray.create({
|
|
18
|
+
origin: position,
|
|
19
|
+
direction: worldX,
|
|
20
|
+
});
|
|
21
|
+
const yRay = Ray.create({
|
|
22
|
+
origin: position,
|
|
23
|
+
direction: transformedDirection,
|
|
24
|
+
});
|
|
25
|
+
const left = Ray.at(xRay, -(triangleSize * 1.25));
|
|
26
|
+
const right = Ray.at(xRay, triangleSize * 1.25);
|
|
27
|
+
const up = Ray.at(yRay, triangleSize * 3);
|
|
28
|
+
return new TriangleMeshPoints(!isNaN(worldX.x), position, left, right, up, Vector3.transformMatrix(position, camera.projectionViewMatrix), Vector3.transformMatrix(left, camera.projectionViewMatrix), Vector3.transformMatrix(right, camera.projectionViewMatrix), Vector3.transformMatrix(up, camera.projectionViewMatrix));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy10cmFuc2xhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNmb3Jtcy9heGlzLXRyYW5zbGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFNUMsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxlQUFnQyxFQUNoQyxNQUF1QixFQUN2QixZQUFZLEdBQUcsQ0FBQztFQUVoQixPQUFPLHFCQUFxQixDQUMxQixlQUFlLEVBQ2YsTUFBTSxFQUNOLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFDZixZQUFZLENBQ2IsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLGVBQWdDLEVBQ2hDLE1BQXVCLEVBQ3ZCLFlBQVksR0FBRyxDQUFDO0VBRWhCLE9BQU8scUJBQXFCLENBQzFCLGVBQWUsRUFDZixNQUFNLEVBQ04sT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUNaLFlBQVksQ0FDYixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsZUFBZ0MsRUFDaEMsTUFBdUIsRUFDdkIsWUFBWSxHQUFHLENBQUM7RUFFaEIsT0FBTyxxQkFBcUIsQ0FDMUIsZUFBZSxFQUNmLE1BQU0sRUFDTixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQ2QsWUFBWSxDQUNiLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FDNUIsZUFBZ0MsRUFDaEMsTUFBdUIsRUFDdkIsU0FBMEIsRUFDMUIsWUFBb0I7RUFFcEIsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUNsRCxTQUFTLEVBQ1QsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FDckUsQ0FBQztFQUVGLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztFQUNqRSxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUMxQixZQUFZLEVBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQ3RELENBQUM7RUFFRixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQzFFLENBQUM7RUFDRixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ3RCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFNBQVMsRUFBRSxNQUFNO0dBQ2xCLENBQUMsQ0FBQztFQUNILE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDdEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsU0FBUyxFQUFFLG9CQUFvQjtHQUNoQyxDQUFDLENBQUM7RUFFSCxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDbEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO0VBQ2hELE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztFQUUxQyxPQUFPLElBQUksa0JBQWtCLENBQzNCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFDaEIsUUFBUSxFQUNSLElBQUksRUFDSixLQUFLLEVBQ0wsRUFBRSxFQUNGLE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxFQUM5RCxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsb0JBQW9CLENBQUMsRUFDMUQsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQzNELE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUN6RCxDQUFDO0FBQ0osQ0FBQyJ9
|