@vertexvis/viewer 0.10.2-canary.7 → 0.11.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/{browser.esm-ae55f058.js → browser.esm-17419694.js} +25 -25
- package/dist/cjs/{bundle.esm-c457ad4d.js → bundle.esm-b79513ef.js} +231 -207
- package/dist/cjs/{constants-4277684a.js → constants-1d65ed39.js} +1 -1
- package/dist/cjs/{cursors-b93b43ef.js → cursors-8aaf500f.js} +1 -1
- package/dist/cjs/{dom-cdb50ebc.js → dom-40804039.js} +1 -1
- package/dist/cjs/index.cjs.js +8 -7
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{markup-3dac4cef.js → markup-e84a143f.js} +11 -2
- package/dist/cjs/{measurement-b494bf55.js → measurement-4579193b.js} +2 -2
- package/dist/cjs/{orientation-42cc9e8d.js → orientation-09d0f3ef.js} +14 -7
- package/dist/cjs/{png-decoder-2add73dd.js → png-decoder-97ea96ba.js} +3 -3
- package/dist/cjs/{scene-23a0a330.js → scene-4397373a.js} +28524 -2446
- package/dist/cjs/{utils-6933381f.js → utils-414e6cfe.js} +2 -2
- package/dist/cjs/utils-440f0f7d.js +61 -0
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +6 -5
- package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +4 -4
- package/dist/cjs/{vertex-viewer-markup-arrow_2.cjs.entry.js → vertex-viewer-markup-arrow_3.cjs.entry.js} +267 -4
- package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +43 -9
- package/dist/cjs/vertex-viewer-markup.cjs.entry.js +25 -5
- package/dist/cjs/vertex-viewer-measurement-distance_2.cjs.entry.js +8 -8
- package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +5 -5
- package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +5 -5
- package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer.cjs.entry.js +141 -48
- package/dist/cjs/viewer.cjs.js +1 -1
- package/dist/cjs/{viewport-e69f8223.js → viewport-fc405a48.js} +31 -7
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/scene-tree/scene-tree.js +3 -2
- package/dist/collection/components/viewer/viewer.js +28 -3
- package/dist/collection/components/viewer-markup/utils.js +65 -1
- package/dist/collection/components/viewer-markup/viewer-markup.js +72 -16
- package/dist/collection/components/viewer-markup-circle/utils.js +2 -55
- package/dist/collection/components/viewer-markup-circle/viewer-markup-circle.js +4 -4
- package/dist/collection/components/viewer-markup-freeform.tsx/utils.js +10 -0
- package/dist/collection/components/viewer-markup-freeform.tsx/viewer-markup-freeform.css +157 -0
- package/dist/collection/components/viewer-markup-freeform.tsx/viewer-markup-freeform.js +413 -0
- package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.js +63 -9
- package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance-components.js +1 -1
- package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +2 -2
- package/dist/collection/lib/cursors.js +1 -1
- package/dist/collection/lib/interactions/baseInteractionHandler.js +5 -4
- package/dist/collection/lib/interactions/flyToPartKeyInteraction.js +1 -1
- package/dist/collection/lib/interactions/interactionApi.js +101 -22
- package/dist/collection/lib/interactions/mouseInteractions.js +17 -15
- package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +2 -2
- package/dist/collection/lib/mappers.js +4 -3
- package/dist/collection/lib/scenes/camera.js +8 -2
- package/dist/collection/lib/scenes/operations.js +1 -1
- package/dist/collection/lib/scenes/scene.js +5 -2
- package/dist/collection/lib/types/frame.js +8 -2
- package/dist/collection/lib/types/markup.js +9 -1
- package/dist/collection/lib/types/stencilBuffer.js +2 -2
- package/dist/collection/lib/types/viewport.js +32 -8
- package/dist/collection/testing/fixtures.js +2 -1
- package/dist/esm/{browser.esm-7dbdf78a.js → browser.esm-e4fb17dc.js} +25 -25
- package/dist/esm/{bundle.esm-590d2273.js → bundle.esm-d891316f.js} +232 -208
- package/dist/esm/{constants-083f6b2c.js → constants-037e417f.js} +1 -1
- package/dist/esm/{cursors-39294365.js → cursors-00835249.js} +1 -1
- package/dist/esm/{dom-43682375.js → dom-d0877f90.js} +1 -1
- package/dist/esm/index.js +7 -7
- package/dist/esm/index.mjs +7 -7
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loader.mjs +1 -1
- package/dist/esm/{markup-3ce3dccd.js → markup-9b29aa94.js} +11 -3
- package/dist/esm/{measurement-78bd27fc.js → measurement-8430d5d6.js} +2 -2
- package/dist/esm/{orientation-c3e2af18.js → orientation-bb34b652.js} +14 -7
- package/dist/esm/{png-decoder-dfb97536.js → png-decoder-c4745070.js} +3 -3
- package/dist/esm/{scene-30ac6229.js → scene-72760305.js} +28532 -2454
- package/dist/esm/utils-5fe43b8a.js +52 -0
- package/dist/esm/{utils-b857bd7c.js → utils-f8e0baf7.js} +2 -2
- package/dist/esm/vertex-scene-tree.entry.js +6 -5
- package/dist/esm/vertex-viewer-dom-element_3.entry.js +4 -4
- package/dist/esm/{vertex-viewer-markup-arrow_2.entry.js → vertex-viewer-markup-arrow_3.entry.js} +267 -5
- package/dist/esm/vertex-viewer-markup-tool.entry.js +43 -9
- package/dist/esm/vertex-viewer-markup.entry.js +25 -5
- package/dist/esm/vertex-viewer-measurement-distance_2.entry.js +8 -8
- package/dist/esm/vertex-viewer-measurement-tool.entry.js +5 -5
- package/dist/esm/vertex-viewer-measurements.entry.js +5 -5
- package/dist/esm/vertex-viewer-view-cube.entry.js +3 -3
- package/dist/esm/vertex-viewer.entry.js +141 -48
- package/dist/esm/viewer.js +1 -1
- package/dist/esm/{viewport-8fea0743.js → viewport-d6f5cd7b.js} +31 -7
- package/dist/types/components/viewer/viewer.d.ts +4 -0
- package/dist/types/components/viewer-markup/utils.d.ts +8 -0
- package/dist/types/components/viewer-markup/viewer-markup.d.ts +13 -6
- package/dist/types/components/viewer-markup-circle/utils.d.ts +1 -4
- package/dist/types/components/viewer-markup-freeform.tsx/utils.d.ts +3 -0
- package/dist/types/components/viewer-markup-freeform.tsx/viewer-markup-freeform.d.ts +116 -0
- package/dist/types/components/viewer-markup-tool/viewer-markup-tool.d.ts +13 -1
- package/dist/types/components.d.ts +107 -10
- package/dist/types/lib/interactions/interactionApi.d.ts +22 -6
- package/dist/types/lib/interactions/mouseInteractions.d.ts +7 -6
- package/dist/types/lib/scenes/camera.d.ts +5 -1
- package/dist/types/lib/scenes/scene.d.ts +1 -1
- package/dist/types/lib/types/frame.d.ts +4 -1
- package/dist/types/lib/types/markup.d.ts +12 -1
- package/dist/types/lib/types/viewport.d.ts +17 -0
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/p-012fb54f.js +4 -0
- package/dist/viewer/{p-3dc15d99.entry.js → p-117324c0.entry.js} +1 -1
- package/dist/viewer/{p-1ee75110.entry.js → p-1c772ec1.entry.js} +1 -1
- package/dist/viewer/p-1f8a238b.js +4 -0
- package/dist/viewer/p-21e8510d.js +4 -0
- package/dist/viewer/{p-e3105f9a.entry.js → p-3c2aff67.entry.js} +1 -1
- package/dist/viewer/p-5389e9d4.js +4 -0
- package/dist/viewer/p-59d075d4.js +17 -0
- package/dist/viewer/{p-5b078339.js → p-62c6f482.js} +1 -1
- package/dist/viewer/p-640cb5f8.js +18 -0
- package/dist/viewer/p-68aaf1f8.entry.js +4 -0
- package/dist/viewer/{p-05b2444e.js → p-75682963.js} +1 -1
- package/dist/viewer/{p-4183c421.entry.js → p-79c45c02.entry.js} +1 -1
- package/dist/viewer/p-835e158e.js +4 -0
- package/dist/viewer/p-8c255868.entry.js +4 -0
- package/dist/viewer/{p-f4a492e1.js → p-9faabd97.js} +1 -1
- package/dist/viewer/p-b122ee39.js +4 -0
- package/dist/viewer/p-b36b3d1a.js +4 -0
- package/dist/viewer/{p-7c71db57.entry.js → p-bc9e6919.entry.js} +1 -1
- package/dist/viewer/{p-f090a3f3.entry.js → p-c818c80e.entry.js} +1 -1
- package/dist/viewer/{p-e96bc9a2.js → p-d42a482c.js} +1 -1
- package/dist/viewer/p-f43e8cc2.entry.js +4 -0
- package/dist/viewer/p-f75436be.entry.js +4 -0
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +18 -16
- package/readme.md +6 -6
- package/dist/cjs/utils-96f244e1.js +0 -104
- package/dist/esm/utils-a550c58f.js +0 -96
- package/dist/viewer/p-11bdd2c4.js +0 -4
- package/dist/viewer/p-14182324.entry.js +0 -4
- package/dist/viewer/p-2768474e.js +0 -4
- package/dist/viewer/p-2e11803d.js +0 -4
- package/dist/viewer/p-6d4ab5fc.js +0 -17
- package/dist/viewer/p-964642c6.js +0 -4
- package/dist/viewer/p-9e856d0a.entry.js +0 -4
- package/dist/viewer/p-a717d9ff.js +0 -4
- package/dist/viewer/p-a9434d8e.entry.js +0 -4
- package/dist/viewer/p-af806858.js +0 -4
- package/dist/viewer/p-b5c350a7.js +0 -4
- package/dist/viewer/p-d912dd24.js +0 -18
- package/dist/viewer/p-f6d75616.entry.js +0 -4
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
7
7
|
|
|
8
8
|
const index = require('./index-6b9ad5cb.js');
|
|
9
|
-
const utils = require('./utils-
|
|
10
|
-
const bundle_esm = require('./bundle.esm-
|
|
9
|
+
const utils = require('./utils-414e6cfe.js');
|
|
10
|
+
const bundle_esm = require('./bundle.esm-b79513ef.js');
|
|
11
11
|
const index$1 = require('./index-3bc6bac0.js');
|
|
12
|
-
const browser_esm = require('./browser.esm-
|
|
13
|
-
const scene = require('./scene-
|
|
14
|
-
const orientation = require('./orientation-
|
|
15
|
-
const viewport = require('./viewport-
|
|
16
|
-
const dom = require('./dom-
|
|
17
|
-
const cursors = require('./cursors-
|
|
12
|
+
const browser_esm = require('./browser.esm-17419694.js');
|
|
13
|
+
const scene = require('./scene-4397373a.js');
|
|
14
|
+
const orientation = require('./orientation-09d0f3ef.js');
|
|
15
|
+
const viewport = require('./viewport-fc405a48.js');
|
|
16
|
+
const dom = require('./dom-40804039.js');
|
|
17
|
+
const cursors = require('./cursors-8aaf500f.js');
|
|
18
18
|
require('./_commonjsHelpers-537d719a.js');
|
|
19
19
|
|
|
20
20
|
function isPromise(obj) {
|
|
@@ -663,13 +663,18 @@ class InteractionApi {
|
|
|
663
663
|
var _a;
|
|
664
664
|
if (this.isInteracting()) {
|
|
665
665
|
const scene = this.getScene();
|
|
666
|
+
const viewport = this.getViewport();
|
|
667
|
+
const frame = this.getFrame();
|
|
668
|
+
const depthBuffer = await (frame === null || frame === void 0 ? void 0 : frame.depthBuffer());
|
|
666
669
|
this.currentCamera =
|
|
667
|
-
this.currentCamera != null
|
|
670
|
+
this.currentCamera != null && viewport != null && frame != null
|
|
668
671
|
? t({
|
|
669
672
|
camera: this.currentCamera,
|
|
670
|
-
viewport
|
|
673
|
+
viewport,
|
|
671
674
|
scale: scene.scale(),
|
|
672
675
|
boundingBox: scene.boundingBox(),
|
|
676
|
+
frame,
|
|
677
|
+
depthBuffer,
|
|
673
678
|
})
|
|
674
679
|
: undefined;
|
|
675
680
|
await ((_a = this.currentCamera) === null || _a === void 0 ? void 0 : _a.render());
|
|
@@ -694,6 +699,52 @@ class InteractionApi {
|
|
|
694
699
|
return camera;
|
|
695
700
|
});
|
|
696
701
|
}
|
|
702
|
+
/**
|
|
703
|
+
* Moves the camera's position and look at to the given screen coordinate.
|
|
704
|
+
*
|
|
705
|
+
* If the screen coordinate intersects with an object, the camera will track
|
|
706
|
+
* the hit point so the mouse position is always under the mouse.
|
|
707
|
+
*
|
|
708
|
+
* If the screen coordinate doesn't intersect with an object, then ???.
|
|
709
|
+
*
|
|
710
|
+
* @param screenPt A point in screen coordinates.
|
|
711
|
+
*/
|
|
712
|
+
async panCameraToScreenPoint(screenPt) {
|
|
713
|
+
return this.transformCamera(({ camera, frame, viewport, depthBuffer }) => {
|
|
714
|
+
// Capture the starting state of the pan.
|
|
715
|
+
if (this.panData == null) {
|
|
716
|
+
const startingCamera = camera.toFrameCamera();
|
|
717
|
+
const direction = startingCamera.direction;
|
|
718
|
+
const ray = viewport.transformPointToRay(screenPt, frame.image, startingCamera);
|
|
719
|
+
const fallbackPlane = bundle_esm.plane.fromNormalAndCoplanarPoint(direction, camera.lookAt);
|
|
720
|
+
const fallback = bundle_esm.ray.intersectPlane(ray, fallbackPlane);
|
|
721
|
+
if (fallback == null) {
|
|
722
|
+
console.warn('Cannot determine fallback for pan. Ray does not intersect plane.');
|
|
723
|
+
return camera;
|
|
724
|
+
}
|
|
725
|
+
// Create a plane for the hit point that will be used to determine the
|
|
726
|
+
// delta of future mouse movements to the original hit point. Fallback
|
|
727
|
+
// to a plane placed at the look at point, in case there's no hit.
|
|
728
|
+
const hitPt = depthBuffer != null
|
|
729
|
+
? this.getWorldPoint(screenPt, depthBuffer, fallback)
|
|
730
|
+
: fallback;
|
|
731
|
+
const hitPlane = bundle_esm.plane.fromNormalAndCoplanarPoint(direction, hitPt);
|
|
732
|
+
this.panData = { hitPt, hitPlane, startingCamera };
|
|
733
|
+
}
|
|
734
|
+
if (this.panData != null) {
|
|
735
|
+
const { hitPt, hitPlane, startingCamera } = this.panData;
|
|
736
|
+
// Use a ray that originates at the screen and intersects with the hit
|
|
737
|
+
// plane to determine the move distance.
|
|
738
|
+
const ray = viewport.transformPointToRay(screenPt, frame.image, startingCamera);
|
|
739
|
+
const movePt = bundle_esm.ray.intersectPlane(ray, hitPlane);
|
|
740
|
+
if (movePt != null) {
|
|
741
|
+
const delta = bundle_esm.vector3.subtract(hitPt, movePt);
|
|
742
|
+
return camera.update(startingCamera).moveBy(delta);
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
return camera;
|
|
746
|
+
});
|
|
747
|
+
}
|
|
697
748
|
/**
|
|
698
749
|
* Performs a pan operation of the scene's camera, and requests a new image
|
|
699
750
|
* for the updated scene.
|
|
@@ -701,7 +752,7 @@ class InteractionApi {
|
|
|
701
752
|
* @param delta A position delta `{x, y}` in the 2D coordinate space of the
|
|
702
753
|
* viewer.
|
|
703
754
|
*/
|
|
704
|
-
async
|
|
755
|
+
async panCameraByDelta(delta) {
|
|
705
756
|
return this.transformCamera(({ camera, viewport }) => {
|
|
706
757
|
const vv = camera.viewVector();
|
|
707
758
|
const u = bundle_esm.vector3.normalize(camera.up);
|
|
@@ -741,14 +792,12 @@ class InteractionApi {
|
|
|
741
792
|
});
|
|
742
793
|
}
|
|
743
794
|
async rotateCameraAtPoint(delta, point) {
|
|
744
|
-
|
|
745
|
-
const depthBuffer = await (frame === null || frame === void 0 ? void 0 : frame.depthBuffer());
|
|
746
|
-
return this.transformCamera(({ camera, viewport, boundingBox }) => {
|
|
795
|
+
return this.transformCamera(({ camera, viewport, boundingBox, depthBuffer }) => {
|
|
747
796
|
if (this.worldRotationPoint == null) {
|
|
748
797
|
const worldCenter = bundle_esm.boundingBox.center(boundingBox);
|
|
749
798
|
this.worldRotationPoint =
|
|
750
799
|
depthBuffer != null
|
|
751
|
-
? this.
|
|
800
|
+
? this.getWorldPoint(point, depthBuffer, worldCenter)
|
|
752
801
|
: camera.lookAt;
|
|
753
802
|
}
|
|
754
803
|
const upVector = bundle_esm.vector3.normalize(camera.up);
|
|
@@ -766,8 +815,8 @@ class InteractionApi {
|
|
|
766
815
|
const angle = Math.abs(epsilonX) + Math.abs(epsilonY);
|
|
767
816
|
const updated = camera.rotateAroundAxisAtPoint(angle, this.worldRotationPoint, rotationAxis);
|
|
768
817
|
return updated.update({
|
|
769
|
-
// Scale the lookAt point to the same length as the distance to the
|
|
770
|
-
// of the bounding box to maintain zoom and pan behavior.
|
|
818
|
+
// Scale the lookAt point to the same length as the distance to the
|
|
819
|
+
// center of the bounding box to maintain zoom and pan behavior.
|
|
771
820
|
lookAt: bundle_esm.vector3.add(bundle_esm.vector3.scale(camera.distanceToBoundingBoxCenter() /
|
|
772
821
|
bundle_esm.vector3.magnitude(updated.viewVector()), updated.viewVector()), updated.position),
|
|
773
822
|
});
|
|
@@ -780,21 +829,49 @@ class InteractionApi {
|
|
|
780
829
|
* @param delta The distance to zoom. Positive values zoom in and negative
|
|
781
830
|
* values zoom out.
|
|
782
831
|
*/
|
|
783
|
-
async zoomCamera(delta
|
|
832
|
+
async zoomCamera(delta) {
|
|
784
833
|
return this.transformCamera(({ camera, viewport }) => {
|
|
785
834
|
const vv = camera.viewVector();
|
|
786
835
|
const v = bundle_esm.vector3.normalize(vv);
|
|
787
|
-
const
|
|
788
|
-
normal: v,
|
|
789
|
-
});
|
|
790
|
-
const pt = ray != null ? bundle_esm.ray.intersectPlane(ray, vvPlane) : undefined;
|
|
791
|
-
const zv = pt != null ? bundle_esm.vector3.subtract(pt, camera.position) : vv;
|
|
792
|
-
const direction = bundle_esm.vector3.normalize(zv);
|
|
793
|
-
const distance = bundle_esm.vector3.magnitude(zv);
|
|
836
|
+
const distance = bundle_esm.vector3.magnitude(vv);
|
|
794
837
|
const epsilon = (3 * distance * delta) / viewport.height;
|
|
795
|
-
const position = bundle_esm.vector3.add(camera.position, bundle_esm.vector3.scale(epsilon,
|
|
796
|
-
const
|
|
797
|
-
return
|
|
838
|
+
const position = bundle_esm.vector3.add(camera.position, bundle_esm.vector3.scale(epsilon, v));
|
|
839
|
+
const newCamera = camera.update({ position });
|
|
840
|
+
return newCamera;
|
|
841
|
+
});
|
|
842
|
+
}
|
|
843
|
+
async zoomCameraToPoint(point, delta) {
|
|
844
|
+
return this.transformCamera(({ camera, viewport, frame, depthBuffer }) => {
|
|
845
|
+
const cam = frame.scene.camera;
|
|
846
|
+
const dir = cam.direction;
|
|
847
|
+
const frameCam = camera.toFrameCamera();
|
|
848
|
+
const ray = viewport.transformPointToRay(point, frame.image, frameCam);
|
|
849
|
+
if (this.zoomData == null) {
|
|
850
|
+
const fallbackPlane = bundle_esm.plane.fromNormalAndCoplanarPoint(dir, cam.lookAt);
|
|
851
|
+
const fallbackPt = bundle_esm.ray.intersectPlane(ray, fallbackPlane);
|
|
852
|
+
if (fallbackPt == null) {
|
|
853
|
+
console.warn('Cannot determine fallback point for zoom. Ray does not intersect plane.');
|
|
854
|
+
return camera;
|
|
855
|
+
}
|
|
856
|
+
const hitPt = depthBuffer != null
|
|
857
|
+
? this.getWorldPoint(point, depthBuffer, fallbackPt)
|
|
858
|
+
: fallbackPt;
|
|
859
|
+
const hitPlane = bundle_esm.plane.fromNormalAndCoplanarPoint(dir, hitPt);
|
|
860
|
+
this.zoomData = { hitPt, hitPlane };
|
|
861
|
+
}
|
|
862
|
+
if (this.zoomData != null) {
|
|
863
|
+
const { hitPt, hitPlane } = this.zoomData;
|
|
864
|
+
const distance = bundle_esm.vector3.distance(camera.position, hitPt);
|
|
865
|
+
const epsilon = (6 * distance * delta) / viewport.height;
|
|
866
|
+
const position = bundle_esm.ray.at(ray, epsilon);
|
|
867
|
+
const lookAt = bundle_esm.plane.projectPoint(hitPlane, position);
|
|
868
|
+
const newCamera = camera.update({ position, lookAt });
|
|
869
|
+
const newDistance = bundle_esm.vector3.distance(position, lookAt);
|
|
870
|
+
if (newDistance >= newCamera.near) {
|
|
871
|
+
return newCamera;
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
return camera;
|
|
798
875
|
});
|
|
799
876
|
}
|
|
800
877
|
/**
|
|
@@ -804,6 +881,8 @@ class InteractionApi {
|
|
|
804
881
|
if (this.isInteracting()) {
|
|
805
882
|
this.currentCamera = undefined;
|
|
806
883
|
this.worldRotationPoint = undefined;
|
|
884
|
+
this.panData = undefined;
|
|
885
|
+
this.zoomData = undefined;
|
|
807
886
|
this.resetLastAngle();
|
|
808
887
|
this.interactionFinishedEmitter.emit();
|
|
809
888
|
await this.stream.endInteraction();
|
|
@@ -851,7 +930,7 @@ class InteractionApi {
|
|
|
851
930
|
isCoarseInputDevice(isTouch) {
|
|
852
931
|
return isTouch || window.matchMedia('(pointer: coarse)').matches;
|
|
853
932
|
}
|
|
854
|
-
|
|
933
|
+
getWorldPoint(point, depthBuffer, fallbackPoint) {
|
|
855
934
|
const viewport = this.getViewport();
|
|
856
935
|
const framePt = viewport.transformPointToFrame(point, depthBuffer);
|
|
857
936
|
const hasDepth = depthBuffer.isDepthAtFarPlane(framePt);
|
|
@@ -1013,7 +1092,9 @@ class BaseInteractionHandler {
|
|
|
1013
1092
|
else if (event.buttons === 2) {
|
|
1014
1093
|
this.draggingInteraction = this.panInteraction;
|
|
1015
1094
|
}
|
|
1016
|
-
if (this.draggingInteraction != null &&
|
|
1095
|
+
if (this.draggingInteraction != null &&
|
|
1096
|
+
this.interactionApi != null &&
|
|
1097
|
+
this.element != null) {
|
|
1017
1098
|
// Ensure any scroll wheel interactions have been ended prior to beginning
|
|
1018
1099
|
// another interaction to prevent the interaction from being ended early.
|
|
1019
1100
|
this.zoomInteraction.endDrag(event, this.interactionApi);
|
|
@@ -1047,12 +1128,11 @@ class BaseInteractionHandler {
|
|
|
1047
1128
|
const delta = -this.wheelDeltaToPixels(event.deltaY, event.deltaMode) / 10;
|
|
1048
1129
|
const rect = this.element.getBoundingClientRect();
|
|
1049
1130
|
const point = dom.getMouseClientPosition(event, rect);
|
|
1050
|
-
const ray = this.interactionApi.getRayFromPoint(point);
|
|
1051
1131
|
SCROLL_WHEEL_DELTA_PERCENTAGES.forEach((percentage, index) => {
|
|
1052
1132
|
window.setTimeout(() => {
|
|
1053
1133
|
if (this.interactionApi != null) {
|
|
1054
1134
|
const zoomDelta = delta * percentage;
|
|
1055
|
-
this.zoomInteraction.
|
|
1135
|
+
this.zoomInteraction.zoomToPoint(point, zoomDelta, this.interactionApi);
|
|
1056
1136
|
}
|
|
1057
1137
|
}, index * 2);
|
|
1058
1138
|
});
|
|
@@ -1185,32 +1265,34 @@ class ZoomInteraction extends MouseInteraction {
|
|
|
1185
1265
|
}
|
|
1186
1266
|
beginDrag(event, canvasPosition, api, element) {
|
|
1187
1267
|
if (this.currentPosition == null) {
|
|
1188
|
-
this.currentPosition = bundle_esm.point.create(event.
|
|
1189
|
-
const rect = element
|
|
1268
|
+
this.currentPosition = bundle_esm.point.create(event.clientX, event.clientY);
|
|
1269
|
+
const rect = element.getBoundingClientRect();
|
|
1190
1270
|
const point = dom.getMouseClientPosition(event, rect);
|
|
1191
|
-
this.
|
|
1271
|
+
this.startPt = point;
|
|
1192
1272
|
api.beginInteraction();
|
|
1193
1273
|
}
|
|
1194
1274
|
}
|
|
1195
1275
|
drag(event, api) {
|
|
1196
1276
|
if (this.currentPosition != null) {
|
|
1197
|
-
const position = bundle_esm.point.create(event.
|
|
1277
|
+
const position = bundle_esm.point.create(event.clientX, event.clientY);
|
|
1198
1278
|
const delta = bundle_esm.point.subtract(position, this.currentPosition);
|
|
1199
|
-
|
|
1200
|
-
|
|
1279
|
+
if (this.startPt != null) {
|
|
1280
|
+
api.zoomCameraToPoint(this.startPt, delta.y);
|
|
1281
|
+
this.currentPosition = position;
|
|
1282
|
+
}
|
|
1201
1283
|
}
|
|
1202
1284
|
}
|
|
1203
1285
|
endDrag(event, api) {
|
|
1204
1286
|
super.endDrag(event, api);
|
|
1205
1287
|
this.stopInteractionTimer();
|
|
1206
1288
|
this.didTransformBegin = false;
|
|
1207
|
-
this.
|
|
1289
|
+
this.startPt = undefined;
|
|
1208
1290
|
}
|
|
1209
1291
|
zoom(delta, api) {
|
|
1210
1292
|
this.operateWithTimer(api, () => api.zoomCamera(delta));
|
|
1211
1293
|
}
|
|
1212
|
-
|
|
1213
|
-
this.operateWithTimer(api, () => api.
|
|
1294
|
+
zoomToPoint(pt, delta, api) {
|
|
1295
|
+
this.operateWithTimer(api, () => api.zoomCameraToPoint(pt, delta));
|
|
1214
1296
|
}
|
|
1215
1297
|
beginInteraction(api) {
|
|
1216
1298
|
this.didTransformBegin = true;
|
|
@@ -1249,17 +1331,17 @@ class PanInteraction extends MouseInteraction {
|
|
|
1249
1331
|
super(...arguments);
|
|
1250
1332
|
this.type = 'pan';
|
|
1251
1333
|
}
|
|
1252
|
-
beginDrag(event, canvasPosition, api) {
|
|
1334
|
+
beginDrag(event, canvasPosition, api, element) {
|
|
1253
1335
|
if (this.currentPosition == null) {
|
|
1254
1336
|
this.currentPosition = bundle_esm.point.create(event.screenX, event.screenY);
|
|
1337
|
+
this.canvasRect = element.getBoundingClientRect();
|
|
1255
1338
|
api.beginInteraction();
|
|
1256
1339
|
}
|
|
1257
1340
|
}
|
|
1258
1341
|
drag(event, api) {
|
|
1259
|
-
if (this.currentPosition != null) {
|
|
1260
|
-
const position =
|
|
1261
|
-
|
|
1262
|
-
api.panCamera(delta);
|
|
1342
|
+
if (this.currentPosition != null && this.canvasRect != null) {
|
|
1343
|
+
const position = dom.getMouseClientPosition(event, this.canvasRect);
|
|
1344
|
+
api.panCameraToScreenPoint(position);
|
|
1263
1345
|
this.currentPosition = position;
|
|
1264
1346
|
}
|
|
1265
1347
|
}
|
|
@@ -1311,7 +1393,7 @@ class MultiTouchInteractionHandler {
|
|
|
1311
1393
|
const angle = bundle_esm.angle.toDegrees(Math.atan2(bundle_esm.matrix2.determinant(previousToCurrent), bundle_esm.matrix2.dot(previousToCurrent)));
|
|
1312
1394
|
(_a = this.interactionApi) === null || _a === void 0 ? void 0 : _a.beginInteraction();
|
|
1313
1395
|
(_b = this.interactionApi) === null || _b === void 0 ? void 0 : _b.zoomCamera(zoom);
|
|
1314
|
-
(_c = this.interactionApi) === null || _c === void 0 ? void 0 : _c.
|
|
1396
|
+
(_c = this.interactionApi) === null || _c === void 0 ? void 0 : _c.panCameraByDelta(delta);
|
|
1315
1397
|
(_d = this.interactionApi) === null || _d === void 0 ? void 0 : _d.twistCamera(angle);
|
|
1316
1398
|
}
|
|
1317
1399
|
this.currentPosition1 = point1;
|
|
@@ -2064,6 +2146,7 @@ const Viewer = class {
|
|
|
2064
2146
|
this.tokenExpired = index.createEvent(this, "tokenExpired", 7);
|
|
2065
2147
|
this.connectionChange = index.createEvent(this, "connectionChange", 7);
|
|
2066
2148
|
this.sceneReady = index.createEvent(this, "sceneReady", 7);
|
|
2149
|
+
this.sceneChanged = index.createEvent(this, "sceneChanged", 7);
|
|
2067
2150
|
this.interactionStarted = index.createEvent(this, "interactionStarted", 7);
|
|
2068
2151
|
this.interactionFinished = index.createEvent(this, "interactionFinished", 7);
|
|
2069
2152
|
this.sessionidchange = index.createEvent(this, "sessionidchange", 7);
|
|
@@ -2465,6 +2548,12 @@ const Viewer = class {
|
|
|
2465
2548
|
this.urn = undefined;
|
|
2466
2549
|
this.stateMap.streamWorldOrientation = undefined;
|
|
2467
2550
|
}
|
|
2551
|
+
if (this.canvasElement != null) {
|
|
2552
|
+
const context = this.canvasElement.getContext('2d');
|
|
2553
|
+
if (context != null) {
|
|
2554
|
+
context.clearRect(0, 0, this.canvasElement.width, this.canvasElement.height);
|
|
2555
|
+
}
|
|
2556
|
+
}
|
|
2468
2557
|
}
|
|
2469
2558
|
/**
|
|
2470
2559
|
* Returns an object that is used to perform operations on the `Scene` that's
|
|
@@ -2527,7 +2616,8 @@ const Viewer = class {
|
|
|
2527
2616
|
this.streamId = streamId.hex;
|
|
2528
2617
|
}
|
|
2529
2618
|
// Need to parse world orientation.
|
|
2530
|
-
this.stateMap.streamWorldOrientation =
|
|
2619
|
+
this.stateMap.streamWorldOrientation =
|
|
2620
|
+
orientation.mapWorldOrientationOrThrow(worldOrientation);
|
|
2531
2621
|
console.debug(`Stream connected [stream-id=${this.streamId}, scene-view-id=${this.sceneViewId}]`);
|
|
2532
2622
|
await this.waitNextDrawnFrame(15 * 1000);
|
|
2533
2623
|
this.sceneReady.emit();
|
|
@@ -2688,6 +2778,9 @@ const Viewer = class {
|
|
|
2688
2778
|
viewport: viewport.Viewport.fromDimensions(this.getCanvasDimensions() || bundle_esm.dimensions.create(0, 0)),
|
|
2689
2779
|
};
|
|
2690
2780
|
this.frameReceived.emit(this.frame);
|
|
2781
|
+
if (this.frame.scene.hasChanged) {
|
|
2782
|
+
this.sceneChanged.emit();
|
|
2783
|
+
}
|
|
2691
2784
|
const drawnFrame = await this.canvasRenderer(data);
|
|
2692
2785
|
this.dispatchFrameDrawn(drawnFrame);
|
|
2693
2786
|
}
|
package/dist/cjs/viewer.cjs.js
CHANGED
|
@@ -68,5 +68,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
|
|
|
68
68
|
};
|
|
69
69
|
|
|
70
70
|
patchBrowser().then(options => {
|
|
71
|
-
return index.bootstrapLazy([["vertex-viewer-default-toolbar.cjs",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-scene-tree.cjs",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[16],"configEnv":[1,"config-env"],"controller":[1040],"metadataKeys":[16],"isComputingRowHeight":[32],"rows":[32],"totalRows":[32],"scrollTop":[32],"computedRowHeight":[32],"stateMap":[32],"connectionErrorDetails":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["vertex-viewer-
|
|
71
|
+
return index.bootstrapLazy([["vertex-viewer-default-toolbar.cjs",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-scene-tree.cjs",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[16],"configEnv":[1,"config-env"],"controller":[1040],"metadataKeys":[16],"isComputingRowHeight":[32],"rows":[32],"totalRows":[32],"scrollTop":[32],"computedRowHeight":[32],"stateMap":[32],"connectionErrorDetails":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["vertex-viewer-markup.cjs",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[0,"markupEditCancel","handleMarkupEditCancel"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["vertex-viewer-markup-tool.cjs",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32]}]]],["vertex-viewer-measurement-tool.cjs",[[1,"vertex-viewer-measurement-tool",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"isMeasuring":[1540,"is-measuring"],"snapDistance":[2,"snap-distance"],"stateMap":[32]}]]],["vertex-viewer-view-cube.cjs",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["vertex-viewer-measurements.cjs",[[1,"vertex-viewer-measurements",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"selectedMeasurementId":[1025,"selected-measurement-id"],"snapDistance":[2,"snap-distance"],"addMeasurement":[64],"removeMeasurement":[64],"getMeasurementElement":[64],"getMeasurementElements":[64]},[[0,"measureEnd","handleMeasureEnd"],[1,"pointerdown","handleMeasurementPointerDown"]]]]],["vertex-scene-tree-row.cjs",[[1,"vertex-scene-tree-row",{"node":[16],"tree":[16],"interactionsDisabled":[4,"interactions-disabled"],"recurseParentSelectionDisabled":[4,"recurse-parent-selection-disabled"]}]]],["vertex-scene-tree-toolbar-group.cjs",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer.cjs",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"sessionId":[1,"session-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"featureLines":[16],"selectionMaterial":[1,"selection-material"],"frame":[1040],"streamAttributes":[1040],"stream":[1040],"stencilBuffer":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"registerCommand":[64],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget":[64],"addCursor":[64],"getInteractionHandlers":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64],"handleWebSocketClose":[64]},[[0,"tap","handleTapEvent"]]]]],["vertex-scene-tree-search_2.cjs",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"value":[1025],"focused":[32],"setFocus":[64]}],[1,"vertex-scene-tree-toolbar"]]],["vertex-viewer-button_3.cjs",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-dom-element_3.cjs",[[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}],[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}],[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]]]],["vertex-viewer-icon.cjs",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-viewer-layer.cjs",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-measurement-distance_2.cjs",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"distance":[1026],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"depthBuffer":[16],"viewer":[16],"line":[32],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"internalDepthBuffer":[32],"invalidateStateCounter":[32],"interactiveStartPoint":[32],"interactiveEndPoint":[32],"stateMap":[32],"computeElementMetrics":[64]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]],["vertex-viewer-markup-arrow_3.cjs",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"editAnchor":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"startPosition":[32],"editAnchor":[32],"resizeBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"resizeStartPosition":[32],"editAnchor":[32],"resizeBounds":[32],"resizePoints":[32],"screenPoints":[32],"dispose":[64]}]]]], options);
|
|
72
72
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
const bundle_esm = require('./bundle.esm-
|
|
6
|
+
const bundle_esm = require('./bundle.esm-b79513ef.js');
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* A `Viewport` represents the drawing area in the viewer.
|
|
@@ -104,12 +104,36 @@ class Viewport {
|
|
|
104
104
|
* @returns
|
|
105
105
|
*/
|
|
106
106
|
transformPointToRay(pt, image, camera) {
|
|
107
|
-
const
|
|
108
|
-
const
|
|
109
|
-
const
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
107
|
+
const ndc = this.transformScreenPointToNdc(pt, image);
|
|
108
|
+
const origin = bundle_esm.vector3.fromMatrixPosition(camera.worldMatrix);
|
|
109
|
+
const world = bundle_esm.vector3.transformNdcToWorldSpace(bundle_esm.vector3.create(ndc.x, ndc.y, 0.5), camera.worldMatrix, camera.projectionMatrixInverse);
|
|
110
|
+
const direction = bundle_esm.vector3.normalize(bundle_esm.vector3.subtract(world, origin));
|
|
111
|
+
return bundle_esm.ray.create({ origin, direction });
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Maps a screen point to normalized device coordinates (NDC). A screen point
|
|
115
|
+
* at 0,0 represents the top-left of the viewport.
|
|
116
|
+
*
|
|
117
|
+
* @param screenPt A screen point.
|
|
118
|
+
*/
|
|
119
|
+
transformScreenPointToNdc(screenPt, image) {
|
|
120
|
+
const framePt = this.transformPointToFrame(screenPt, image);
|
|
121
|
+
return bundle_esm.point.create((framePt.x / image.frameDimensions.width) * 2 - 1, -(framePt.y / image.frameDimensions.height) * 2 + 1);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Maps a point in screen space to a world point that is coplanar with the
|
|
125
|
+
* camera's near plane.
|
|
126
|
+
*
|
|
127
|
+
* @param screenPt The screen point to transform.
|
|
128
|
+
* @param image An image of frame.
|
|
129
|
+
* @param camera The camera used to map a 2D point to 3D point.
|
|
130
|
+
* @returns A point on the screen in world space.
|
|
131
|
+
*/
|
|
132
|
+
transformPointToScreenWorld(screenPt, image, camera) {
|
|
133
|
+
const { direction, near } = camera;
|
|
134
|
+
const ray = this.transformPointToRay(screenPt, image, camera);
|
|
135
|
+
const screen = bundle_esm.plane.create({ normal: direction, constant: near });
|
|
136
|
+
return bundle_esm.ray.intersectPlane(ray, screen);
|
|
113
137
|
}
|
|
114
138
|
/**
|
|
115
139
|
* Computes a rectangle that is scaled correctly to be drawn within the
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"./components/viewer-markup-tool/viewer-markup-tool.js",
|
|
10
10
|
"./components/viewer-markup-arrow/viewer-markup-arrow.js",
|
|
11
11
|
"./components/viewer-markup-circle/viewer-markup-circle.js",
|
|
12
|
+
"./components/viewer-markup-freeform.tsx/viewer-markup-freeform.js",
|
|
12
13
|
"./components/viewer-measurement-distance/viewer-measurement-distance.js",
|
|
13
14
|
"./components/viewer-measurement-tool/viewer-measurement-tool.js",
|
|
14
15
|
"./components/scene-tree-row/scene-tree-row.js",
|
|
@@ -416,7 +416,8 @@ export class SceneTree {
|
|
|
416
416
|
(_a = this.stateMap.viewerDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
417
417
|
}
|
|
418
418
|
if (newViewer != null) {
|
|
419
|
-
this.stateMap.viewerDisposable =
|
|
419
|
+
this.stateMap.viewerDisposable =
|
|
420
|
+
(_b = this.controller) === null || _b === void 0 ? void 0 : _b.connectToViewer(newViewer);
|
|
420
421
|
}
|
|
421
422
|
}
|
|
422
423
|
/**
|
|
@@ -1420,4 +1421,4 @@ export class SceneTree {
|
|
|
1420
1421
|
"passive": false
|
|
1421
1422
|
}]; }
|
|
1422
1423
|
}
|
|
1423
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUtdHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NjZW5lLXRyZWUvc2NlbmUtdHJlZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUVMLFdBQVcsRUFDWCxDQUFDLEVBQ0QsSUFBSSxFQUNKLE1BQU0sRUFDTixNQUFNLEVBQ04sSUFBSSxFQUNKLEtBQUssRUFDTCxLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFHN0csT0FBTyxFQUFFLFdBQVcsRUFBa0IsTUFBTSxXQUFXLENBQUM7QUFDeEQsT0FBTyxFQUVMLG1CQUFtQixHQUVwQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBVSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQixXQUFXLEdBQ1osTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUNMLFlBQVksRUFDWixRQUFRLEVBQ1IsVUFBVSxFQUVWLFFBQVEsR0FDVCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFDTCw0QkFBNEIsR0FFN0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUtoRTs7OztHQUlHO0FBQ0gsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUE0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QztLQUNyRDtFQUNILENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FDRiJ9
|
|
1424
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUtdHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NjZW5lLXRyZWUvc2NlbmUtdHJlZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUVMLFdBQVcsRUFDWCxDQUFDLEVBQ0QsSUFBSSxFQUNKLE1BQU0sRUFDTixNQUFNLEVBQ04sSUFBSSxFQUNKLEtBQUssRUFDTCxLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFHN0csT0FBTyxFQUFFLFdBQVcsRUFBa0IsTUFBTSxXQUFXLENBQUM7QUFDeEQsT0FBTyxFQUVMLG1CQUFtQixHQUVwQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBVSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQixXQUFXLEdBQ1osTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUNMLFlBQVksRUFDWixRQUFRLEVBQ1IsVUFBVSxFQUVWLFFBQVEsR0FDVCxNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFDTCw0QkFBNEIsR0FFN0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUtoRTs7OztHQUlHO0FBQ0gsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUE0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QUM7S0FDckQ7RUFDSCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBQ0YifQ==
|