@vertexvis/viewer 0.23.6-canary.9 → 0.23.6-testing.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/index-4ebe6acf.js +138 -1
- package/dist/cjs/vertex-viewer.cjs.entry.js +89 -15
- package/dist/cjs/vertex-viewer.cjs.entry.js.map +1 -1
- package/dist/collection/lib/interactions/interactionApi.js +66 -8
- package/dist/collection/lib/interactions/interactionApi.js.map +1 -1
- package/dist/collection/lib/interactions/interactionApiOrthographic.js +23 -7
- package/dist/collection/lib/interactions/interactionApiOrthographic.js.map +1 -1
- package/dist/components/vertex-viewer.js +90 -16
- package/dist/components/vertex-viewer.js.map +1 -1
- package/dist/esm/index-fef00dee.js +138 -1
- package/dist/esm/vertex-viewer.entry.js +90 -16
- package/dist/esm/vertex-viewer.entry.js.map +1 -1
- package/dist/viewer/p-d2ddc770.entry.js +5 -0
- package/dist/viewer/p-d2ddc770.entry.js.map +1 -0
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +7 -7
- package/dist/viewer/p-7e808b58.entry.js +0 -5
- package/dist/viewer/p-7e808b58.entry.js.map +0 -1
|
@@ -1786,7 +1786,144 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
|
|
|
1786
1786
|
if (module) {
|
|
1787
1787
|
return module[exportName];
|
|
1788
1788
|
}
|
|
1789
|
-
|
|
1789
|
+
|
|
1790
|
+
if (!hmrVersionId || !BUILD.hotModuleReplacement) {
|
|
1791
|
+
const processMod = importedModule => {
|
|
1792
|
+
cmpModules.set(bundleId, importedModule);
|
|
1793
|
+
return importedModule[exportName];
|
|
1794
|
+
}
|
|
1795
|
+
switch(bundleId) {
|
|
1796
|
+
|
|
1797
|
+
case 'vertex-scene-tree.cjs':
|
|
1798
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1799
|
+
/* webpackMode: "lazy" */
|
|
1800
|
+
'./vertex-scene-tree.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1801
|
+
case 'vertex-scene-tree-table-cell.cjs':
|
|
1802
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1803
|
+
/* webpackMode: "lazy" */
|
|
1804
|
+
'./vertex-scene-tree-table-cell.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1805
|
+
case 'vertex-scene-tree-table-column.cjs':
|
|
1806
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1807
|
+
/* webpackMode: "lazy" */
|
|
1808
|
+
'./vertex-scene-tree-table-column.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1809
|
+
case 'vertex-scene-tree-table-header.cjs':
|
|
1810
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1811
|
+
/* webpackMode: "lazy" */
|
|
1812
|
+
'./vertex-scene-tree-table-header.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1813
|
+
case 'vertex-scene-tree-table-resize-divider.cjs':
|
|
1814
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1815
|
+
/* webpackMode: "lazy" */
|
|
1816
|
+
'./vertex-scene-tree-table-resize-divider.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1817
|
+
case 'vertex-scene-tree-toolbar-group.cjs':
|
|
1818
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1819
|
+
/* webpackMode: "lazy" */
|
|
1820
|
+
'./vertex-scene-tree-toolbar-group.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1821
|
+
case 'vertex-viewer.cjs':
|
|
1822
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1823
|
+
/* webpackMode: "lazy" */
|
|
1824
|
+
'./vertex-viewer.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1825
|
+
case 'vertex-viewer-annotation-callout.cjs':
|
|
1826
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1827
|
+
/* webpackMode: "lazy" */
|
|
1828
|
+
'./vertex-viewer-annotation-callout.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1829
|
+
case 'vertex-viewer-box-query-tool.cjs':
|
|
1830
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1831
|
+
/* webpackMode: "lazy" */
|
|
1832
|
+
'./vertex-viewer-box-query-tool.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1833
|
+
case 'vertex-viewer-default-toolbar.cjs':
|
|
1834
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1835
|
+
/* webpackMode: "lazy" */
|
|
1836
|
+
'./vertex-viewer-default-toolbar.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1837
|
+
case 'vertex-viewer-hit-result-indicator.cjs':
|
|
1838
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1839
|
+
/* webpackMode: "lazy" */
|
|
1840
|
+
'./vertex-viewer-hit-result-indicator.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1841
|
+
case 'vertex-viewer-markup.cjs':
|
|
1842
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1843
|
+
/* webpackMode: "lazy" */
|
|
1844
|
+
'./vertex-viewer-markup.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1845
|
+
case 'vertex-viewer-markup-tool.cjs':
|
|
1846
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1847
|
+
/* webpackMode: "lazy" */
|
|
1848
|
+
'./vertex-viewer-markup-tool.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1849
|
+
case 'vertex-viewer-measurement-details.cjs':
|
|
1850
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1851
|
+
/* webpackMode: "lazy" */
|
|
1852
|
+
'./vertex-viewer-measurement-details.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1853
|
+
case 'vertex-viewer-measurement-distance.cjs':
|
|
1854
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1855
|
+
/* webpackMode: "lazy" */
|
|
1856
|
+
'./vertex-viewer-measurement-distance.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1857
|
+
case 'vertex-viewer-measurement-precise.cjs':
|
|
1858
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1859
|
+
/* webpackMode: "lazy" */
|
|
1860
|
+
'./vertex-viewer-measurement-precise.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1861
|
+
case 'vertex-viewer-pin-tool.cjs':
|
|
1862
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1863
|
+
/* webpackMode: "lazy" */
|
|
1864
|
+
'./vertex-viewer-pin-tool.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1865
|
+
case 'vertex-viewer-transform-widget.cjs':
|
|
1866
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1867
|
+
/* webpackMode: "lazy" */
|
|
1868
|
+
'./vertex-viewer-transform-widget.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1869
|
+
case 'vertex-viewer-view-cube.cjs':
|
|
1870
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1871
|
+
/* webpackMode: "lazy" */
|
|
1872
|
+
'./vertex-viewer-view-cube.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1873
|
+
case 'vertex-viewer-walk-mode-tool.cjs':
|
|
1874
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1875
|
+
/* webpackMode: "lazy" */
|
|
1876
|
+
'./vertex-viewer-walk-mode-tool.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1877
|
+
case 'vertex-scene-tree-notification-banner_4.cjs':
|
|
1878
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1879
|
+
/* webpackMode: "lazy" */
|
|
1880
|
+
'./vertex-scene-tree-notification-banner_4.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1881
|
+
case 'vertex-viewer-button_3.cjs':
|
|
1882
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1883
|
+
/* webpackMode: "lazy" */
|
|
1884
|
+
'./vertex-viewer-button_3.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1885
|
+
case 'vertex-viewer-dom-group.cjs':
|
|
1886
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1887
|
+
/* webpackMode: "lazy" */
|
|
1888
|
+
'./vertex-viewer-dom-group.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1889
|
+
case 'vertex-viewer-pin-group.cjs':
|
|
1890
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1891
|
+
/* webpackMode: "lazy" */
|
|
1892
|
+
'./vertex-viewer-pin-group.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1893
|
+
case 'vertex-viewer-teleport-tool.cjs':
|
|
1894
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1895
|
+
/* webpackMode: "lazy" */
|
|
1896
|
+
'./vertex-viewer-teleport-tool.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1897
|
+
case 'vertex-viewer-dom-element_2.cjs':
|
|
1898
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1899
|
+
/* webpackMode: "lazy" */
|
|
1900
|
+
'./vertex-viewer-dom-element_2.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1901
|
+
case 'vertex-viewer-markup-arrow_3.cjs':
|
|
1902
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1903
|
+
/* webpackMode: "lazy" */
|
|
1904
|
+
'./vertex-viewer-markup-arrow_3.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1905
|
+
case 'vertex-viewer-measurement-line_2.cjs':
|
|
1906
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1907
|
+
/* webpackMode: "lazy" */
|
|
1908
|
+
'./vertex-viewer-measurement-line_2.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1909
|
+
case 'vertex-viewer-pin-label_2.cjs':
|
|
1910
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1911
|
+
/* webpackMode: "lazy" */
|
|
1912
|
+
'./vertex-viewer-pin-label_2.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1913
|
+
case 'vertex-viewer-spinner.cjs':
|
|
1914
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1915
|
+
/* webpackMode: "lazy" */
|
|
1916
|
+
'./vertex-viewer-spinner.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1917
|
+
case 'vertex-viewer-layer.cjs':
|
|
1918
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1919
|
+
/* webpackMode: "lazy" */
|
|
1920
|
+
'./vertex-viewer-layer.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1921
|
+
case 'vertex-viewer-icon.cjs':
|
|
1922
|
+
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1923
|
+
/* webpackMode: "lazy" */
|
|
1924
|
+
'./vertex-viewer-icon.cjs.entry.js')); }).then(processMod, consoleError);
|
|
1925
|
+
}
|
|
1926
|
+
}
|
|
1790
1927
|
return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
|
|
1791
1928
|
/* @vite-ignore */
|
|
1792
1929
|
/* webpackInclude: /\.entry\.js$/ */
|
|
@@ -758,14 +758,72 @@ class InteractionApi {
|
|
|
758
758
|
* values zoom out.
|
|
759
759
|
*/
|
|
760
760
|
async zoomCamera(delta) {
|
|
761
|
-
return this.transformCamera(({ camera, viewport }) => {
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
761
|
+
return this.transformCamera(({ camera, viewport, frame, boundingBox }) => {
|
|
762
|
+
if (viewport != null && frame != null) {
|
|
763
|
+
const isPerspective = camera === null || camera === void 0 ? void 0 : camera.toFrameCamera().isPerspective();
|
|
764
|
+
if (isPerspective) {
|
|
765
|
+
const vv = camera.viewVector;
|
|
766
|
+
// Calculate the unit-less scalar determining the amount to zoom. The delta parameter
|
|
767
|
+
// is scaled by the viewport height because if the viewport is larger, then the
|
|
768
|
+
// user should have to perform a bigger action to zoom the model the same amount.
|
|
769
|
+
// Note that delta and viewport.height both have units of pixels. Further, the
|
|
770
|
+
// 3 multiplier was chosen to match the desired zoom speed.
|
|
771
|
+
const distance = bundle_esm.vector3.magnitude(vv);
|
|
772
|
+
const relativeDeltaToViewportHeight = 3 * distance * (delta / viewport.height);
|
|
773
|
+
// Scale the current viewVector by the scalar calculated above to determine how to adjust the camera position
|
|
774
|
+
const v = bundle_esm.vector3.normalize(vv);
|
|
775
|
+
const positionChange = bundle_esm.vector3.scale(relativeDeltaToViewportHeight, v);
|
|
776
|
+
// Calculate the new camera position
|
|
777
|
+
const position = bundle_esm.vector3.add(camera.position, positionChange);
|
|
778
|
+
// Update the camera with the new position
|
|
779
|
+
const newCamera = camera.update({ position });
|
|
780
|
+
return newCamera;
|
|
781
|
+
}
|
|
782
|
+
else {
|
|
783
|
+
// Retrieve properties of the current camera
|
|
784
|
+
const orthographicCamera = camera;
|
|
785
|
+
const frameCam = camera.toFrameCamera();
|
|
786
|
+
const dir = frameCam.direction;
|
|
787
|
+
const ray = viewport.transformPointToRay(viewport.center, frame.image, frameCam);
|
|
788
|
+
// Calculate the unit-less scalar determining the amount to zoom. The delta parameter
|
|
789
|
+
// is scaled by the viewport height because if the viewport is larger, then the
|
|
790
|
+
// user should have to perform a bigger action to zoom the model the same amount.
|
|
791
|
+
// Note that delta and viewport.height both have units of pixels. Further, the
|
|
792
|
+
// 4 multiplier was chosen to match the desired zoom speed.
|
|
793
|
+
const relativeDeltaToViewportHeight = 4 * (delta / viewport.height);
|
|
794
|
+
// Calculate the fovHeight after performing the zoom. zoomedFovHeight has the
|
|
795
|
+
// same units of camera.fovHeight (the world units). The new fovHeight
|
|
796
|
+
// has a minimum value, which is a function of the size of the bounding box,
|
|
797
|
+
// which ensures the new fovHeight is a positive, non-zero number.
|
|
798
|
+
const minimumFovHeight = bundle_esm.vector3.magnitude(bundle_esm.boundingBox.diagonal(boundingBox)) * 1e-5;
|
|
799
|
+
const zoomedFovHeight = Math.max(minimumFovHeight, orthographicCamera.fovHeight * (1 - relativeDeltaToViewportHeight));
|
|
800
|
+
// Calculate the plane and point to zoom relative to
|
|
801
|
+
const planeToZoomRelativeTo = bundle_esm.plane.fromNormalAndCoplanarPoint(dir, frameCam.lookAt);
|
|
802
|
+
const pointToZoomRelativeTo = bundle_esm.ray.intersectPlane(ray, planeToZoomRelativeTo);
|
|
803
|
+
if (pointToZoomRelativeTo != null) {
|
|
804
|
+
// Project the current look at point onto the zoom plane
|
|
805
|
+
const projectedLookAt = bundle_esm.plane.projectPoint(planeToZoomRelativeTo, orthographicCamera.lookAt);
|
|
806
|
+
// Calculate the vector to determine how to adjust the camera's look at point.
|
|
807
|
+
// Ensure that the viewVector is scaled to the expected length in order to
|
|
808
|
+
// ensure other camera calculations are correct, for example, the occlusion
|
|
809
|
+
// calculations for pins.
|
|
810
|
+
const fovHeightRelativeChange = (orthographicCamera.fovHeight - zoomedFovHeight) /
|
|
811
|
+
orthographicCamera.fovHeight;
|
|
812
|
+
const lookAtChangeVector = bundle_esm.vector3.scale(fovHeightRelativeChange, bundle_esm.vector3.subtract(pointToZoomRelativeTo, projectedLookAt));
|
|
813
|
+
// Calculate the camera's new look at point
|
|
814
|
+
const updatedLookAt = bundle_esm.vector3.add(orthographicCamera.lookAt, lookAtChangeVector);
|
|
815
|
+
// Update the orthographic camera
|
|
816
|
+
// Note rotationPoint should match lookAt after a zoom interaction
|
|
817
|
+
const newCamera = camera.update({
|
|
818
|
+
lookAt: updatedLookAt,
|
|
819
|
+
rotationPoint: updatedLookAt,
|
|
820
|
+
fovHeight: zoomedFovHeight,
|
|
821
|
+
});
|
|
822
|
+
return newCamera;
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
return camera;
|
|
769
827
|
});
|
|
770
828
|
}
|
|
771
829
|
/**
|
|
@@ -979,17 +1037,33 @@ class InteractionApiOrthographic extends InteractionApi {
|
|
|
979
1037
|
}
|
|
980
1038
|
if (this.orthographicZoomData != null) {
|
|
981
1039
|
const { hitPt, hitPlane } = this.orthographicZoomData;
|
|
982
|
-
//
|
|
983
|
-
|
|
984
|
-
|
|
1040
|
+
// Calculate the unit-less scalar determining the amount to zoom. The delta parameter
|
|
1041
|
+
// is scaled by the viewport height because if the viewport is larger, then the
|
|
1042
|
+
// user should have to perform a bigger action to zoom the model the same amount.
|
|
1043
|
+
// Note that delta and viewport.height both have units of pixels. Further, the
|
|
1044
|
+
// 4 multiplier was chosen to match the desired zoom speed.
|
|
1045
|
+
const relativeDeltaToViewportHeight = 4 * (delta / viewport.height);
|
|
1046
|
+
// Calculate the fovHeight after performing the zoom. zoomedFovHeight has the
|
|
1047
|
+
// same units of camera.fovHeight (the world units). The new fovHeight
|
|
1048
|
+
// has a minimum value, which is a function of the size of the bounding box,
|
|
1049
|
+
// which ensures the new fovHeight is a positive, non-zero number.
|
|
1050
|
+
const minimumFovHeight = bundle_esm.vector3.magnitude(bundle_esm.boundingBox.diagonal(boundingBox)) * 1e-5;
|
|
1051
|
+
const zoomedFovHeight = Math.max(minimumFovHeight, camera.fovHeight * (1 - relativeDeltaToViewportHeight));
|
|
1052
|
+
// Calculate the vector to determine how to adjust the camera's look at point.
|
|
1053
|
+
// Ensure that the viewVector is scaled to the expected length in order to
|
|
1054
|
+
// ensure other camera calculations are correct, for example, the occlusion
|
|
1055
|
+
// calculations for pins.
|
|
985
1056
|
const projectedLookAt = bundle_esm.plane.projectPoint(hitPlane, camera.lookAt);
|
|
986
|
-
const
|
|
987
|
-
|
|
988
|
-
|
|
1057
|
+
const fovHeightRelativeChange = (camera.fovHeight - zoomedFovHeight) / camera.fovHeight;
|
|
1058
|
+
const lookAtChangeVector = bundle_esm.vector3.scale(fovHeightRelativeChange, bundle_esm.vector3.subtract(hitPt, projectedLookAt));
|
|
1059
|
+
// Calculate the camera's new look at point
|
|
1060
|
+
const updatedLookAt = bundle_esm.vector3.add(camera.lookAt, lookAtChangeVector);
|
|
1061
|
+
// Return the updated camera
|
|
1062
|
+
// Note rotationPoint should match lookAt after a zoom interaction
|
|
989
1063
|
return camera.update({
|
|
990
1064
|
lookAt: updatedLookAt,
|
|
991
1065
|
rotationPoint: updatedLookAt,
|
|
992
|
-
fovHeight:
|
|
1066
|
+
fovHeight: zoomedFovHeight,
|
|
993
1067
|
});
|
|
994
1068
|
}
|
|
995
1069
|
return camera;
|