vim-web 0.3.44-dev.6 → 0.3.44-dev.60
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/README.md +2 -2
- package/dist/style.css +25 -9
- package/dist/types/core-viewers/index.d.ts +3 -0
- package/dist/types/core-viewers/{webgl/viewer/inputs/inputHandler.d.ts → shared/baseInputHandler.d.ts} +6 -6
- package/dist/types/core-viewers/shared/index.d.ts +9 -0
- package/dist/types/core-viewers/shared/inputHandler.d.ts +116 -0
- package/dist/types/core-viewers/shared/keyboardHandler.d.ts +96 -0
- package/dist/types/core-viewers/shared/mouseHandler.d.ts +26 -0
- package/dist/types/core-viewers/shared/raycaster.d.ts +13 -0
- package/dist/types/core-viewers/shared/selection.d.ts +45 -0
- package/dist/types/core-viewers/{webgl/viewer/inputs → shared}/touchHandler.d.ts +15 -18
- package/dist/types/core-viewers/shared/vim.d.ts +35 -0
- package/dist/types/core-viewers/ultra/{viewer/camera.d.ts → camera.d.ts} +14 -4
- package/dist/types/core-viewers/ultra/{viewer/colorManager.d.ts → colorManager.d.ts} +6 -6
- package/dist/types/core-viewers/ultra/{viewer/decoder.d.ts → decoder.d.ts} +0 -8
- package/dist/types/core-viewers/ultra/element3d.d.ts +15 -0
- package/dist/types/core-viewers/ultra/index.d.ts +28 -8
- package/dist/types/core-viewers/ultra/inputAdapter.d.ts +5 -0
- package/dist/types/core-viewers/ultra/nodeState.d.ts +113 -0
- package/dist/types/core-viewers/ultra/raycaster.d.ts +52 -0
- package/dist/types/core-viewers/ultra/{viewer/color.d.ts → remoteColor.d.ts} +3 -3
- package/dist/types/core-viewers/ultra/{viewer/renderer.d.ts → renderer.d.ts} +9 -3
- package/dist/types/core-viewers/ultra/{viewer/rpcClient.d.ts → rpcClient.d.ts} +27 -28
- package/dist/types/core-viewers/ultra/rpcMarshal.d.ts +62 -0
- package/dist/types/core-viewers/ultra/{viewer/rpcSafeClient.d.ts → rpcSafeClient.d.ts} +22 -23
- package/dist/types/core-viewers/ultra/{utils/math3d.d.ts → rpcTypes.d.ts} +22 -22
- package/dist/types/core-viewers/ultra/{viewer/sectionBox.d.ts → sectionBox.d.ts} +7 -2
- package/dist/types/core-viewers/ultra/selection.d.ts +4 -0
- package/dist/types/core-viewers/ultra/{viewer/socketClient.d.ts → socketClient.d.ts} +4 -11
- package/dist/types/core-viewers/ultra/{viewer/viewer.d.ts → viewer.d.ts} +16 -13
- package/dist/types/core-viewers/ultra/vim.d.ts +48 -0
- package/dist/types/core-viewers/webgl/index.d.ts +2 -21
- package/dist/types/core-viewers/webgl/loader/{colorAttributes.d.ts → colorAttribute.d.ts} +4 -4
- package/dist/types/core-viewers/webgl/loader/{object3D.d.ts → element3d.d.ts} +12 -9
- package/dist/types/core-viewers/webgl/loader/geometry.d.ts +76 -78
- package/dist/types/core-viewers/webgl/loader/index.d.ts +24 -0
- package/dist/types/core-viewers/webgl/loader/materials/index.d.ts +9 -0
- package/dist/types/core-viewers/webgl/loader/materials/{viewerMaterials.d.ts → materials.d.ts} +5 -5
- package/dist/types/core-viewers/webgl/loader/mesh.d.ts +7 -7
- package/dist/types/core-viewers/webgl/loader/progressive/insertableGeometry.d.ts +2 -2
- package/dist/types/core-viewers/webgl/loader/progressive/insertableMesh.d.ts +1 -1
- package/dist/types/core-viewers/webgl/loader/progressive/insertableSubmesh.d.ts +1 -1
- package/dist/types/core-viewers/webgl/loader/progressive/instancedMesh.d.ts +1 -1
- package/dist/types/core-viewers/webgl/loader/progressive/instancedSubmesh.d.ts +1 -1
- package/dist/types/core-viewers/webgl/loader/progressive/legacyMeshFactory.d.ts +2 -2
- package/dist/types/core-viewers/webgl/loader/progressive/subsetBuilder.d.ts +2 -2
- package/dist/types/core-viewers/webgl/loader/progressive/subsetRequest.d.ts +2 -2
- package/dist/types/core-viewers/webgl/loader/progressive/vimRequest.d.ts +3 -3
- package/dist/types/core-viewers/webgl/loader/scene.d.ts +11 -14
- package/dist/types/core-viewers/webgl/loader/vim.d.ts +15 -19
- package/dist/types/core-viewers/webgl/loader/vimSettings.d.ts +2 -2
- package/dist/types/core-viewers/webgl/loader/{objectAttributes.d.ts → webglAttribute.d.ts} +4 -4
- package/dist/types/core-viewers/webgl/viewer/camera/camera.d.ts +8 -113
- package/dist/types/core-viewers/webgl/viewer/camera/{ICamera.d.ts → cameraInterface.d.ts} +0 -4
- package/dist/types/core-viewers/webgl/viewer/camera/cameraMovement.d.ts +5 -5
- package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementLerp.d.ts +2 -2
- package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementSnap.d.ts +2 -2
- package/dist/types/core-viewers/webgl/viewer/camera/{orthographic.d.ts → cameraOrthographic.d.ts} +1 -1
- package/dist/types/core-viewers/webgl/viewer/camera/{perspective.d.ts → cameraPerspective.d.ts} +1 -1
- package/dist/types/core-viewers/webgl/viewer/camera/index.d.ts +7 -0
- package/dist/types/core-viewers/webgl/viewer/environment/environment.d.ts +5 -5
- package/dist/types/core-viewers/webgl/viewer/environment/index.d.ts +3 -0
- package/dist/types/core-viewers/webgl/viewer/environment/{cameraLight.d.ts → light.d.ts} +2 -2
- package/dist/types/core-viewers/webgl/viewer/environment/skybox.d.ts +3 -3
- package/dist/types/core-viewers/webgl/viewer/gizmos/axes/axesSettings.d.ts +3 -2
- package/dist/types/core-viewers/webgl/viewer/gizmos/axes/gizmoAxes.d.ts +1 -1
- package/dist/types/core-viewers/webgl/viewer/gizmos/axes/index.d.ts +3 -0
- package/dist/types/core-viewers/webgl/viewer/gizmos/gizmoOrbit.d.ts +2 -2
- package/dist/types/core-viewers/webgl/viewer/gizmos/gizmos.d.ts +0 -5
- package/dist/types/core-viewers/webgl/viewer/gizmos/index.d.ts +7 -0
- package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarker.d.ts +63 -15
- package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarkers.d.ts +30 -7
- package/dist/types/core-viewers/webgl/viewer/gizmos/markers/index.d.ts +2 -0
- package/dist/types/core-viewers/webgl/viewer/gizmos/measure/index.d.ts +3 -0
- package/dist/types/core-viewers/webgl/viewer/gizmos/measure/measure.d.ts +10 -16
- package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/index.d.ts +7 -0
- package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBox.d.ts +4 -5
- package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxGizmo.d.ts +1 -1
- package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandle.d.ts +6 -4
- package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandles.d.ts +1 -1
- package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxInputs.d.ts +3 -40
- package/dist/types/core-viewers/webgl/viewer/index.d.ts +10 -0
- package/dist/types/core-viewers/webgl/viewer/inputsAdapter.d.ts +3 -0
- package/dist/types/core-viewers/webgl/viewer/raycaster.d.ts +37 -57
- package/dist/types/core-viewers/webgl/viewer/rendering/index.d.ts +4 -0
- package/dist/types/core-viewers/webgl/viewer/rendering/mergePass.d.ts +2 -2
- package/dist/types/core-viewers/webgl/viewer/rendering/renderScene.d.ts +8 -8
- package/dist/types/core-viewers/webgl/viewer/rendering/renderer.d.ts +9 -6
- package/dist/types/core-viewers/webgl/viewer/rendering/renderingComposer.d.ts +2 -2
- package/dist/types/core-viewers/webgl/viewer/rendering/renderingSection.d.ts +2 -2
- package/dist/types/core-viewers/webgl/viewer/selection.d.ts +6 -89
- package/dist/types/core-viewers/webgl/viewer/settings/index.d.ts +3 -0
- package/dist/types/core-viewers/webgl/viewer/settings/{defaultViewerSettings.d.ts → viewerDefaultSettings.d.ts} +1 -1
- package/dist/types/core-viewers/webgl/viewer/settings/viewerSettings.d.ts +2 -9
- package/dist/types/core-viewers/webgl/viewer/settings/viewerSettingsParsing.d.ts +1 -1
- package/dist/types/core-viewers/webgl/viewer/viewer.d.ts +13 -13
- package/dist/types/index.d.ts +2 -3
- package/dist/types/react-viewers/bim/bimInfoData.d.ts +2 -2
- package/dist/types/react-viewers/bim/bimInfoObject.d.ts +4 -4
- package/dist/types/react-viewers/bim/bimInfoPanel.d.ts +3 -3
- package/dist/types/react-viewers/bim/bimInfoVim.d.ts +4 -4
- package/dist/types/react-viewers/bim/bimPanel.d.ts +13 -13
- package/dist/types/react-viewers/bim/bimSearch.d.ts +2 -2
- package/dist/types/react-viewers/bim/bimTree.d.ts +10 -8
- package/dist/types/react-viewers/bim/bimTreeData.d.ts +5 -4
- package/dist/types/react-viewers/bim/index.d.ts +8 -0
- package/dist/types/react-viewers/container.d.ts +3 -3
- package/dist/types/react-viewers/controlbar/controlBar.d.ts +10 -4
- package/dist/types/react-viewers/controlbar/controlBarButton.d.ts +1 -4
- package/dist/types/react-viewers/controlbar/controlBarIds.d.ts +36 -27
- package/dist/types/react-viewers/controlbar/controlBarSection.d.ts +1 -4
- package/dist/types/react-viewers/controlbar/index.d.ts +6 -0
- package/dist/types/react-viewers/controlbar/style.d.ts +10 -0
- package/dist/types/react-viewers/errors/index.d.ts +2 -0
- package/dist/types/react-viewers/helpers/cameraObserver.d.ts +2 -2
- package/dist/types/react-viewers/helpers/cursor.d.ts +5 -3
- package/dist/types/react-viewers/helpers/element.d.ts +3 -2
- package/dist/types/react-viewers/helpers/index.d.ts +10 -0
- package/dist/types/react-viewers/helpers/loadRequest.d.ts +6 -6
- package/dist/types/react-viewers/helpers/reactUtils.d.ts +270 -0
- package/dist/types/react-viewers/helpers/utils.d.ts +1 -1
- package/dist/types/react-viewers/{panels/icons.d.ts → icons.d.ts} +9 -0
- package/dist/types/react-viewers/index.d.ts +10 -6
- package/dist/types/react-viewers/panels/axesPanel.d.ts +4 -4
- package/dist/types/react-viewers/panels/contextMenu.d.ts +20 -10
- package/dist/types/react-viewers/panels/genericPanel.d.ts +22 -0
- package/dist/types/react-viewers/panels/index.d.ts +14 -0
- package/dist/types/react-viewers/panels/loadingBox.d.ts +2 -2
- package/dist/types/react-viewers/panels/modal.d.ts +5 -5
- package/dist/types/react-viewers/panels/renderSettingsPanel.d.ts +4 -0
- package/dist/types/react-viewers/panels/restOfScreen.d.ts +1 -1
- package/dist/types/react-viewers/{sidePanel → panels}/sidePanel.d.ts +3 -3
- package/dist/types/react-viewers/panels/toast.d.ts +3 -3
- package/dist/types/react-viewers/settings/index.d.ts +5 -0
- package/dist/types/react-viewers/settings/menuSettings.d.ts +2 -2
- package/dist/types/react-viewers/settings/settings.d.ts +13 -50
- package/dist/types/react-viewers/settings/settingsState.d.ts +8 -8
- package/dist/types/react-viewers/settings/settingsStorage.d.ts +6 -6
- package/dist/types/react-viewers/settings/userBoolean.d.ts +17 -0
- package/dist/types/react-viewers/state/cameraState.d.ts +24 -0
- package/dist/types/react-viewers/state/controlBarState.d.ts +35 -20
- package/dist/types/react-viewers/state/index.d.ts +9 -0
- package/dist/types/react-viewers/state/measureState.d.ts +2 -2
- package/dist/types/react-viewers/state/pointerState.d.ts +5 -5
- package/dist/types/react-viewers/state/sectionBoxState.d.ts +18 -17
- package/dist/types/react-viewers/state/sharedIsolation.d.ts +36 -0
- package/dist/types/react-viewers/state/viewerInputs.d.ts +3 -0
- package/dist/types/react-viewers/ultra/camera.d.ts +3 -0
- package/dist/types/react-viewers/ultra/controlBar.d.ts +6 -0
- package/dist/types/react-viewers/ultra/errors/ultraErrors.d.ts +3 -3
- package/dist/types/react-viewers/ultra/index.d.ts +2 -1
- package/dist/types/react-viewers/ultra/isolation.d.ts +3 -0
- package/dist/types/react-viewers/ultra/modal.d.ts +5 -0
- package/dist/types/react-viewers/ultra/sectionBox.d.ts +3 -0
- package/dist/types/react-viewers/ultra/viewer.d.ts +21 -0
- package/dist/types/react-viewers/ultra/viewerRef.d.ts +38 -0
- package/dist/types/react-viewers/urls.d.ts +1 -0
- package/dist/types/react-viewers/webgl/camera.d.ts +3 -0
- package/dist/types/react-viewers/webgl/index.d.ts +3 -8
- package/dist/types/react-viewers/webgl/inputsBindings.d.ts +8 -0
- package/dist/types/react-viewers/webgl/isolation.d.ts +2 -0
- package/dist/types/react-viewers/webgl/{webglLoading.d.ts → loading.d.ts} +8 -8
- package/dist/types/react-viewers/webgl/sectionBox.d.ts +3 -0
- package/dist/types/react-viewers/webgl/viewer.d.ts +28 -0
- package/dist/types/react-viewers/webgl/viewerRef.d.ts +98 -0
- package/dist/types/react-viewers/webgl/viewerState.d.ts +7 -5
- package/dist/types/utils/index.d.ts +11 -0
- package/dist/types/utils/interfaces.d.ts +3 -0
- package/dist/types/utils/math3d.d.ts +19 -0
- package/dist/types/utils/partial.d.ts +7 -0
- package/dist/types/{core-viewers/webgl/utils/requestResult.d.ts → utils/result.d.ts} +1 -1
- package/dist/types/utils/strings.d.ts +7 -0
- package/dist/types/{core-viewers/webgl/utils → utils}/threeUtils.d.ts +1 -0
- package/dist/types/{core-viewers/ultra/utils → utils}/url.d.ts +2 -0
- package/dist/types/{core-viewers/ultra/utils → utils}/validation.d.ts +11 -10
- package/dist/vim-web.iife.js +16864 -17000
- package/dist/vim-web.iife.js.map +1 -1
- package/dist/vim-web.js +16880 -17016
- package/dist/vim-web.js.map +1 -1
- package/package.json +1 -1
- package/dist/types/core-viewers/ultra/utils/deferredPromise.d.ts +0 -8
- package/dist/types/core-viewers/ultra/utils/result.d.ts +0 -11
- package/dist/types/core-viewers/ultra/viewer/inputs/InputTouch.d.ts +0 -25
- package/dist/types/core-viewers/ultra/viewer/inputs/inputHandler.d.ts +0 -7
- package/dist/types/core-viewers/ultra/viewer/inputs/inputKeyboard.d.ts +0 -20
- package/dist/types/core-viewers/ultra/viewer/inputs/inputMouse.d.ts +0 -21
- package/dist/types/core-viewers/ultra/viewer/inputs/inputs.d.ts +0 -27
- package/dist/types/core-viewers/ultra/viewer/marshal.d.ts +0 -86
- package/dist/types/core-viewers/ultra/viewer/selection.d.ts +0 -96
- package/dist/types/core-viewers/ultra/viewer/vim.d.ts +0 -111
- package/dist/types/core-viewers/webgl/utils/deferredPromise.d.ts +0 -8
- package/dist/types/core-viewers/webgl/viewer/gizmos/gizmoRectangle.d.ts +0 -51
- package/dist/types/core-viewers/webgl/viewer/gizmos/measure/measureFlow.d.ts +0 -36
- package/dist/types/core-viewers/webgl/viewer/inputs/input.d.ts +0 -128
- package/dist/types/core-viewers/webgl/viewer/inputs/keyboardHandler.d.ts +0 -113
- package/dist/types/core-viewers/webgl/viewer/inputs/mouseHandler.d.ts +0 -66
- package/dist/types/react-viewers/errors/errorUtils.d.ts +0 -2
- package/dist/types/react-viewers/helpers/camera.d.ts +0 -37
- package/dist/types/react-viewers/helpers/inputs.d.ts +0 -22
- package/dist/types/react-viewers/helpers/isolation.d.ts +0 -128
- package/dist/types/react-viewers/ultra/ultraComponent.d.ts +0 -29
- package/dist/types/react-viewers/ultra/ultraControlBarState.d.ts +0 -6
- package/dist/types/react-viewers/ultra/ultraModal.d.ts +0 -4
- package/dist/types/react-viewers/ultra/ultraSectionBoxState.d.ts +0 -3
- package/dist/types/react-viewers/webgl/webglComponent.d.ts +0 -28
- package/dist/types/react-viewers/webgl/webglComponentRef.d.ts +0 -113
- package/dist/types/react-viewers/webgl/webglSectionBoxState.d.ts +0 -3
- /package/dist/types/core-viewers/ultra/{viewer/decoderWithWorker.d.ts → decoderWithWorker.d.ts} +0 -0
- /package/dist/types/core-viewers/ultra/{viewer/loadRequest.d.ts → loadRequest.d.ts} +0 -0
- /package/dist/types/core-viewers/ultra/{viewer/logger.d.ts → logger.d.ts} +0 -0
- /package/dist/types/core-viewers/ultra/{viewer/protocol.d.ts → protocol.d.ts} +0 -0
- /package/dist/types/core-viewers/ultra/{viewer/streamLogger.d.ts → streamLogger.d.ts} +0 -0
- /package/dist/types/core-viewers/ultra/{viewer/streamRenderer.d.ts → streamRenderer.d.ts} +0 -0
- /package/dist/types/core-viewers/ultra/{viewer/viewport.d.ts → viewport.d.ts} +0 -0
- /package/dist/types/core-viewers/ultra/{viewer/vimCollection.d.ts → vimCollection.d.ts} +0 -0
- /package/dist/types/react-viewers/{sidePanel → state}/sideState.d.ts +0 -0
- /package/dist/types/{core-viewers/ultra/utils → utils}/array.d.ts +0 -0
- /package/dist/types/{core-viewers/ultra/utils → utils}/debounce.d.ts +0 -0
- /package/dist/types/{core-viewers/ultra/utils → utils}/promise.d.ts +0 -0
package/README.md
CHANGED
|
@@ -11,11 +11,11 @@ https://www.npmjs.com/package/vim-web
|
|
|
11
11
|
|
|
12
12
|
### WebGL Viewer
|
|
13
13
|
- **[Small - Residence](https://vimaec.github.io/vim-web/webgl)**
|
|
14
|
-
- **[Medium - Medical Tower](https://vimaec.github.io/vim-web/webgl?vim=https://
|
|
14
|
+
- **[Medium - Medical Tower](https://vimaec.github.io/vim-web/webgl?vim=https://storage.cdn.vimaec.com/samples/Medical_Tower.vim)**
|
|
15
15
|
|
|
16
16
|
### Ultra Viewer
|
|
17
17
|
- **[Small - Residence](https://vimaec.github.io/vim-web/ultra)**
|
|
18
|
-
- **[Medium - Medical Tower](https://vimaec.github.io/vim-web/ultra?vim=https://
|
|
18
|
+
- **[Medium - Medical Tower](https://vimaec.github.io/vim-web/ultra?vim=https://storage.cdn.vimaec.com/samples/Medical_Tower.vim)**
|
|
19
19
|
|
|
20
20
|
Find detailed camera controls here: [Camera Controls](https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide).
|
|
21
21
|
|
package/dist/style.css
CHANGED
|
@@ -733,6 +733,9 @@ video:where(.vim-component,.vim-component *) {
|
|
|
733
733
|
.vc-top-1 {
|
|
734
734
|
top: 0.25rem;
|
|
735
735
|
}
|
|
736
|
+
.vc-top-10 {
|
|
737
|
+
top: 2.5rem;
|
|
738
|
+
}
|
|
736
739
|
.vc-top-4 {
|
|
737
740
|
top: 1rem;
|
|
738
741
|
}
|
|
@@ -845,6 +848,9 @@ video:where(.vim-component,.vim-component *) {
|
|
|
845
848
|
.vc-hidden {
|
|
846
849
|
display: none;
|
|
847
850
|
}
|
|
851
|
+
.vc-h-1\/2 {
|
|
852
|
+
height: 50%;
|
|
853
|
+
}
|
|
848
854
|
.vc-h-2 {
|
|
849
855
|
height: 0.5rem;
|
|
850
856
|
}
|
|
@@ -982,6 +988,9 @@ video:where(.vim-component,.vim-component *) {
|
|
|
982
988
|
.vc-justify-evenly {
|
|
983
989
|
justify-content: space-evenly;
|
|
984
990
|
}
|
|
991
|
+
.vc-gap-1 {
|
|
992
|
+
gap: 0.25rem;
|
|
993
|
+
}
|
|
985
994
|
.vc-gap-2 {
|
|
986
995
|
gap: 0.5rem;
|
|
987
996
|
}
|
|
@@ -1098,6 +1107,9 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1098
1107
|
--tw-bg-opacity: 1 !important;
|
|
1099
1108
|
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) !important;
|
|
1100
1109
|
}
|
|
1110
|
+
.vc-bg-gray {
|
|
1111
|
+
background-color: var(--c-gray);
|
|
1112
|
+
}
|
|
1101
1113
|
.vc-bg-gray-light {
|
|
1102
1114
|
background-color: var(--c-light-gray);
|
|
1103
1115
|
}
|
|
@@ -1110,9 +1122,6 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1110
1122
|
.vc-bg-gray-warm {
|
|
1111
1123
|
background-color: var(--c-dark-gray-warm);
|
|
1112
1124
|
}
|
|
1113
|
-
.vc-bg-overflow {
|
|
1114
|
-
background-color: var(--c-overflow);
|
|
1115
|
-
}
|
|
1116
1125
|
.vc-bg-primary {
|
|
1117
1126
|
background-color: var(--c-primary);
|
|
1118
1127
|
}
|
|
@@ -1304,11 +1313,6 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1304
1313
|
--tw-saturate: saturate(0);
|
|
1305
1314
|
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
|
1306
1315
|
}
|
|
1307
|
-
.vc-backdrop-blur {
|
|
1308
|
-
--tw-backdrop-blur: blur(8px);
|
|
1309
|
-
-webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
|
|
1310
|
-
backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
|
|
1311
|
-
}
|
|
1312
1316
|
.\!vc-transition-opacity {
|
|
1313
1317
|
transition-property: opacity !important;
|
|
1314
1318
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
|
|
@@ -1514,7 +1518,7 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1514
1518
|
padding-left: min(2cqmin, 1rem);
|
|
1515
1519
|
padding-right: min(2cqmin, 1rem);
|
|
1516
1520
|
}
|
|
1517
|
-
|
|
1521
|
+
|
|
1518
1522
|
.vim-control-bar-button {
|
|
1519
1523
|
height: min(8cqmin, 2.5rem);
|
|
1520
1524
|
width: min(8cqmin, 2.5rem);
|
|
@@ -1522,6 +1526,18 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1522
1526
|
.vim-control-bar-section {
|
|
1523
1527
|
gap: min(2cqmin, 0.5rem)
|
|
1524
1528
|
}
|
|
1529
|
+
|
|
1530
|
+
.vim-rest-of-screen .vc-text-xs {
|
|
1531
|
+
font-size: min(2.0cqmin, 0.75rem);
|
|
1532
|
+
line-height: min(2.5cqmin, 0.85rem);
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1535
|
+
.vim-control-bar-counter{
|
|
1536
|
+
margin-bottom: min(1cqmin, 0.5rem);
|
|
1537
|
+
margin-right: min(2cqmin, 0.5rem);
|
|
1538
|
+
margin-left: max(-2cqmin, -0.75rem);
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1525
1541
|
.vim-axes-panel{
|
|
1526
1542
|
border-radius: min(3cqmin, 1rem);
|
|
1527
1543
|
top: min(2cqmin, 1.5rem);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module viw-webgl-viewer/inputs
|
|
3
3
|
*/
|
|
4
|
-
import { Viewer } from '../viewer';
|
|
5
4
|
/**
|
|
5
|
+
* TODO: Use the same code for ULTRA and webgl.
|
|
6
6
|
* Base class for various input handlers.
|
|
7
7
|
* It provides convenience to register to and unregister from events.
|
|
8
8
|
*/
|
|
9
|
-
export declare class
|
|
10
|
-
protected
|
|
11
|
-
protected
|
|
12
|
-
constructor(
|
|
13
|
-
protected reg
|
|
9
|
+
export declare class BaseInputHandler {
|
|
10
|
+
protected _canvas: HTMLCanvasElement;
|
|
11
|
+
protected _disconnect: Function[];
|
|
12
|
+
constructor(canvas: HTMLCanvasElement);
|
|
13
|
+
protected reg<T extends Event>(element: Document | HTMLElement | Window, eventType: string, callback: (event: T) => void): void;
|
|
14
14
|
/**
|
|
15
15
|
* Register handler to related browser events
|
|
16
16
|
* Prevents double registrations
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './inputHandler';
|
|
2
|
+
export type * from './baseInputHandler';
|
|
3
|
+
export { PointerMode } from './inputHandler';
|
|
4
|
+
export type * from './keyboardHandler';
|
|
5
|
+
export type * from './mouseHandler';
|
|
6
|
+
export type * from './raycaster';
|
|
7
|
+
export type * from './selection';
|
|
8
|
+
export type * from './touchHandler';
|
|
9
|
+
export type * from './vim';
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { BaseInputHandler } from './baseInputHandler';
|
|
3
|
+
import { KeyboardHandler } from './keyboardHandler';
|
|
4
|
+
import { MouseHandler } from './mouseHandler';
|
|
5
|
+
import { TouchHandler } from './touchHandler';
|
|
6
|
+
export declare enum PointerMode {
|
|
7
|
+
ORBIT = "orbit",
|
|
8
|
+
LOOK = "look",
|
|
9
|
+
PAN = "pan",
|
|
10
|
+
ZOOM = "zoom",
|
|
11
|
+
RECT = "rect"
|
|
12
|
+
}
|
|
13
|
+
export interface IInputAdapter {
|
|
14
|
+
init: () => void;
|
|
15
|
+
toggleOrthographic: () => void;
|
|
16
|
+
resetCamera: () => void;
|
|
17
|
+
clearSelection: () => void;
|
|
18
|
+
frameCamera: () => void;
|
|
19
|
+
moveCamera: (value: THREE.Vector3) => void;
|
|
20
|
+
orbitCamera: (value: THREE.Vector2) => void;
|
|
21
|
+
rotateCamera: (value: THREE.Vector2) => void;
|
|
22
|
+
panCamera: (value: THREE.Vector2) => void;
|
|
23
|
+
keyDown: (keyCode: string) => boolean;
|
|
24
|
+
keyUp: (keyCode: string) => boolean;
|
|
25
|
+
mouseDown: (pos: THREE.Vector2, button: number) => void;
|
|
26
|
+
mouseUp: (pos: THREE.Vector2, button: number) => void;
|
|
27
|
+
mouseMove: (pos: THREE.Vector2) => void;
|
|
28
|
+
selectAtPointer: (pos: THREE.Vector2, add: boolean) => void;
|
|
29
|
+
frameAtPointer: (pos: THREE.Vector2) => void;
|
|
30
|
+
zoom: (value: number) => void;
|
|
31
|
+
}
|
|
32
|
+
interface InputSettings {
|
|
33
|
+
orbit: boolean;
|
|
34
|
+
scrollSpeed: number;
|
|
35
|
+
moveSpeed: number;
|
|
36
|
+
rotateSpeed: number;
|
|
37
|
+
orbitSpeed: number;
|
|
38
|
+
}
|
|
39
|
+
export declare class InputHandler extends BaseInputHandler {
|
|
40
|
+
/**
|
|
41
|
+
* Touch input handler
|
|
42
|
+
*/
|
|
43
|
+
touch: TouchHandler;
|
|
44
|
+
/**
|
|
45
|
+
* Mouse input handler
|
|
46
|
+
*/
|
|
47
|
+
mouse: MouseHandler;
|
|
48
|
+
/**
|
|
49
|
+
* Keyboard input handler
|
|
50
|
+
*/
|
|
51
|
+
keyboard: KeyboardHandler;
|
|
52
|
+
scrollSpeed: number;
|
|
53
|
+
private _moveSpeed;
|
|
54
|
+
rotateSpeed: number;
|
|
55
|
+
orbitSpeed: number;
|
|
56
|
+
private _pointerActive;
|
|
57
|
+
private _pointerFallback;
|
|
58
|
+
private _pointerOverride;
|
|
59
|
+
private _onPointerOverrideChanged;
|
|
60
|
+
private _onPointerModeChanged;
|
|
61
|
+
private _onSettingsChanged;
|
|
62
|
+
private _adapter;
|
|
63
|
+
constructor(canvas: HTMLCanvasElement, adapter: IInputAdapter, settings?: Partial<InputSettings>);
|
|
64
|
+
init(): void;
|
|
65
|
+
get moveSpeed(): number;
|
|
66
|
+
set moveSpeed(value: number);
|
|
67
|
+
get onSettingsChanged(): import("ste-signals").ISignal;
|
|
68
|
+
/**
|
|
69
|
+
* Returns the last main mode (orbit, look) that was active.
|
|
70
|
+
*/
|
|
71
|
+
get pointerFallback(): PointerMode;
|
|
72
|
+
/**
|
|
73
|
+
* Returns current pointer mode.
|
|
74
|
+
*/
|
|
75
|
+
get pointerActive(): PointerMode;
|
|
76
|
+
/**
|
|
77
|
+
* A temporary pointer mode used for temporary icons.
|
|
78
|
+
*/
|
|
79
|
+
get pointerOverride(): PointerMode;
|
|
80
|
+
set pointerOverride(value: PointerMode | undefined);
|
|
81
|
+
/**
|
|
82
|
+
* Changes pointer interaction mode. Look mode will set camera orbitMode to false.
|
|
83
|
+
*/
|
|
84
|
+
set pointerActive(value: PointerMode);
|
|
85
|
+
/**
|
|
86
|
+
* Event called when pointer interaction mode changes.
|
|
87
|
+
*/
|
|
88
|
+
get onPointerModeChanged(): import("ste-signals").ISignal;
|
|
89
|
+
/**
|
|
90
|
+
* Event called when the pointer is temporarily overriden.
|
|
91
|
+
*/
|
|
92
|
+
get onPointerOverrideChanged(): import("ste-signals").ISignal;
|
|
93
|
+
private _onContextMenu;
|
|
94
|
+
/**
|
|
95
|
+
* Event called when when context menu could be displayed
|
|
96
|
+
*/
|
|
97
|
+
get onContextMenu(): import("ste-simple-events").ISimpleEvent<THREE.Vector2>;
|
|
98
|
+
/**
|
|
99
|
+
* Calls context menu action
|
|
100
|
+
*/
|
|
101
|
+
ContextMenu(position: THREE.Vector2 | undefined): void;
|
|
102
|
+
/**
|
|
103
|
+
* Register inputs handlers for default viewer behavior
|
|
104
|
+
*/
|
|
105
|
+
registerAll(): void;
|
|
106
|
+
/**
|
|
107
|
+
* Unregisters all input handlers
|
|
108
|
+
*/
|
|
109
|
+
unregisterAll: () => void;
|
|
110
|
+
/**
|
|
111
|
+
* Resets all input state
|
|
112
|
+
*/
|
|
113
|
+
resetAll(): void;
|
|
114
|
+
dispose(): void;
|
|
115
|
+
}
|
|
116
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module viw-webgl-viewer/inputs
|
|
3
|
+
*/
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import { BaseInputHandler } from './baseInputHandler';
|
|
6
|
+
type CallbackMode = 'replace' | 'append' | 'prepend';
|
|
7
|
+
/**
|
|
8
|
+
* KeyboardHandler
|
|
9
|
+
*
|
|
10
|
+
* A modern keyboard handler that manages keyboard events using a stateful pattern.
|
|
11
|
+
* It supports separate handlers for key down, key up, and continuous key pressed events.
|
|
12
|
+
* The handler calculates a movement vector based on currently pressed keys.
|
|
13
|
+
*/
|
|
14
|
+
export declare class KeyboardHandler extends BaseInputHandler {
|
|
15
|
+
/**
|
|
16
|
+
* Callback invoked whenever the calculated movement vector is updated.
|
|
17
|
+
*/
|
|
18
|
+
onMove: (value: THREE.Vector3) => void;
|
|
19
|
+
onKeyUp: (code: string) => boolean;
|
|
20
|
+
onKeyDown: (code: string) => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Speed multiplier applied when the Shift key is held.
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
private readonly SHIFT_MULTIPLIER;
|
|
26
|
+
/**
|
|
27
|
+
* Set of currently pressed key codes.
|
|
28
|
+
* @private
|
|
29
|
+
*/
|
|
30
|
+
private pressedKeys;
|
|
31
|
+
/**
|
|
32
|
+
* Map of key down event handlers (invoked once on key down).
|
|
33
|
+
* @private
|
|
34
|
+
*/
|
|
35
|
+
private keyDownHandlers;
|
|
36
|
+
/**
|
|
37
|
+
* Map of key up event handlers (invoked once on key up).
|
|
38
|
+
* @private
|
|
39
|
+
*/
|
|
40
|
+
private keyUpHandlers;
|
|
41
|
+
/**
|
|
42
|
+
* Creates an instance of KeyboardHandler.
|
|
43
|
+
* @param canvas The HTMLCanvasElement to attach keyboard events to.
|
|
44
|
+
*/
|
|
45
|
+
constructor(canvas: HTMLCanvasElement);
|
|
46
|
+
/**
|
|
47
|
+
* Registers the necessary keyboard event listeners.
|
|
48
|
+
* @protected
|
|
49
|
+
*/
|
|
50
|
+
protected addListeners(): void;
|
|
51
|
+
private registerMovementHandlers;
|
|
52
|
+
/**
|
|
53
|
+
* Checks if a key is currently pressed.
|
|
54
|
+
* @param key The event.code of the key.
|
|
55
|
+
* @returns {boolean} True if the key is pressed, false otherwise.
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
isKeyPressed(key: string): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Resets the handler state by clearing all pressed keys and recalculating movement.
|
|
61
|
+
* @override
|
|
62
|
+
*/
|
|
63
|
+
reset(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Registers a handler for a key down event.
|
|
66
|
+
* @param code The event.code of the key.
|
|
67
|
+
* @param handler Callback invoked on key down.
|
|
68
|
+
*/
|
|
69
|
+
registerKeyDown(code: string, mode: CallbackMode, handler: () => void): void;
|
|
70
|
+
/**
|
|
71
|
+
* Registers a handler for a key up event.
|
|
72
|
+
* @param code The event.code of the key.
|
|
73
|
+
* @param handler Callback invoked on key up.
|
|
74
|
+
*/
|
|
75
|
+
registerKeyUp(code: string, mode: CallbackMode, handler: () => void): void;
|
|
76
|
+
private registerKey;
|
|
77
|
+
/**
|
|
78
|
+
* Internal key down event handler.
|
|
79
|
+
* @param event The KeyboardEvent object.
|
|
80
|
+
* @private
|
|
81
|
+
*/
|
|
82
|
+
private _onKeyDown;
|
|
83
|
+
/**
|
|
84
|
+
* Internal key up event handler.
|
|
85
|
+
* @param event The KeyboardEvent object.
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
private _onKeyUp;
|
|
89
|
+
/**
|
|
90
|
+
* Calculates and applies the movement vector based on currently pressed keys.
|
|
91
|
+
* Also calls any continuous key pressed handlers for keys that are held down.
|
|
92
|
+
* @private
|
|
93
|
+
*/
|
|
94
|
+
private applyMove;
|
|
95
|
+
}
|
|
96
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BaseInputHandler } from "./baseInputHandler";
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
type DragCallback = (delta: THREE.Vector2, button: number) => void;
|
|
4
|
+
export declare class MouseHandler extends BaseInputHandler {
|
|
5
|
+
private _lastMouseDownPosition;
|
|
6
|
+
private _capture;
|
|
7
|
+
private _dragHandler;
|
|
8
|
+
onButtonDown: (pos: THREE.Vector2, button: number) => void;
|
|
9
|
+
onButtonUp: (pos: THREE.Vector2, button: number) => void;
|
|
10
|
+
onMouseMove: (event: THREE.Vector2) => void;
|
|
11
|
+
onDrag: DragCallback;
|
|
12
|
+
onClick: (position: THREE.Vector2, ctrl: boolean) => void;
|
|
13
|
+
onDoubleClick: (position: THREE.Vector2) => void;
|
|
14
|
+
onWheel: (value: number, ctrl: boolean) => void;
|
|
15
|
+
constructor(canvas: HTMLCanvasElement);
|
|
16
|
+
protected addListeners(): void;
|
|
17
|
+
dispose(): void;
|
|
18
|
+
private onPointerDown;
|
|
19
|
+
private onPointerUp;
|
|
20
|
+
private handleMouseClick;
|
|
21
|
+
private onPointerMove;
|
|
22
|
+
private _onDoubleClick;
|
|
23
|
+
private onMouseScroll;
|
|
24
|
+
private relativePosition;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { THREE } from "../..";
|
|
2
|
+
export interface IRaycastResult<T> {
|
|
3
|
+
/** The model Object hit */
|
|
4
|
+
object: T | undefined;
|
|
5
|
+
/** The 3D world position of the hit point */
|
|
6
|
+
worldPosition: THREE.Vector3;
|
|
7
|
+
/** The surface normal at the hit point */
|
|
8
|
+
worldNormal: THREE.Vector3;
|
|
9
|
+
}
|
|
10
|
+
export interface IRaycaster<T> {
|
|
11
|
+
raycastFromScreen(position: THREE.Vector2): Promise<IRaycastResult<T>>;
|
|
12
|
+
raycastFromWorld(position: THREE.Vector3): Promise<IRaycastResult<T>>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ISignal } from "ste-signals";
|
|
2
|
+
import { IVimObject, IVim } from "./vim";
|
|
3
|
+
import { THREE } from "../..";
|
|
4
|
+
export interface ISelection<T extends IVimObject> {
|
|
5
|
+
select(object: T | T[]): void;
|
|
6
|
+
toggle(object: T | T[]): void;
|
|
7
|
+
add(object: T | T[]): void;
|
|
8
|
+
remove(object: T | T[]): void;
|
|
9
|
+
clear(): void;
|
|
10
|
+
getAll(): T[];
|
|
11
|
+
GetFromVim(vim: IVim<T>): T[];
|
|
12
|
+
removeFromVim(vim: IVim<T>): void;
|
|
13
|
+
getBoundingBox(): Promise<THREE.Box3>;
|
|
14
|
+
count(): number;
|
|
15
|
+
any(): boolean;
|
|
16
|
+
has(object: T): boolean;
|
|
17
|
+
onSelectionChanged: ISignal;
|
|
18
|
+
}
|
|
19
|
+
export interface ISelectionAdapter<T extends IVimObject> {
|
|
20
|
+
outline(object: T, state: boolean): void;
|
|
21
|
+
}
|
|
22
|
+
export declare class Selection<T extends IVimObject> implements ISelection<T> {
|
|
23
|
+
private _onSelectionChanged;
|
|
24
|
+
private _selection;
|
|
25
|
+
private _adapter;
|
|
26
|
+
constructor(adapter: ISelectionAdapter<T>);
|
|
27
|
+
has(object: T): boolean;
|
|
28
|
+
count(): number;
|
|
29
|
+
any(): boolean;
|
|
30
|
+
get onSelectionChanged(): ISignal;
|
|
31
|
+
private _dispatchIfChanged;
|
|
32
|
+
select(object: T): void;
|
|
33
|
+
select(objects: T[]): void;
|
|
34
|
+
toggle(object: T): void;
|
|
35
|
+
toggle(objects: T[]): void;
|
|
36
|
+
add(object: T): void;
|
|
37
|
+
add(objects: T[]): void;
|
|
38
|
+
remove(object: T): void;
|
|
39
|
+
remove(objects: T[]): void;
|
|
40
|
+
clear(): void;
|
|
41
|
+
getAll(): T[];
|
|
42
|
+
GetFromVim(vim: IVim<T>): T[];
|
|
43
|
+
removeFromVim(vim: IVim<T>): void;
|
|
44
|
+
getBoundingBox(): Promise<THREE.Box3>;
|
|
45
|
+
}
|
|
@@ -1,28 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module viw-webgl-viewer/inputs
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
4
|
+
import * as THREE from 'three';
|
|
5
|
+
import { BaseInputHandler } from './baseInputHandler';
|
|
6
6
|
/**
|
|
7
7
|
* Manages user touch inputs.
|
|
8
8
|
*/
|
|
9
|
-
export declare class TouchHandler extends
|
|
9
|
+
export declare class TouchHandler extends BaseInputHandler {
|
|
10
10
|
private readonly TAP_DURATION_MS;
|
|
11
11
|
private readonly DOUBLE_TAP_DELAY_MS;
|
|
12
12
|
private readonly TAP_MAX_MOVE_PIXEL;
|
|
13
13
|
private readonly ZOOM_SPEED;
|
|
14
14
|
private readonly MOVE_SPEED;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
*/
|
|
22
|
-
orbitSpeed: number;
|
|
23
|
-
constructor(viewer: Viewer);
|
|
24
|
-
private get camera();
|
|
25
|
-
private get viewport();
|
|
15
|
+
onTap: (position: THREE.Vector2) => void;
|
|
16
|
+
onDoubleTap: (position: THREE.Vector2) => void;
|
|
17
|
+
onDrag: (delta: THREE.Vector2) => void;
|
|
18
|
+
onDoubleDrag: (delta: THREE.Vector2) => void;
|
|
19
|
+
onPinchOrSpread: (delta: number) => void;
|
|
20
|
+
constructor(canvas: HTMLCanvasElement);
|
|
26
21
|
private _touch;
|
|
27
22
|
private _touch1;
|
|
28
23
|
private _touch2;
|
|
@@ -31,15 +26,17 @@ export declare class TouchHandler extends InputHandler {
|
|
|
31
26
|
private _touchStart;
|
|
32
27
|
protected addListeners(): void;
|
|
33
28
|
reset: () => void;
|
|
34
|
-
private
|
|
29
|
+
private _onTap;
|
|
35
30
|
private onTouchStart;
|
|
36
31
|
private toRotation;
|
|
37
|
-
private onDrag;
|
|
38
|
-
private onDoubleDrag;
|
|
39
|
-
private onPinchOrSpread;
|
|
40
32
|
private onTouchMove;
|
|
41
33
|
private onTouchEnd;
|
|
42
34
|
private isSingleTouch;
|
|
43
35
|
private touchToVector;
|
|
44
36
|
private average;
|
|
37
|
+
/**
|
|
38
|
+
* Returns the pixel size of the canvas.
|
|
39
|
+
* @returns {THREE.Vector2} The pixel size of the canvas.
|
|
40
|
+
*/
|
|
41
|
+
getCanvasSize(): THREE.Vector2;
|
|
45
42
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { THREE } from "../..";
|
|
2
|
+
export interface IVimObject {
|
|
3
|
+
vim: IVim<IVimObject>;
|
|
4
|
+
getBoundingBox(): Promise<THREE.Box3>;
|
|
5
|
+
}
|
|
6
|
+
export interface IVim<T extends IVimObject> {
|
|
7
|
+
/**
|
|
8
|
+
* Retrieves the object associated with the specified instance number.
|
|
9
|
+
* @param instance - The instance number of the object.
|
|
10
|
+
* @returns The object corresponding to the instance, or undefined if not found.
|
|
11
|
+
*/
|
|
12
|
+
getObjectFromInstance(instance: number): T | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Retrieves the objects associated with the specified element ID.
|
|
15
|
+
* @param id - The element ID to retrieve objects for.
|
|
16
|
+
* @returns An array of objects corresponding to the element ID.
|
|
17
|
+
*/
|
|
18
|
+
getObjectsFromElementId(id: number): T[];
|
|
19
|
+
/**
|
|
20
|
+
* Retrieves the Vim object associated with the given Vim element index.
|
|
21
|
+
* @param element - The index of the Vim element.
|
|
22
|
+
* @returns The Vim object corresponding to the element index, or undefined if not found.
|
|
23
|
+
*/
|
|
24
|
+
getObjectFromElementIndex(element: number): T | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Retrieves all objects within the Vim.
|
|
27
|
+
* @returns An array of all Vim objects.
|
|
28
|
+
*/
|
|
29
|
+
getAllObjects(): T[];
|
|
30
|
+
/**
|
|
31
|
+
* Retrieves the bounding box of the Vim object.
|
|
32
|
+
* @returns The bounding box of the Vim object.
|
|
33
|
+
*/
|
|
34
|
+
getBoundingBox(): Promise<THREE.Box3>;
|
|
35
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Box3, Segment } from '../utils/math3d';
|
|
2
1
|
import { RpcSafeClient } from './rpcSafeClient';
|
|
2
|
+
import { Element3D } from './element3d';
|
|
3
3
|
import { Vim } from './vim';
|
|
4
|
+
import { Segment } from './rpcTypes';
|
|
5
|
+
import * as THREE from 'three';
|
|
4
6
|
/**
|
|
5
7
|
* Interface defining camera control operations in the 3D viewer
|
|
6
8
|
* @interface
|
|
@@ -18,7 +20,7 @@ export interface ICamera {
|
|
|
18
20
|
* @param {number} [blendTime=0.5] - Animation duration in seconds
|
|
19
21
|
* @returns {Promise<Segment | undefined>} Promise resolving to the final camera position segment
|
|
20
22
|
*/
|
|
21
|
-
frameBox(box: Box3, blendTime?: number): Promise<Segment | undefined>;
|
|
23
|
+
frameBox(box: THREE.Box3, blendTime?: number): Promise<Segment | undefined>;
|
|
22
24
|
/**
|
|
23
25
|
* Frames specified nodes of a Vim model in the camera view
|
|
24
26
|
* @param {Vim} vim - The target Vim model
|
|
@@ -27,6 +29,13 @@ export interface ICamera {
|
|
|
27
29
|
* @returns {Promise<Segment | undefined>} Promise resolving to the final camera position segment
|
|
28
30
|
*/
|
|
29
31
|
frameVim(vim: Vim, nodes: number[] | 'all', blendTime?: number): Promise<Segment | undefined>;
|
|
32
|
+
/**
|
|
33
|
+
* Frames a specific object in the camera view
|
|
34
|
+
* @param {Element3D} object - The target object to frame
|
|
35
|
+
* @param {number} [blendTime=0.5] - Animation duration in seconds
|
|
36
|
+
* @returns {Promise<Segment | undefined>} Promise resolving to the final camera position segment
|
|
37
|
+
*/
|
|
38
|
+
frameObject(object: Element3D, blendTime?: number): Promise<Segment | undefined>;
|
|
30
39
|
/**
|
|
31
40
|
* Saves the current camera position for later restoration
|
|
32
41
|
* @param {Segment} [segment] - Optional specific camera position to save
|
|
@@ -51,7 +60,6 @@ export interface ICamera {
|
|
|
51
60
|
export declare class Camera implements ICamera {
|
|
52
61
|
private _rpc;
|
|
53
62
|
private _lastPosition;
|
|
54
|
-
private _interval;
|
|
55
63
|
private _defaultBlendTime;
|
|
56
64
|
private _savedPosition;
|
|
57
65
|
/**
|
|
@@ -78,6 +86,7 @@ export declare class Camera implements ICamera {
|
|
|
78
86
|
*/
|
|
79
87
|
onConnect(): void;
|
|
80
88
|
onCameraPose(pose: Segment): void;
|
|
89
|
+
set(position: THREE.Vector3, target: THREE.Vector3, blendTime?: number): void;
|
|
81
90
|
/**
|
|
82
91
|
* Pauses or resumes rendering
|
|
83
92
|
* @param value - True to pause rendering, false to resume
|
|
@@ -94,7 +103,7 @@ export declare class Camera implements ICamera {
|
|
|
94
103
|
* @param box - The 3D bounding box to frame in the camera view
|
|
95
104
|
* @param blendTime - Duration of the camera animation in seconds (defaults to 0.5)
|
|
96
105
|
*/
|
|
97
|
-
frameBox(box: Box3, blendTime?: number): Promise<Segment | undefined>;
|
|
106
|
+
frameBox(box: THREE.Box3, blendTime?: number): Promise<Segment | undefined>;
|
|
98
107
|
/**
|
|
99
108
|
* Frames specific nodes of a Vim model in the camera view
|
|
100
109
|
* @param vim - The Vim model containing the nodes to frame
|
|
@@ -103,4 +112,5 @@ export declare class Camera implements ICamera {
|
|
|
103
112
|
* @returns Promise that resolves when the framing animation is complete
|
|
104
113
|
*/
|
|
105
114
|
frameVim(vim: Vim, nodes: number[] | 'all', blendTime?: number): Promise<Segment | undefined>;
|
|
115
|
+
frameObject(object: Element3D, blendTime?: number): Promise<Segment | undefined>;
|
|
106
116
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RpcSafeClient } from './rpcSafeClient';
|
|
2
|
-
import {
|
|
3
|
-
import { RGBA32 } from '
|
|
2
|
+
import { RemoteColor } from './remoteColor';
|
|
3
|
+
import { RGBA32 } from './rpcTypes';
|
|
4
4
|
/**
|
|
5
5
|
* Manages the creation, caching, and deletion of color instances.
|
|
6
6
|
* Handles batched deletion of colors to optimize RPC calls.
|
|
@@ -21,25 +21,25 @@ export declare class ColorManager {
|
|
|
21
21
|
* @param hex - The RGBA32 color value
|
|
22
22
|
* @returns Promise resolving to a ColorHandle, or undefined if creation fails
|
|
23
23
|
*/
|
|
24
|
-
getColor(hex: RGBA32): Promise<
|
|
24
|
+
getColor(hex: RGBA32): Promise<RemoteColor | undefined>;
|
|
25
25
|
/**
|
|
26
26
|
* Creates or retrieves cached color instances for multiple hex values.
|
|
27
27
|
* @param c - Array of RGBA32 color values
|
|
28
28
|
* @returns Promise resolving to an array of ColorHandles in the same order as input, or undefined if creation fails
|
|
29
29
|
* @remarks Duplicate hex values will be mapped to the same color instance for efficiency
|
|
30
30
|
*/
|
|
31
|
-
getColors(c: RGBA32[]): Promise<
|
|
31
|
+
getColors(c: RGBA32[]): Promise<RemoteColor[]>;
|
|
32
32
|
/**
|
|
33
33
|
* Retrieves a color instance by its unique identifier.
|
|
34
34
|
* @param id - The unique identifier of the color
|
|
35
35
|
* @returns The ColorHandle associated with the ID, or undefined if not found
|
|
36
36
|
*/
|
|
37
|
-
getFromId(id: number):
|
|
37
|
+
getFromId(id: number): RemoteColor;
|
|
38
38
|
/**
|
|
39
39
|
* Destroys a color instance and removes it from the cache.
|
|
40
40
|
* @param color - The ColorHandle to destroy
|
|
41
41
|
*/
|
|
42
|
-
destroy(color:
|
|
42
|
+
destroy(color: RemoteColor): void;
|
|
43
43
|
/**
|
|
44
44
|
* Destroys all color instances and clears the cache.
|
|
45
45
|
*/
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import type { VideoFrameMessage } from './protocol';
|
|
2
2
|
import { ILogger } from './logger';
|
|
3
|
-
/**
|
|
4
|
-
* Configuration for the video decoder.
|
|
5
|
-
*/
|
|
6
|
-
export declare const videoDecoderConfig: globalThis.VideoDecoderConfig;
|
|
7
|
-
export declare enum FrameType {
|
|
8
|
-
KeyFrame = 0,
|
|
9
|
-
DeltaFrame = 1
|
|
10
|
-
}
|
|
11
3
|
/**
|
|
12
4
|
* Interface defining the basic decoder operations
|
|
13
5
|
*/
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IVimObject } from "../shared/vim";
|
|
2
|
+
import { NodeState } from "./nodeState";
|
|
3
|
+
import { Box3, RGBA32 } from "./rpcTypes";
|
|
4
|
+
import { Vim } from "./vim";
|
|
5
|
+
export declare class Element3D implements IVimObject {
|
|
6
|
+
readonly vim: Vim;
|
|
7
|
+
get vimHandle(): number;
|
|
8
|
+
constructor(vim: Vim, instance: number);
|
|
9
|
+
readonly instance: number;
|
|
10
|
+
get state(): NodeState;
|
|
11
|
+
set state(state: NodeState);
|
|
12
|
+
get color(): RGBA32 | undefined;
|
|
13
|
+
set color(color: RGBA32 | undefined);
|
|
14
|
+
getBoundingBox(): Promise<Box3>;
|
|
15
|
+
}
|