@vertexvis/viewer 0.15.2-testing.4 → 0.15.2
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-dcc4cf71.js +1 -1
- package/dist/cjs/app-globals-2035678d.js +1 -1
- package/dist/cjs/browser.esm-5d246754.js +1 -1
- package/dist/cjs/bundle.esm-22b6f2d6.js +1 -1
- package/dist/cjs/bundle.esm-b43c197a.js +38280 -0
- package/dist/cjs/{config-4a86ae0b.js → config-3fc1c093.js} +2 -2
- package/dist/cjs/{cursors-85d403e9.js → cursors-02a06ec9.js} +7 -1
- package/dist/cjs/dom-8d90bfaf.js +1 -1
- package/dist/cjs/dom-92728e58.js +1 -1
- package/dist/cjs/dom-d1bbd67c.js +1 -1
- package/dist/cjs/dom-d57d3c3b.js +1 -1
- package/dist/cjs/elementRectObserver-9b28f182.js +1 -1
- package/dist/cjs/entities-9eb7e608.js +1 -1
- package/dist/cjs/{entities-496b61cd.js → entities-c1c3c6a3.js} +3 -3
- package/dist/cjs/errors-1b37642b.js +97 -0
- package/dist/cjs/grpc-web-client.umd-2af20c1b.js +1 -1
- package/dist/cjs/index-70db349e.js +1 -1
- package/dist/cjs/index-b9d13137.js +1 -1
- package/dist/cjs/index.cjs.js +9 -6
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{mapper-216603b0.js → mapper-d4145b72.js} +2 -2
- package/dist/cjs/markup-4a2fc281.js +1 -1
- package/dist/cjs/{model-b61f4d20.js → model-19fb560a.js} +27 -6
- package/dist/cjs/model-20a70d27.js +1 -1
- package/dist/cjs/overlays-b03ec80b.js +1 -1
- package/dist/cjs/png-decoder-ef097f37.js +1 -1
- package/dist/cjs/results-178e89a3.js +1 -1
- package/dist/cjs/{scene-0ce59b26.js → scene-a94e6fa5.js} +276 -225
- package/dist/cjs/shadow-css-6b9daa41.js +1 -1
- package/dist/cjs/stencil-fc92b387.js +1 -1
- package/dist/cjs/{streamAttributes-7725f5c4.js → streamAttributes-cf0c513d.js} +5408 -39951
- package/dist/cjs/templates-e57b3741.js +1 -1
- package/dist/cjs/utils-2c8e2aa3.js +1 -1
- package/dist/cjs/utils-ea359796.js +1 -1
- package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
- 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 +1 -1
- package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +158 -37
- package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +229 -49
- package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +3 -2
- package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-icon.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-markup.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +3 -2
- package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +5 -4
- package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +4 -3
- package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +7 -6
- package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +10 -5
- package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +15 -13
- package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +20 -9
- package/dist/cjs/vertex-viewer-spinner.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +6 -4
- package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +5 -4
- package/dist/cjs/vertex-viewer.cjs.entry.js +80 -53
- package/dist/cjs/viewer.cjs.js +2 -2
- package/dist/cjs/viewport-5ca619f7.js +1 -1
- package/dist/collection/components/scene-tree/lib/controller.js +108 -28
- package/dist/collection/components/scene-tree/lib/errors.js +35 -2
- package/dist/collection/components/scene-tree/scene-tree.js +12 -5
- package/dist/collection/components/viewer/viewer.js +17 -15
- package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.css +7 -2
- package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js +105 -18
- package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +5 -1
- package/dist/collection/components/viewer-pin-label/viewer-pin-label.css +1 -1
- package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +14 -12
- package/dist/collection/components/viewer-pin-tool/utils.js +25 -4
- package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.css +12 -0
- package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js +9 -2
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +3 -2
- package/dist/collection/components/viewer-view-cube/viewer-view-cube.js +5 -5
- package/dist/collection/lib/cursors.js +6 -1
- package/dist/collection/lib/interactions/baseInteractionHandler.js +12 -2
- package/dist/collection/lib/interactions/mouseInteractions.js +5 -4
- package/dist/collection/lib/mappers/frameStreaming.js +11 -11
- package/dist/collection/lib/pins/interactions.js +9 -5
- package/dist/collection/lib/pins/model.js +2 -2
- package/dist/collection/lib/rendering/matrices.js +2 -4
- package/dist/collection/lib/scenes/camera.js +4 -2
- package/dist/collection/lib/scenes/mapper.js +98 -36
- package/dist/collection/lib/scenes/queries.js +89 -50
- package/dist/collection/lib/scenes/scene.js +15 -7
- package/dist/collection/lib/stream/stream.js +24 -12
- package/dist/collection/lib/transforms/drawable.js +2 -2
- package/dist/collection/lib/types/frame.js +4 -3
- package/dist/collection/lib/types/frameCamera.js +6 -1
- package/dist/collection/lib/types/index.js +3 -2
- package/dist/collection/lib/types/loadableResource.js +24 -4
- package/dist/collection/lib/types/sceneViewStateIdentifier.js +7 -0
- package/dist/collection/lib/volume-intersection/controller.js +71 -15
- package/dist/collection/lib/volume-intersection/interactions.js +54 -9
- package/dist/collection/lib/volume-intersection/model.js +27 -10
- package/dist/custom-elements/index.js +20207 -15976
- package/dist/custom-elements/png-decoder.js +1 -1
- package/dist/esm/_commonjsHelpers-11ca3be1.js +1 -1
- package/dist/esm/app-globals-40df99a0.js +1 -1
- package/dist/esm/{browser.esm-ae4ca1f1.js → browser.esm-07e7db8f.js} +2 -2
- package/dist/esm/bundle.esm-91404853.js +38273 -0
- package/dist/esm/{bundle.esm-ce2c7ad3.js → bundle.esm-92e615bf.js} +2 -2
- package/dist/esm/{config-6cdeb6ca.js → config-25384fe6.js} +3 -3
- package/dist/esm/{cursors-a8d4b3f4.js → cursors-127a3bb7.js} +8 -3
- package/dist/esm/dom-0440435d.js +1 -1
- package/dist/esm/dom-be140992.js +1 -1
- package/dist/esm/dom-e19ee80b.js +1 -1
- package/dist/esm/{dom-5b164305.js → dom-e436f0c0.js} +2 -2
- package/dist/esm/elementRectObserver-39cf7b95.js +1 -1
- package/dist/esm/{entities-6f3c5437.js → entities-0e325765.js} +4 -4
- package/dist/esm/entities-ce81dd7f.js +1 -1
- package/dist/esm/errors-a4cc9caa.js +85 -0
- package/dist/esm/grpc-web-client.umd-5409853c.js +1 -1
- package/dist/esm/index-26dfb2d0.js +1 -1
- package/dist/esm/index-e841d91b.js +1 -1
- package/dist/esm/index.js +15 -13
- package/dist/esm/index.mjs +15 -13
- package/dist/esm/loader.js +2 -2
- package/dist/esm/loader.mjs +2 -2
- package/dist/esm/{mapper-941ff03c.js → mapper-dd937684.js} +3 -3
- package/dist/esm/{markup-3c2900f3.js → markup-2dde1f10.js} +3 -3
- package/dist/esm/{model-fa9af61a.js → model-3cd8cd47.js} +2 -2
- package/dist/esm/{model-40bd1711.js → model-bfe1c4d8.js} +29 -8
- package/dist/esm/{overlays-cc3efc30.js → overlays-8f195eb3.js} +3 -3
- package/dist/esm/{png-decoder-d4b65417.js → png-decoder-45f38ea3.js} +2 -2
- package/dist/esm/{results-3b4df2cf.js → results-38baef59.js} +2 -2
- package/dist/esm/{scene-970f5000.js → scene-2543b3bd.js} +237 -178
- package/dist/esm/shadow-css-51dd7708.js +1 -1
- package/dist/esm/stencil-bfbf099f.js +1 -1
- package/dist/esm/{streamAttributes-24bd7b3a.js → streamAttributes-23270e27.js} +5419 -39956
- package/dist/esm/templates-022199c1.js +1 -1
- package/dist/esm/{utils-81347571.js → utils-2306c744.js} +2 -2
- package/dist/esm/{utils-559e1632.js → utils-f03802ef.js} +2 -2
- package/dist/esm/vertex-scene-tree-search_3.entry.js +3 -3
- package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
- 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 +1 -1
- package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
- package/dist/esm/vertex-scene-tree.entry.js +160 -39
- package/dist/esm/vertex-viewer-box-query-tool.entry.js +229 -49
- package/dist/esm/vertex-viewer-button_3.entry.js +1 -1
- package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
- package/dist/esm/vertex-viewer-dom-element_2.entry.js +6 -5
- package/dist/esm/vertex-viewer-dom-group.entry.js +3 -3
- package/dist/esm/vertex-viewer-icon.entry.js +1 -1
- package/dist/esm/vertex-viewer-layer.entry.js +1 -1
- package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +4 -4
- 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 +5 -4
- package/dist/esm/vertex-viewer-measurement-distance.entry.js +13 -12
- package/dist/esm/vertex-viewer-measurement-line_2.entry.js +8 -7
- package/dist/esm/vertex-viewer-measurement-precise.entry.js +12 -11
- package/dist/esm/vertex-viewer-pin-group.entry.js +13 -8
- package/dist/esm/vertex-viewer-pin-label_2.entry.js +18 -16
- package/dist/esm/vertex-viewer-pin-tool.entry.js +23 -12
- package/dist/esm/vertex-viewer-spinner.entry.js +1 -1
- package/dist/esm/vertex-viewer-transform-widget.entry.js +9 -7
- package/dist/esm/vertex-viewer-view-cube.entry.js +7 -6
- package/dist/esm/vertex-viewer.entry.js +65 -38
- package/dist/esm/viewer.js +2 -2
- package/dist/esm/{viewport-e39e2eba.js → viewport-f19fc583.js} +2 -2
- package/dist/types/components/scene-tree/lib/controller.d.ts +18 -3
- package/dist/types/components/scene-tree/lib/errors.d.ts +17 -2
- package/dist/types/components/viewer/viewer.d.ts +2 -0
- package/dist/types/components/viewer-box-query-tool/viewer-box-query-tool.d.ts +36 -2
- package/dist/types/components/viewer-pin-tool/utils.d.ts +1 -1
- package/dist/types/components.d.ts +11 -3
- package/dist/types/lib/cursors.d.ts +5 -0
- package/dist/types/lib/interactions/baseInteractionHandler.d.ts +1 -0
- package/dist/types/lib/interactions/mouseInteractions.d.ts +2 -1
- package/dist/types/lib/pins/interactions.d.ts +4 -2
- package/dist/types/lib/pins/model.d.ts +1 -1
- package/dist/types/lib/scenes/camera.d.ts +1 -1
- package/dist/types/lib/scenes/mapper.d.ts +5 -1
- package/dist/types/lib/scenes/queries.d.ts +45 -30
- package/dist/types/lib/scenes/scene.d.ts +10 -1
- package/dist/types/lib/types/frame.d.ts +1 -1
- package/dist/types/lib/types/index.d.ts +2 -1
- package/dist/types/lib/types/loadableResource.d.ts +8 -2
- package/dist/types/lib/types/sceneViewStateIdentifier.d.ts +15 -0
- package/dist/types/lib/volume-intersection/controller.d.ts +33 -5
- package/dist/types/lib/volume-intersection/interactions.d.ts +12 -1
- package/dist/types/lib/volume-intersection/model.d.ts +7 -0
- package/dist/viewer/index.esm.js +2 -2
- package/dist/viewer/{p-ad09c92e.entry.js → p-029fba92.entry.js} +1 -1
- package/dist/viewer/p-07aeee89.js +1 -1
- package/dist/viewer/{p-29986489.js → p-0a017be7.js} +2 -2
- package/dist/viewer/p-0c583cad.entry.js +4 -0
- package/dist/viewer/p-0d494d01.js +4 -0
- package/dist/viewer/p-0fdad1a5.js +1 -1
- package/dist/viewer/{p-3ca4a7c1.js → p-1812c82d.js} +2 -2
- package/dist/viewer/{p-7663a603.entry.js → p-191156ad.entry.js} +1 -1
- package/dist/viewer/{p-a57dc6e4.entry.js → p-1998284a.entry.js} +2 -2
- package/dist/viewer/p-27f715f8.entry.js +4 -0
- package/dist/viewer/{p-7f6251da.js → p-283aeac4.js} +2 -2
- package/dist/viewer/p-298b63c2.entry.js +4 -0
- package/dist/viewer/p-2ace066b.entry.js +4 -0
- package/dist/viewer/{p-597cc9b5.js → p-2b60a8b0.js} +2 -2
- package/dist/viewer/{p-050f912b.entry.js → p-2fd123c8.entry.js} +1 -1
- package/dist/viewer/p-305a8be6.entry.js +4 -0
- package/dist/viewer/p-31724d24.js +4 -0
- package/dist/viewer/p-32cc2209.js +4 -0
- package/dist/viewer/p-3829dd99.entry.js +4 -0
- package/dist/viewer/{p-6da8a28f.entry.js → p-3aae4bf1.entry.js} +2 -2
- package/dist/viewer/{p-99352cf0.js → p-42760392.js} +2 -2
- package/dist/viewer/p-440c8174.js +4 -0
- package/dist/viewer/{p-e422deaf.entry.js → p-4f25e367.entry.js} +2 -2
- package/dist/viewer/{p-a107b65e.entry.js → p-507b5aeb.entry.js} +2 -2
- package/dist/viewer/{p-52ab9ec0.js → p-51401063.js} +2 -2
- package/dist/viewer/{p-426970b3.entry.js → p-533b1c63.entry.js} +1 -1
- package/dist/viewer/{p-dcb9804c.entry.js → p-569ed94a.entry.js} +2 -2
- package/dist/viewer/p-5809b400.js +1 -1
- package/dist/viewer/p-6072cf84.js +4 -0
- package/dist/viewer/{p-e4a26a32.entry.js → p-6406a70a.entry.js} +1 -1
- package/dist/viewer/p-6bf0594b.entry.js +4 -0
- package/dist/viewer/p-72c59115.entry.js +4 -0
- package/dist/viewer/{p-d71652b0.entry.js → p-8ac7290a.entry.js} +1 -1
- package/dist/viewer/{p-f184bcab.entry.js → p-8afcbd99.entry.js} +1 -1
- package/dist/viewer/p-92fe4417.js +1 -1
- package/dist/viewer/{p-5746931d.entry.js → p-952a217d.entry.js} +1 -1
- package/dist/viewer/p-98e6a50e.js +1 -1
- package/dist/viewer/{p-99fd27e0.entry.js → p-9cb99ea8.entry.js} +1 -1
- package/dist/viewer/p-a2e9e8a5.js +4 -0
- package/dist/viewer/p-a380f0c2.js +1 -1
- package/dist/viewer/{p-661b5234.js → p-acfc5c50.js} +2 -2
- package/dist/viewer/{p-82bd25e8.entry.js → p-b3540dce.entry.js} +1 -1
- package/dist/viewer/p-b5ca30cd.js +4 -0
- package/dist/viewer/p-b74242dc.js +1 -1
- package/dist/viewer/p-bc1160cf.entry.js +4 -0
- package/dist/viewer/{p-c5e67a1e.entry.js → p-bd5a302c.entry.js} +2 -2
- package/dist/viewer/p-c738296e.js +1 -1
- package/dist/viewer/p-c8c4343b.js +1 -1
- package/dist/viewer/p-cd9ccb9e.entry.js +4 -0
- package/dist/viewer/{p-9e1384c9.js → p-cf689bbd.js} +2 -2
- package/dist/viewer/{p-70e5e8a8.js → p-d216a866.js} +2 -2
- package/dist/viewer/p-d4ed7b8d.js +4 -0
- package/dist/viewer/p-d6d5d5de.entry.js +4 -0
- package/dist/viewer/p-d6fce4c1.js +1 -1
- package/dist/viewer/p-df8fbe56.js +1 -1
- package/dist/viewer/p-dfe5a97d.js +1 -1
- package/dist/viewer/{p-00ce31a0.js → p-e1896ce4.js} +2 -2
- package/dist/viewer/p-e23af70c.js +4 -0
- package/dist/viewer/p-e4aa9cdb.js +1 -1
- package/dist/viewer/p-e929dd63.entry.js +4 -0
- package/dist/viewer/{p-65af7a89.js → p-fc7d8c03.js} +3 -3
- package/dist/viewer/viewer.esm.js +2 -2
- package/package.json +9 -9
- package/readme.md +4 -4
- package/dist/viewer/p-096e60bd.js +0 -4
- package/dist/viewer/p-0cf4f05d.entry.js +0 -4
- package/dist/viewer/p-0fcafbf9.js +0 -4
- package/dist/viewer/p-10145045.js +0 -4
- package/dist/viewer/p-1abfe4bf.js +0 -4
- package/dist/viewer/p-1bba9ade.entry.js +0 -4
- package/dist/viewer/p-24cda14a.entry.js +0 -4
- package/dist/viewer/p-27dbc865.js +0 -4
- package/dist/viewer/p-2b58afc3.entry.js +0 -4
- package/dist/viewer/p-51966cef.entry.js +0 -4
- package/dist/viewer/p-608925c5.entry.js +0 -4
- package/dist/viewer/p-68e192b9.js +0 -4
- package/dist/viewer/p-69a3fce8.entry.js +0 -4
- package/dist/viewer/p-74c772bb.entry.js +0 -4
- package/dist/viewer/p-990f98c2.js +0 -4
- package/dist/viewer/p-9dfe0b43.entry.js +0 -4
- package/dist/viewer/p-bb425931.entry.js +0 -4
- package/dist/viewer/p-bfacbaa8.entry.js +0 -4
- package/dist/viewer/p-c72da0fb.entry.js +0 -4
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**!
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) 2023 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
6
|
const browser_esm = require('./browser.esm-5d246754.js');
|
|
7
|
-
const
|
|
8
|
-
const
|
|
7
|
+
const errors = require('./errors-1b37642b.js');
|
|
8
|
+
const bundle_esm$1 = require('./bundle.esm-22b6f2d6.js');
|
|
9
|
+
const streamAttributes = require('./streamAttributes-cf0c513d.js');
|
|
9
10
|
require('./entities-9eb7e608.js');
|
|
11
|
+
const bundle_esm = require('./bundle.esm-b43c197a.js');
|
|
10
12
|
|
|
11
13
|
const defaultColor = {
|
|
12
14
|
opacity: 255,
|
|
@@ -98,104 +100,41 @@ const colorMaterial = /*#__PURE__*/Object.freeze({
|
|
|
98
100
|
defaultSelectionMaterial: defaultSelectionMaterial
|
|
99
101
|
});
|
|
100
102
|
|
|
101
|
-
class CustomError extends Error {
|
|
102
|
-
constructor(message, e) {
|
|
103
|
-
super();
|
|
104
|
-
this.message = message;
|
|
105
|
-
this.stack = e === null || e === void 0 ? void 0 : e.stack;
|
|
106
|
-
this.name = this.constructor.name;
|
|
107
|
-
// Allows for `instanceof` checks.
|
|
108
|
-
Object.setPrototypeOf(this, CustomError.prototype);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
class InvalidResourceUrnError extends CustomError {
|
|
112
|
-
constructor(message, e) {
|
|
113
|
-
super(message, e);
|
|
114
|
-
// Allows for `instanceof` checks.
|
|
115
|
-
Object.setPrototypeOf(this, InvalidResourceUrnError.prototype);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
class ViewerInitializationError extends CustomError {
|
|
119
|
-
constructor(message, e) {
|
|
120
|
-
super(message, e);
|
|
121
|
-
// Allows for `instanceof` checks.
|
|
122
|
-
Object.setPrototypeOf(this, ViewerInitializationError.prototype);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
class ComponentInitializationError extends CustomError {
|
|
126
|
-
constructor(message, e) {
|
|
127
|
-
super(message, e);
|
|
128
|
-
// Allows for `instanceof` checks.
|
|
129
|
-
Object.setPrototypeOf(this, ComponentInitializationError.prototype);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
class SceneRenderError extends CustomError {
|
|
133
|
-
constructor(message, e) {
|
|
134
|
-
super(message, e);
|
|
135
|
-
// Allows for `instanceof` checks.
|
|
136
|
-
Object.setPrototypeOf(this, SceneRenderError.prototype);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
class WebsocketConnectionError extends CustomError {
|
|
140
|
-
constructor(message, e) {
|
|
141
|
-
super(message, e);
|
|
142
|
-
// Allows for `instanceof` checks.
|
|
143
|
-
Object.setPrototypeOf(this, WebsocketConnectionError.prototype);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
class InteractionHandlerError extends CustomError {
|
|
147
|
-
constructor(message, e) {
|
|
148
|
-
super(message, e);
|
|
149
|
-
// Allows for `instanceof` checks.
|
|
150
|
-
Object.setPrototypeOf(this, InteractionHandlerError.prototype);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
class ImageLoadError extends CustomError {
|
|
154
|
-
constructor(message, e) {
|
|
155
|
-
super(message, e);
|
|
156
|
-
// Allows for `instanceof` checks.
|
|
157
|
-
Object.setPrototypeOf(this, ImageLoadError.prototype);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
class IllegalStateError extends CustomError {
|
|
161
|
-
constructor(message, e) {
|
|
162
|
-
super(message, e);
|
|
163
|
-
// Allows for `instanceof` checks.
|
|
164
|
-
Object.setPrototypeOf(this, IllegalStateError.prototype);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
class InvalidArgumentError extends CustomError {
|
|
168
|
-
constructor(message, e) {
|
|
169
|
-
super(message, e);
|
|
170
|
-
// Allows for `instanceof` checks.
|
|
171
|
-
Object.setPrototypeOf(this, InvalidArgumentError.prototype);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
class InvalidCameraError extends CustomError {
|
|
175
|
-
constructor(message, e) {
|
|
176
|
-
super(message, e);
|
|
177
|
-
// Allows for `instanceof` checks.
|
|
178
|
-
Object.setPrototypeOf(this, InvalidCameraError.prototype);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
103
|
function fromUrn(urn) {
|
|
104
|
+
var _a;
|
|
183
105
|
const uri = browser_esm.uri.parse(urn);
|
|
184
106
|
if (uri.scheme !== 'urn' || uri.path == null) {
|
|
185
107
|
throw new Error('Invalid URN. Expected URN scheme.');
|
|
186
108
|
}
|
|
187
|
-
const [nid, resourceType, resourceId] = uri.path.split(
|
|
109
|
+
const [nid, resourceType, resourceId, ...subResourcePath] = uri.path.split(/[:/]/);
|
|
188
110
|
if (nid !== 'vertexvis') {
|
|
189
111
|
throw new Error('Invalid URN. Expected URN to be vertexvis namespace');
|
|
190
112
|
}
|
|
191
113
|
switch (resourceType) {
|
|
192
114
|
case 'stream-key':
|
|
115
|
+
const queries = fromQuery(uri.query);
|
|
116
|
+
const subResource = (_a = fromSubResourcePath(subResourcePath.join('/'))) !== null && _a !== void 0 ? _a : queries.find((q) => q.type === 'scene-view-state');
|
|
193
117
|
return {
|
|
194
118
|
resource: { type: 'stream-key', id: resourceId },
|
|
195
|
-
|
|
119
|
+
subResource,
|
|
120
|
+
queries: queries.filter((q) => q.type !== 'scene-view-state'),
|
|
196
121
|
};
|
|
197
122
|
default:
|
|
198
|
-
throw new InvalidResourceUrnError(`Invalid URN. Unknown resource type ${resourceType}`);
|
|
123
|
+
throw new errors.InvalidResourceUrnError(`Invalid URN. Unknown resource type ${resourceType}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function fromSubResourcePath(path) {
|
|
127
|
+
if (path != null) {
|
|
128
|
+
const [subResourceType, subResourceId] = path.split('/');
|
|
129
|
+
switch (subResourceType) {
|
|
130
|
+
case 'scene-view-states':
|
|
131
|
+
return {
|
|
132
|
+
type: 'scene-view-state',
|
|
133
|
+
id: subResourceId,
|
|
134
|
+
};
|
|
135
|
+
default:
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
199
138
|
}
|
|
200
139
|
}
|
|
201
140
|
function fromQuery(query) {
|
|
@@ -203,10 +142,12 @@ function fromQuery(query) {
|
|
|
203
142
|
return query.split('&').map((queryFragment) => {
|
|
204
143
|
const [resourceType, resourceId] = queryFragment.split('=');
|
|
205
144
|
switch (resourceType) {
|
|
145
|
+
case 'supplied-id':
|
|
146
|
+
return { type: 'supplied-id', id: resourceId };
|
|
206
147
|
case 'scene-view-state':
|
|
207
148
|
return { type: 'scene-view-state', id: resourceId };
|
|
208
149
|
default:
|
|
209
|
-
throw new Error('Invalid URN. Unknown query
|
|
150
|
+
throw new Error('Invalid URN. Unknown query value type');
|
|
210
151
|
}
|
|
211
152
|
});
|
|
212
153
|
}
|
|
@@ -220,6 +161,13 @@ const loadableResource = /*#__PURE__*/Object.freeze({
|
|
|
220
161
|
fromUrn: fromUrn
|
|
221
162
|
});
|
|
222
163
|
|
|
164
|
+
function isSceneViewStateId(identifier) {
|
|
165
|
+
return identifier.id != null;
|
|
166
|
+
}
|
|
167
|
+
function isSceneViewStateSuppliedId(identifier) {
|
|
168
|
+
return identifier.suppliedId != null;
|
|
169
|
+
}
|
|
170
|
+
|
|
223
171
|
/**
|
|
224
172
|
* A `SynchronizedClock` allows for approximating the time on a remote machine.
|
|
225
173
|
*
|
|
@@ -370,79 +318,114 @@ class CameraRenderResult {
|
|
|
370
318
|
}
|
|
371
319
|
}
|
|
372
320
|
|
|
373
|
-
function
|
|
374
|
-
|
|
321
|
+
function buildSceneViewStateIdentifier(identifier) {
|
|
322
|
+
if (typeof identifier === 'string') {
|
|
323
|
+
return { sceneViewStateId: { hex: identifier } };
|
|
324
|
+
}
|
|
325
|
+
else if (isSceneViewStateId(identifier)) {
|
|
326
|
+
return { sceneViewStateId: { hex: identifier.id } };
|
|
327
|
+
}
|
|
328
|
+
else if (isSceneViewStateSuppliedId(identifier)) {
|
|
329
|
+
return { sceneViewStateSuppliedId: { value: identifier.suppliedId } };
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
throw new Error('Unable to build scene view state identifier, input must be a string or `SceneViewStateIdentifier`.');
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
function buildQueryExpression(query, context) {
|
|
375
336
|
switch (query.type) {
|
|
376
337
|
case 'and':
|
|
377
338
|
case 'or':
|
|
378
339
|
return {
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
340
|
+
operand: {
|
|
341
|
+
itemCollection: {
|
|
342
|
+
queries: query.expressions.map((exp) => ({
|
|
343
|
+
sceneItemQuery: buildSceneItemQuery(exp),
|
|
344
|
+
})),
|
|
345
|
+
},
|
|
346
|
+
},
|
|
347
|
+
};
|
|
348
|
+
case 'not':
|
|
349
|
+
return {
|
|
350
|
+
not: {
|
|
351
|
+
expression: buildQueryExpression(query.query, context),
|
|
383
352
|
},
|
|
384
|
-
operationTypes,
|
|
385
353
|
};
|
|
386
354
|
case 'item-id':
|
|
387
355
|
case 'supplied-id':
|
|
388
356
|
return {
|
|
389
|
-
|
|
390
|
-
|
|
357
|
+
operand: {
|
|
358
|
+
item: {
|
|
359
|
+
sceneItemQuery: buildSceneItemQuery(query),
|
|
360
|
+
},
|
|
391
361
|
},
|
|
392
|
-
operationTypes,
|
|
393
362
|
};
|
|
394
363
|
case 'all':
|
|
395
364
|
return {
|
|
396
|
-
|
|
397
|
-
|
|
365
|
+
operand: {
|
|
366
|
+
root: {},
|
|
367
|
+
},
|
|
398
368
|
};
|
|
399
369
|
case 'scene-tree-range':
|
|
400
370
|
return {
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
371
|
+
operand: {
|
|
372
|
+
sceneTreeRange: {
|
|
373
|
+
start: query.range.start,
|
|
374
|
+
end: query.range.end,
|
|
375
|
+
},
|
|
404
376
|
},
|
|
405
|
-
operationTypes,
|
|
406
377
|
};
|
|
407
378
|
case 'metadata':
|
|
408
379
|
return {
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
380
|
+
operand: {
|
|
381
|
+
metadata: {
|
|
382
|
+
valueFilter: query.filter,
|
|
383
|
+
keys: query.keys,
|
|
384
|
+
exactMatch: query.exactMatch,
|
|
385
|
+
},
|
|
413
386
|
},
|
|
414
|
-
operationTypes,
|
|
415
387
|
};
|
|
416
388
|
case 'all-selected':
|
|
417
389
|
return {
|
|
418
|
-
|
|
419
|
-
|
|
390
|
+
operand: {
|
|
391
|
+
override: {
|
|
392
|
+
selection: {},
|
|
393
|
+
},
|
|
420
394
|
},
|
|
421
|
-
operationTypes,
|
|
422
395
|
};
|
|
423
396
|
case 'point':
|
|
424
397
|
return {
|
|
425
|
-
|
|
426
|
-
point:
|
|
427
|
-
|
|
398
|
+
operand: {
|
|
399
|
+
point: {
|
|
400
|
+
point: query.point,
|
|
401
|
+
viewport: context.dimensions,
|
|
402
|
+
},
|
|
428
403
|
},
|
|
429
|
-
operationTypes,
|
|
430
404
|
};
|
|
431
405
|
case 'volume-intersection':
|
|
432
406
|
return {
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
407
|
+
operand: {
|
|
408
|
+
volume: {
|
|
409
|
+
frustumByRectangle: {
|
|
410
|
+
rectangle: query.rectangle,
|
|
411
|
+
},
|
|
412
|
+
exclusive: query.exclusive,
|
|
413
|
+
viewport: context.dimensions,
|
|
436
414
|
},
|
|
437
|
-
exclusive: query.exclusive,
|
|
438
|
-
viewport: context.dimensions,
|
|
439
415
|
},
|
|
440
|
-
operationTypes,
|
|
441
416
|
};
|
|
442
417
|
default:
|
|
443
418
|
return {};
|
|
444
419
|
}
|
|
445
420
|
}
|
|
421
|
+
function buildSceneOperation(query, operations, context) {
|
|
422
|
+
const operationTypes = buildOperationTypes(operations);
|
|
423
|
+
const queryExpression = buildQueryExpression(query, context);
|
|
424
|
+
return {
|
|
425
|
+
queryExpression,
|
|
426
|
+
operationTypes,
|
|
427
|
+
};
|
|
428
|
+
}
|
|
446
429
|
function buildSceneItemQuery(item) {
|
|
447
430
|
switch (item.type) {
|
|
448
431
|
case 'item-id':
|
|
@@ -466,7 +449,7 @@ function buildFlyToOperation(frameCorrelationId, options, animation) {
|
|
|
466
449
|
},
|
|
467
450
|
animation: animation
|
|
468
451
|
? {
|
|
469
|
-
duration:
|
|
452
|
+
duration: bundle_esm.toProtoDuration(animation.milliseconds),
|
|
470
453
|
}
|
|
471
454
|
: undefined,
|
|
472
455
|
};
|
|
@@ -562,6 +545,33 @@ function buildOperationTypes(operations) {
|
|
|
562
545
|
}
|
|
563
546
|
});
|
|
564
547
|
}
|
|
548
|
+
function toPbSceneViewStateFeatures(features) {
|
|
549
|
+
return features.map((feature) => {
|
|
550
|
+
switch (feature) {
|
|
551
|
+
case 'camera':
|
|
552
|
+
return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
|
|
553
|
+
.SCENE_VIEW_STATE_FEATURE_CAMERA;
|
|
554
|
+
case 'material_overrides':
|
|
555
|
+
return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
|
|
556
|
+
.SCENE_VIEW_STATE_FEATURE_MATERIAL_OVERRIDE;
|
|
557
|
+
case 'selection':
|
|
558
|
+
return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
|
|
559
|
+
.SCENE_VIEW_STATE_FEATURE_SELECTION;
|
|
560
|
+
case 'visibility':
|
|
561
|
+
return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
|
|
562
|
+
.SCENE_VIEW_STATE_FEATURE_VISIBILITY;
|
|
563
|
+
case 'transforms':
|
|
564
|
+
return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
|
|
565
|
+
.SCENE_VIEW_STATE_FEATURE_TRANSFORM;
|
|
566
|
+
case 'cross_section':
|
|
567
|
+
return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
|
|
568
|
+
.SCENE_VIEW_STATE_FEATURE_CROSS_SECTION;
|
|
569
|
+
default:
|
|
570
|
+
return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
|
|
571
|
+
.SCENE_VIEW_STATE_FEATURE_INVALID;
|
|
572
|
+
}
|
|
573
|
+
});
|
|
574
|
+
}
|
|
565
575
|
|
|
566
576
|
const PI_OVER_360 = 0.008726646259972;
|
|
567
577
|
class TerminalFlyToExecutor {
|
|
@@ -629,9 +639,9 @@ class Camera {
|
|
|
629
639
|
this.flyToOptions = flyToOptions;
|
|
630
640
|
}
|
|
631
641
|
fitCameraToBoundingBox(boundingBox, distance, viewVector) {
|
|
632
|
-
const vvec = bundle_esm.vector3.scale(distance, bundle_esm.vector3.normalize(viewVector));
|
|
633
|
-
const lookAt = bundle_esm.boundingBox.center(boundingBox);
|
|
634
|
-
const position = bundle_esm.vector3.subtract(lookAt, vvec);
|
|
642
|
+
const vvec = bundle_esm$1.vector3.scale(distance, bundle_esm$1.vector3.normalize(viewVector));
|
|
643
|
+
const lookAt = bundle_esm$1.boundingBox.center(boundingBox);
|
|
644
|
+
const position = bundle_esm$1.vector3.subtract(lookAt, vvec);
|
|
635
645
|
return this.update({ lookAt, position, viewVector: vvec });
|
|
636
646
|
}
|
|
637
647
|
/**
|
|
@@ -642,9 +652,9 @@ class Camera {
|
|
|
642
652
|
*/
|
|
643
653
|
signedDistanceToBoundingBoxCenter(boundingBox) {
|
|
644
654
|
const { position, viewVector } = streamAttributes.withPositionAndViewVector(this.data);
|
|
645
|
-
const boundingBoxCenter = bundle_esm.boundingBox.center(boundingBox !== null && boundingBox !== void 0 ? boundingBox : this.boundingBox);
|
|
646
|
-
const cameraToCenter = bundle_esm.vector3.subtract(boundingBoxCenter, position);
|
|
647
|
-
return (bundle_esm.vector3.dot(viewVector, cameraToCenter) / bundle_esm.vector3.magnitude(viewVector));
|
|
655
|
+
const boundingBoxCenter = bundle_esm$1.boundingBox.center(boundingBox !== null && boundingBox !== void 0 ? boundingBox : this.boundingBox);
|
|
656
|
+
const cameraToCenter = bundle_esm$1.vector3.subtract(boundingBoxCenter, position);
|
|
657
|
+
return (bundle_esm$1.vector3.dot(viewVector, cameraToCenter) / bundle_esm$1.vector3.magnitude(viewVector));
|
|
648
658
|
}
|
|
649
659
|
/**
|
|
650
660
|
* Specifies that the next render of the camera will be repositioned to one of
|
|
@@ -726,22 +736,22 @@ class Camera {
|
|
|
726
736
|
* @param normal The normal of the plane to align to.
|
|
727
737
|
*/
|
|
728
738
|
alignTo(position, normal) {
|
|
729
|
-
const worldX = bundle_esm.vector3.normalize(bundle_esm.vector3.cross(this.up, bundle_esm.vector3.normalize(this.viewVector)));
|
|
730
|
-
const positiveWorldY = bundle_esm.vector3.normalize(bundle_esm.vector3.cross(bundle_esm.vector3.normalize(this.viewVector), worldX));
|
|
739
|
+
const worldX = bundle_esm$1.vector3.normalize(bundle_esm$1.vector3.cross(this.up, bundle_esm$1.vector3.normalize(this.viewVector)));
|
|
740
|
+
const positiveWorldY = bundle_esm$1.vector3.normalize(bundle_esm$1.vector3.cross(bundle_esm$1.vector3.normalize(this.viewVector), worldX));
|
|
731
741
|
// Invert the world y axis if the provided normal is more than 90 degrees from it
|
|
732
742
|
// to compute a proper angle to rotate the view vector by
|
|
733
|
-
const worldY = bundle_esm.vector3.angleTo(normal, positiveWorldY) > Math.PI / 2
|
|
734
|
-
? bundle_esm.vector3.negate(positiveWorldY)
|
|
743
|
+
const worldY = bundle_esm$1.vector3.angleTo(normal, positiveWorldY) > Math.PI / 2
|
|
744
|
+
? bundle_esm$1.vector3.negate(positiveWorldY)
|
|
735
745
|
: positiveWorldY;
|
|
736
|
-
const localX = bundle_esm.vector3.isEqual(worldY, normal)
|
|
746
|
+
const localX = bundle_esm$1.vector3.isEqual(worldY, normal)
|
|
737
747
|
? worldX
|
|
738
|
-
: bundle_esm.vector3.normalize(bundle_esm.vector3.cross(worldY, normal));
|
|
739
|
-
const transformedViewVector = bundle_esm.vector3.transformMatrix(this.viewVector, bundle_esm.matrix4.makeRotation(bundle_esm.quaternion.fromAxisAngle(localX, bundle_esm.vector3.angleTo(normal, worldY))));
|
|
740
|
-
const lookAtRay = bundle_esm.ray.create({
|
|
748
|
+
: bundle_esm$1.vector3.normalize(bundle_esm$1.vector3.cross(worldY, normal));
|
|
749
|
+
const transformedViewVector = bundle_esm$1.vector3.transformMatrix(this.viewVector, bundle_esm$1.matrix4.makeRotation(bundle_esm$1.quaternion.fromAxisAngle(localX, bundle_esm$1.vector3.angleTo(normal, worldY))));
|
|
750
|
+
const lookAtRay = bundle_esm$1.ray.create({
|
|
741
751
|
origin: position,
|
|
742
|
-
direction: bundle_esm.vector3.normalize(transformedViewVector),
|
|
752
|
+
direction: bundle_esm$1.vector3.normalize(transformedViewVector),
|
|
743
753
|
});
|
|
744
|
-
const lookAt = bundle_esm.ray.at(lookAtRay, bundle_esm.vector3.magnitude(this.viewVector));
|
|
754
|
+
const lookAt = bundle_esm$1.ray.at(lookAtRay, bundle_esm$1.vector3.magnitude(this.viewVector));
|
|
745
755
|
return this.update({
|
|
746
756
|
position,
|
|
747
757
|
lookAt,
|
|
@@ -758,8 +768,8 @@ class Camera {
|
|
|
758
768
|
standardView(standardView) {
|
|
759
769
|
return this.update({
|
|
760
770
|
position: standardView.position,
|
|
761
|
-
viewVector: bundle_esm.vector3.subtract(bundle_esm.vector3.origin(), standardView.position),
|
|
762
|
-
lookAt: bundle_esm.vector3.origin(),
|
|
771
|
+
viewVector: bundle_esm$1.vector3.subtract(bundle_esm$1.vector3.origin(), standardView.position),
|
|
772
|
+
lookAt: bundle_esm$1.vector3.origin(),
|
|
763
773
|
up: standardView.up,
|
|
764
774
|
});
|
|
765
775
|
}
|
|
@@ -797,21 +807,21 @@ class PerspectiveCamera extends Camera {
|
|
|
797
807
|
*/
|
|
798
808
|
moveBy(delta) {
|
|
799
809
|
return this.update({
|
|
800
|
-
position: bundle_esm.vector3.add(this.position, delta),
|
|
801
|
-
lookAt: bundle_esm.vector3.add(this.lookAt, delta),
|
|
810
|
+
position: bundle_esm$1.vector3.add(this.position, delta),
|
|
811
|
+
lookAt: bundle_esm$1.vector3.add(this.lookAt, delta),
|
|
802
812
|
});
|
|
803
813
|
}
|
|
804
814
|
rotateAroundAxisAtPoint(angleInRadians, point, axis) {
|
|
805
815
|
return this.update({
|
|
806
|
-
position: bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.position, axis, point),
|
|
807
|
-
lookAt: bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point),
|
|
808
|
-
up: bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.up, axis, bundle_esm.vector3.origin()),
|
|
816
|
+
position: bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.position, axis, point),
|
|
817
|
+
lookAt: bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point),
|
|
818
|
+
up: bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.up, axis, bundle_esm$1.vector3.origin()),
|
|
809
819
|
});
|
|
810
820
|
}
|
|
811
821
|
fitToBoundingBox(boundingBox) {
|
|
812
822
|
var _a;
|
|
813
823
|
const radius = 1.1 *
|
|
814
|
-
bundle_esm.vector3.magnitude(bundle_esm.vector3.subtract(boundingBox.max, bundle_esm.boundingBox.center(boundingBox)));
|
|
824
|
+
bundle_esm$1.vector3.magnitude(bundle_esm$1.vector3.subtract(boundingBox.max, bundle_esm$1.boundingBox.center(boundingBox)));
|
|
815
825
|
// ratio of the height of the frustum to the distance along the view vector
|
|
816
826
|
let hOverD = Math.tan(((_a = this.fovY) !== null && _a !== void 0 ? _a : 45) * PI_OVER_360);
|
|
817
827
|
if (this.aspect < 1.0) {
|
|
@@ -821,14 +831,16 @@ class PerspectiveCamera extends Camera {
|
|
|
821
831
|
return super.fitCameraToBoundingBox(boundingBox, distance, this.viewVector);
|
|
822
832
|
}
|
|
823
833
|
update(camera) {
|
|
824
|
-
|
|
834
|
+
var _a;
|
|
835
|
+
const fovY = (_a = camera.fovY) !== null && _a !== void 0 ? _a : this.fovY;
|
|
836
|
+
return new PerspectiveCamera(this.stream, this.aspect, Object.assign(Object.assign(Object.assign({}, this.perspectiveData), camera), { fovY }), this.boundingBox, this.decodeFrame, this.flyToOptions);
|
|
825
837
|
}
|
|
826
838
|
toFrameCamera() {
|
|
827
839
|
var _a;
|
|
828
840
|
return new streamAttributes.FramePerspectiveCamera(this.position, this.lookAt, this.up, this.near, this.far, this.aspectRatio, (_a = this.fovY) !== null && _a !== void 0 ? _a : 45);
|
|
829
841
|
}
|
|
830
842
|
get viewVector() {
|
|
831
|
-
return bundle_esm.vector3.subtract(this.lookAt, this.position);
|
|
843
|
+
return bundle_esm$1.vector3.subtract(this.lookAt, this.position);
|
|
832
844
|
}
|
|
833
845
|
/**
|
|
834
846
|
* The position vector for the camera, in world space coordinates.
|
|
@@ -891,21 +903,21 @@ class OrthographicCamera extends Camera {
|
|
|
891
903
|
*/
|
|
892
904
|
moveBy(delta) {
|
|
893
905
|
return this.update({
|
|
894
|
-
lookAt: bundle_esm.vector3.add(this.lookAt, delta),
|
|
906
|
+
lookAt: bundle_esm$1.vector3.add(this.lookAt, delta),
|
|
895
907
|
});
|
|
896
908
|
}
|
|
897
909
|
rotateAroundAxisAtPoint(angleInRadians, point, axis) {
|
|
898
|
-
const updatedLookAt = bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point);
|
|
899
|
-
const updatedPosition = bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.position, axis, point);
|
|
900
|
-
const viewVector = streamAttributes.constrainViewVector(bundle_esm.vector3.subtract(updatedLookAt, updatedPosition), bundle_esm.boundingSphere.create(this.boundingBox));
|
|
910
|
+
const updatedLookAt = bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point);
|
|
911
|
+
const updatedPosition = bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.position, axis, point);
|
|
912
|
+
const viewVector = streamAttributes.constrainViewVector(bundle_esm$1.vector3.subtract(updatedLookAt, updatedPosition), bundle_esm$1.boundingSphere.create(this.boundingBox));
|
|
901
913
|
return this.update({
|
|
902
914
|
viewVector: viewVector,
|
|
903
915
|
lookAt: updatedLookAt,
|
|
904
|
-
up: bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.up, axis, bundle_esm.vector3.origin()),
|
|
916
|
+
up: bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.up, axis, bundle_esm$1.vector3.origin()),
|
|
905
917
|
});
|
|
906
918
|
}
|
|
907
919
|
fitToBoundingBox(boundingBox) {
|
|
908
|
-
const boundingSphere = bundle_esm.boundingSphere.create(boundingBox);
|
|
920
|
+
const boundingSphere = bundle_esm$1.boundingSphere.create(boundingBox);
|
|
909
921
|
const fitAll = super.fitCameraToBoundingBox(boundingBox, boundingSphere.radius, this.viewVector);
|
|
910
922
|
return this.update({
|
|
911
923
|
lookAt: fitAll.lookAt,
|
|
@@ -917,13 +929,13 @@ class OrthographicCamera extends Camera {
|
|
|
917
929
|
return new OrthographicCamera(this.stream, this.aspect, Object.assign(Object.assign({}, this.orthographicData), camera), this.boundingBox, this.decodeFrame, this.flyToOptions);
|
|
918
930
|
}
|
|
919
931
|
toFrameCamera() {
|
|
920
|
-
return new streamAttributes.FrameOrthographicCamera(streamAttributes.constrainViewVector(this.viewVector, bundle_esm.boundingSphere.create(this.boundingBox)), this.lookAt, this.up, this.near, this.far, this.aspectRatio, this.fovHeight);
|
|
932
|
+
return new streamAttributes.FrameOrthographicCamera(streamAttributes.constrainViewVector(this.viewVector, bundle_esm$1.boundingSphere.create(this.boundingBox)), this.lookAt, this.up, this.near, this.far, this.aspectRatio, this.fovHeight);
|
|
921
933
|
}
|
|
922
934
|
get viewVector() {
|
|
923
935
|
return Object.assign({}, this.orthographicData.viewVector);
|
|
924
936
|
}
|
|
925
937
|
get position() {
|
|
926
|
-
return bundle_esm.vector3.add(this.lookAt, bundle_esm.vector3.negate(this.viewVector));
|
|
938
|
+
return bundle_esm$1.vector3.add(this.lookAt, bundle_esm$1.vector3.negate(this.viewVector));
|
|
927
939
|
}
|
|
928
940
|
/**
|
|
929
941
|
* A normalized vector representing the up direction.
|
|
@@ -985,7 +997,7 @@ class Raycaster {
|
|
|
985
997
|
async hitItems(point, options) {
|
|
986
998
|
const scale = this.imageScaleProvider();
|
|
987
999
|
const res = await this.stream.hitItems({
|
|
988
|
-
point: bundle_esm.point.scale(point, (scale === null || scale === void 0 ? void 0 : scale.x) || 1, (scale === null || scale === void 0 ? void 0 : scale.y) || 1),
|
|
1000
|
+
point: bundle_esm$1.point.scale(point, (scale === null || scale === void 0 ? void 0 : scale.x) || 1, (scale === null || scale === void 0 ? void 0 : scale.y) || 1),
|
|
989
1001
|
includeMetadata: options === null || options === void 0 ? void 0 : options.includeMetadata,
|
|
990
1002
|
}, true);
|
|
991
1003
|
return res.hitItems || undefined;
|
|
@@ -1054,61 +1066,97 @@ class SceneOperationBuilder {
|
|
|
1054
1066
|
}
|
|
1055
1067
|
}
|
|
1056
1068
|
|
|
1069
|
+
/**
|
|
1070
|
+
* An interface that represents a query is "complete" and can be turned into an
|
|
1071
|
+
* expression.
|
|
1072
|
+
*/
|
|
1073
|
+
class TerminalQuery {
|
|
1074
|
+
constructor(inverted) {
|
|
1075
|
+
this.inverted = inverted;
|
|
1076
|
+
}
|
|
1077
|
+
build() {
|
|
1078
|
+
if (this.inverted) {
|
|
1079
|
+
return {
|
|
1080
|
+
type: 'not',
|
|
1081
|
+
query: this.queryExpressionBuilder(),
|
|
1082
|
+
};
|
|
1083
|
+
}
|
|
1084
|
+
else {
|
|
1085
|
+
return this.queryExpressionBuilder();
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
1057
1089
|
class RootQuery {
|
|
1090
|
+
constructor(inverted = false) {
|
|
1091
|
+
this.inverted = inverted;
|
|
1092
|
+
}
|
|
1058
1093
|
all() {
|
|
1059
1094
|
return new AllQuery();
|
|
1060
1095
|
}
|
|
1096
|
+
not() {
|
|
1097
|
+
return new NotQuery(!this.inverted);
|
|
1098
|
+
}
|
|
1061
1099
|
withItemIds(ids) {
|
|
1062
|
-
return new BulkQuery(ids, 'item-id');
|
|
1100
|
+
return new BulkQuery(ids, 'item-id', this.inverted);
|
|
1063
1101
|
}
|
|
1064
1102
|
withSuppliedIds(ids) {
|
|
1065
|
-
return new BulkQuery(ids, 'supplied-id');
|
|
1103
|
+
return new BulkQuery(ids, 'supplied-id', this.inverted);
|
|
1066
1104
|
}
|
|
1067
1105
|
withItemId(id) {
|
|
1068
|
-
return new SingleQuery({ type: 'item-id', value: id });
|
|
1106
|
+
return new SingleQuery({ type: 'item-id', value: id }, this.inverted);
|
|
1069
1107
|
}
|
|
1070
1108
|
withSuppliedId(id) {
|
|
1071
|
-
return new SingleQuery({ type: 'supplied-id', value: id });
|
|
1109
|
+
return new SingleQuery({ type: 'supplied-id', value: id }, this.inverted);
|
|
1072
1110
|
}
|
|
1073
1111
|
withSceneTreeRange(range) {
|
|
1074
|
-
return new SceneTreeRangeQuery(range);
|
|
1112
|
+
return new SceneTreeRangeQuery(range, this.inverted);
|
|
1075
1113
|
}
|
|
1076
1114
|
withMetadata(filter, keys, exactMatch) {
|
|
1077
|
-
return new MetadataQuery(filter, keys, exactMatch);
|
|
1115
|
+
return new MetadataQuery(filter, keys, exactMatch, this.inverted);
|
|
1078
1116
|
}
|
|
1079
1117
|
withSelected() {
|
|
1080
|
-
return new AllSelectedQuery();
|
|
1118
|
+
return new AllSelectedQuery(this.inverted);
|
|
1081
1119
|
}
|
|
1082
1120
|
withPoint(point) {
|
|
1083
|
-
return new PointQuery(point);
|
|
1121
|
+
return new PointQuery(point, this.inverted);
|
|
1084
1122
|
}
|
|
1085
1123
|
withVolumeIntersection(rectangle, exclusive) {
|
|
1086
|
-
return new VolumeIntersectionQuery(rectangle, exclusive);
|
|
1124
|
+
return new VolumeIntersectionQuery(rectangle, this.inverted, exclusive);
|
|
1087
1125
|
}
|
|
1088
1126
|
}
|
|
1089
|
-
class
|
|
1090
|
-
|
|
1127
|
+
class NotQuery extends RootQuery {
|
|
1128
|
+
constructor(inverted) {
|
|
1129
|
+
super(inverted);
|
|
1130
|
+
}
|
|
1131
|
+
}
|
|
1132
|
+
class AllQuery extends TerminalQuery {
|
|
1133
|
+
constructor(inverted = false) {
|
|
1134
|
+
super(inverted);
|
|
1135
|
+
}
|
|
1136
|
+
queryExpressionBuilder() {
|
|
1091
1137
|
return { type: 'all' };
|
|
1092
1138
|
}
|
|
1093
1139
|
}
|
|
1094
|
-
class SceneTreeRangeQuery {
|
|
1095
|
-
constructor(range) {
|
|
1140
|
+
class SceneTreeRangeQuery extends TerminalQuery {
|
|
1141
|
+
constructor(range, inverted) {
|
|
1142
|
+
super(inverted);
|
|
1096
1143
|
this.range = range;
|
|
1097
1144
|
}
|
|
1098
|
-
|
|
1145
|
+
queryExpressionBuilder() {
|
|
1099
1146
|
return {
|
|
1100
1147
|
type: 'scene-tree-range',
|
|
1101
1148
|
range: this.range,
|
|
1102
1149
|
};
|
|
1103
1150
|
}
|
|
1104
1151
|
}
|
|
1105
|
-
class MetadataQuery {
|
|
1106
|
-
constructor(filter, keys, exactMatch) {
|
|
1152
|
+
class MetadataQuery extends TerminalQuery {
|
|
1153
|
+
constructor(filter, keys, exactMatch, inverted) {
|
|
1154
|
+
super(inverted);
|
|
1107
1155
|
this.filter = filter;
|
|
1108
1156
|
this.keys = keys;
|
|
1109
1157
|
this.exactMatch = exactMatch;
|
|
1110
1158
|
}
|
|
1111
|
-
|
|
1159
|
+
queryExpressionBuilder() {
|
|
1112
1160
|
return {
|
|
1113
1161
|
type: 'metadata',
|
|
1114
1162
|
filter: this.filter,
|
|
@@ -1117,30 +1165,35 @@ class MetadataQuery {
|
|
|
1117
1165
|
};
|
|
1118
1166
|
}
|
|
1119
1167
|
}
|
|
1120
|
-
class AllSelectedQuery {
|
|
1121
|
-
|
|
1168
|
+
class AllSelectedQuery extends TerminalQuery {
|
|
1169
|
+
constructor(inverted) {
|
|
1170
|
+
super(inverted);
|
|
1171
|
+
}
|
|
1172
|
+
queryExpressionBuilder() {
|
|
1122
1173
|
return {
|
|
1123
1174
|
type: 'all-selected',
|
|
1124
1175
|
};
|
|
1125
1176
|
}
|
|
1126
1177
|
}
|
|
1127
|
-
class PointQuery {
|
|
1128
|
-
constructor(point) {
|
|
1178
|
+
class PointQuery extends TerminalQuery {
|
|
1179
|
+
constructor(point, inverted) {
|
|
1180
|
+
super(inverted);
|
|
1129
1181
|
this.point = point;
|
|
1130
1182
|
}
|
|
1131
|
-
|
|
1183
|
+
queryExpressionBuilder() {
|
|
1132
1184
|
return {
|
|
1133
1185
|
type: 'point',
|
|
1134
1186
|
point: this.point,
|
|
1135
1187
|
};
|
|
1136
1188
|
}
|
|
1137
1189
|
}
|
|
1138
|
-
class VolumeIntersectionQuery {
|
|
1139
|
-
constructor(rectangle, exclusive) {
|
|
1190
|
+
class VolumeIntersectionQuery extends TerminalQuery {
|
|
1191
|
+
constructor(rectangle, inverted, exclusive) {
|
|
1192
|
+
super(inverted);
|
|
1140
1193
|
this.rectangle = rectangle;
|
|
1141
1194
|
this.exclusive = exclusive;
|
|
1142
1195
|
}
|
|
1143
|
-
|
|
1196
|
+
queryExpressionBuilder() {
|
|
1144
1197
|
return {
|
|
1145
1198
|
type: 'volume-intersection',
|
|
1146
1199
|
rectangle: this.rectangle,
|
|
@@ -1148,12 +1201,13 @@ class VolumeIntersectionQuery {
|
|
|
1148
1201
|
};
|
|
1149
1202
|
}
|
|
1150
1203
|
}
|
|
1151
|
-
class BulkQuery {
|
|
1152
|
-
constructor(ids, type) {
|
|
1204
|
+
class BulkQuery extends TerminalQuery {
|
|
1205
|
+
constructor(ids, type, inverted) {
|
|
1206
|
+
super(inverted);
|
|
1153
1207
|
this.ids = ids;
|
|
1154
1208
|
this.type = type;
|
|
1155
1209
|
}
|
|
1156
|
-
|
|
1210
|
+
queryExpressionBuilder() {
|
|
1157
1211
|
return {
|
|
1158
1212
|
type: 'or',
|
|
1159
1213
|
expressions: this.ids.map((id) => {
|
|
@@ -1165,55 +1219,52 @@ class BulkQuery {
|
|
|
1165
1219
|
};
|
|
1166
1220
|
}
|
|
1167
1221
|
}
|
|
1168
|
-
class SingleQuery {
|
|
1169
|
-
constructor(query) {
|
|
1222
|
+
class SingleQuery extends TerminalQuery {
|
|
1223
|
+
constructor(query, inverted) {
|
|
1224
|
+
super(inverted);
|
|
1170
1225
|
this.query = query;
|
|
1171
1226
|
}
|
|
1172
|
-
|
|
1227
|
+
queryExpressionBuilder() {
|
|
1173
1228
|
return Object.assign({}, this.query);
|
|
1174
1229
|
}
|
|
1175
1230
|
and() {
|
|
1176
|
-
return new AndQuery([this.query]);
|
|
1231
|
+
return new AndQuery([this.query], this.inverted);
|
|
1177
1232
|
}
|
|
1178
1233
|
or() {
|
|
1179
|
-
return new OrQuery([this.query]);
|
|
1234
|
+
return new OrQuery([this.query], this.inverted);
|
|
1180
1235
|
}
|
|
1181
1236
|
}
|
|
1182
|
-
class OrQuery {
|
|
1183
|
-
constructor(expressions) {
|
|
1237
|
+
class OrQuery extends TerminalQuery {
|
|
1238
|
+
constructor(expressions, inverted) {
|
|
1239
|
+
super(inverted);
|
|
1184
1240
|
this.expressions = expressions;
|
|
1185
1241
|
}
|
|
1186
|
-
|
|
1242
|
+
queryExpressionBuilder() {
|
|
1187
1243
|
return { type: 'or', expressions: [...this.expressions] };
|
|
1188
1244
|
}
|
|
1189
1245
|
withItemId(id) {
|
|
1190
|
-
return new OrQuery([...this.expressions, { type: 'item-id', value: id }]);
|
|
1246
|
+
return new OrQuery([...this.expressions, { type: 'item-id', value: id }], this.inverted);
|
|
1191
1247
|
}
|
|
1192
1248
|
withSuppliedId(id) {
|
|
1193
|
-
return new OrQuery([
|
|
1194
|
-
...this.expressions,
|
|
1195
|
-
{ type: 'supplied-id', value: id },
|
|
1196
|
-
]);
|
|
1249
|
+
return new OrQuery([...this.expressions, { type: 'supplied-id', value: id }], this.inverted);
|
|
1197
1250
|
}
|
|
1198
1251
|
or() {
|
|
1199
1252
|
return this;
|
|
1200
1253
|
}
|
|
1201
1254
|
}
|
|
1202
|
-
class AndQuery {
|
|
1203
|
-
constructor(expressions) {
|
|
1255
|
+
class AndQuery extends TerminalQuery {
|
|
1256
|
+
constructor(expressions, inverted) {
|
|
1257
|
+
super(inverted);
|
|
1204
1258
|
this.expressions = expressions;
|
|
1205
1259
|
}
|
|
1206
|
-
|
|
1260
|
+
queryExpressionBuilder() {
|
|
1207
1261
|
return { type: 'and', expressions: [...this.expressions] };
|
|
1208
1262
|
}
|
|
1209
1263
|
withItemId(id) {
|
|
1210
|
-
return new AndQuery([...this.expressions, { type: 'item-id', value: id }]);
|
|
1264
|
+
return new AndQuery([...this.expressions, { type: 'item-id', value: id }], this.inverted);
|
|
1211
1265
|
}
|
|
1212
1266
|
withSuppliedId(id) {
|
|
1213
|
-
return new AndQuery([
|
|
1214
|
-
...this.expressions,
|
|
1215
|
-
{ type: 'supplied-id', value: id },
|
|
1216
|
-
]);
|
|
1267
|
+
return new AndQuery([...this.expressions, { type: 'supplied-id', value: id }], this.inverted);
|
|
1217
1268
|
}
|
|
1218
1269
|
and() {
|
|
1219
1270
|
return this;
|
|
@@ -1272,7 +1323,7 @@ class SceneItemOperationsBuilder {
|
|
|
1272
1323
|
transform(matrix) {
|
|
1273
1324
|
if (Array.isArray(matrix)) {
|
|
1274
1325
|
if (matrix.length !== 16) {
|
|
1275
|
-
throw new InvalidArgumentError('Matrix provided must contain exactly 16 values (4x4).');
|
|
1326
|
+
throw new errors.InvalidArgumentError('Matrix provided must contain exactly 16 values (4x4).');
|
|
1276
1327
|
}
|
|
1277
1328
|
return new SceneItemOperationsBuilder(this.query, this.defaultSelectionMaterial, this.builder.transform({
|
|
1278
1329
|
r0: {
|
|
@@ -1361,12 +1412,20 @@ class Scene {
|
|
|
1361
1412
|
* Applies the provided scene view state to the scene.
|
|
1362
1413
|
*/
|
|
1363
1414
|
async applySceneViewState(sceneViewStateId, opts = {}) {
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
frameCorrelationId: opts.suppliedCorrelationId
|
|
1415
|
+
const pbIdField = buildSceneViewStateIdentifier(sceneViewStateId);
|
|
1416
|
+
return await this.stream.loadSceneViewState(Object.assign(Object.assign({}, pbIdField), { frameCorrelationId: opts.suppliedCorrelationId
|
|
1367
1417
|
? { value: opts.suppliedCorrelationId }
|
|
1368
|
-
: undefined,
|
|
1369
|
-
|
|
1418
|
+
: undefined }), true);
|
|
1419
|
+
}
|
|
1420
|
+
/**
|
|
1421
|
+
* Applies the specified features of the provided scene view state to the scene.
|
|
1422
|
+
*/
|
|
1423
|
+
async applyPartialSceneViewState(sceneViewStateId, featuresToApply, opts = {}) {
|
|
1424
|
+
const pbIdField = buildSceneViewStateIdentifier(sceneViewStateId);
|
|
1425
|
+
const pbFeatures = toPbSceneViewStateFeatures(featuresToApply);
|
|
1426
|
+
return await this.stream.loadSceneViewState(Object.assign(Object.assign({}, pbIdField), { frameCorrelationId: opts.suppliedCorrelationId
|
|
1427
|
+
? { value: opts.suppliedCorrelationId }
|
|
1428
|
+
: undefined, sceneViewStateFeatureSubset: pbFeatures }), true);
|
|
1370
1429
|
}
|
|
1371
1430
|
/**
|
|
1372
1431
|
* Resets the view to its default state, with the ability to reset the camera to that of the base scene.
|
|
@@ -1398,7 +1457,7 @@ class Scene {
|
|
|
1398
1457
|
camera() {
|
|
1399
1458
|
const { scene } = this.frame;
|
|
1400
1459
|
if (scene.camera.isOrthographic()) {
|
|
1401
|
-
return new OrthographicCamera(this.stream, bundle_esm.dimensions.aspectRatio(this.viewport()), {
|
|
1460
|
+
return new OrthographicCamera(this.stream, bundle_esm$1.dimensions.aspectRatio(this.viewport()), {
|
|
1402
1461
|
viewVector: scene.camera.viewVector,
|
|
1403
1462
|
lookAt: scene.camera.lookAt,
|
|
1404
1463
|
up: scene.camera.up,
|
|
@@ -1406,7 +1465,7 @@ class Scene {
|
|
|
1406
1465
|
}, this.frame.scene.boundingBox, this.decodeFrame);
|
|
1407
1466
|
}
|
|
1408
1467
|
else if (scene.camera.isPerspective()) {
|
|
1409
|
-
return new PerspectiveCamera(this.stream, bundle_esm.dimensions.aspectRatio(this.viewport()), {
|
|
1468
|
+
return new PerspectiveCamera(this.stream, bundle_esm$1.dimensions.aspectRatio(this.viewport()), {
|
|
1410
1469
|
position: scene.camera.position,
|
|
1411
1470
|
lookAt: scene.camera.lookAt,
|
|
1412
1471
|
up: scene.camera.up,
|
|
@@ -1414,7 +1473,7 @@ class Scene {
|
|
|
1414
1473
|
}, this.frame.scene.boundingBox, this.decodeFrame);
|
|
1415
1474
|
}
|
|
1416
1475
|
else {
|
|
1417
|
-
throw new InvalidCameraError('Cannot retrieve camera. Scene has an unknown or invalid camera type.');
|
|
1476
|
+
throw new errors.InvalidCameraError('Cannot retrieve camera. Scene has an unknown or invalid camera type.');
|
|
1418
1477
|
}
|
|
1419
1478
|
}
|
|
1420
1479
|
boundingBox() {
|
|
@@ -1442,20 +1501,12 @@ class Scene {
|
|
|
1442
1501
|
* The current x and y scale of the rendered image.
|
|
1443
1502
|
*/
|
|
1444
1503
|
scale() {
|
|
1445
|
-
return this.imageScaleProvider() || bundle_esm.point.create(1, 1);
|
|
1504
|
+
return this.imageScaleProvider() || bundle_esm$1.point.create(1, 1);
|
|
1446
1505
|
}
|
|
1447
1506
|
}
|
|
1448
1507
|
|
|
1449
|
-
exports.ComponentInitializationError = ComponentInitializationError;
|
|
1450
|
-
exports.CustomError = CustomError;
|
|
1451
|
-
exports.IllegalStateError = IllegalStateError;
|
|
1452
|
-
exports.ImageLoadError = ImageLoadError;
|
|
1453
|
-
exports.InteractionHandlerError = InteractionHandlerError;
|
|
1454
1508
|
exports.Scene = Scene;
|
|
1455
|
-
exports.SceneRenderError = SceneRenderError;
|
|
1456
1509
|
exports.SynchronizedClock = SynchronizedClock;
|
|
1457
|
-
exports.ViewerInitializationError = ViewerInitializationError;
|
|
1458
|
-
exports.WebsocketConnectionError = WebsocketConnectionError;
|
|
1459
1510
|
exports.colorMaterial = colorMaterial;
|
|
1460
1511
|
exports.defaultSelectionMaterial = defaultSelectionMaterial;
|
|
1461
1512
|
exports.fromHex = fromHex;
|