vim-web 0.3.44-dev.9 → 0.4.1-dev.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/README.md +2 -2
- package/dist/style.css +47 -33
- 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} +5 -6
- package/dist/types/core-viewers/shared/index.d.ts +9 -0
- package/dist/types/core-viewers/shared/inputAdapter.d.ts +21 -0
- package/dist/types/core-viewers/shared/inputHandler.d.ts +99 -0
- package/dist/types/core-viewers/shared/keyboardHandler.d.ts +96 -0
- package/dist/types/core-viewers/shared/mouseHandler.d.ts +27 -0
- package/dist/types/core-viewers/shared/raycaster.d.ts +27 -0
- package/dist/types/core-viewers/shared/selection.d.ts +105 -0
- package/dist/types/core-viewers/{webgl/viewer/inputs → shared}/touchHandler.d.ts +15 -18
- package/dist/types/core-viewers/shared/vim.d.ts +48 -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 +43 -0
- package/dist/types/core-viewers/ultra/index.d.ts +28 -8
- package/dist/types/core-viewers/ultra/inputAdapter.d.ts +8 -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} +28 -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} +8 -3
- 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 +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/vimRequest.d.ts +3 -3
- package/dist/types/core-viewers/webgl/loader/scene.d.ts +4 -7
- package/dist/types/core-viewers/webgl/loader/vim.d.ts +12 -16
- 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 +11 -117
- package/dist/types/core-viewers/webgl/viewer/camera/{ICamera.d.ts → cameraInterface.d.ts} +9 -4
- package/dist/types/core-viewers/webgl/viewer/camera/cameraMovement.d.ts +10 -7
- package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementLerp.d.ts +4 -4
- package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementSnap.d.ts +2 -3
- package/dist/types/core-viewers/webgl/viewer/camera/{orthographic.d.ts → cameraOrthographic.d.ts} +2 -3
- package/dist/types/core-viewers/webgl/viewer/camera/{perspective.d.ts → cameraPerspective.d.ts} +2 -3
- 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 +3 -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/inputAdapter.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 +5 -5
- package/dist/types/core-viewers/webgl/viewer/rendering/renderer.d.ts +6 -3
- 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 +0 -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 +5 -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/generic/genericField.d.ts +31 -0
- package/dist/types/react-viewers/generic/genericPanel.d.ts +12 -0
- package/dist/types/react-viewers/generic/index.d.ts +2 -0
- package/dist/types/react-viewers/generic/inputNumber.d.ts +4 -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/customizer.d.ts +4 -0
- package/dist/types/react-viewers/helpers/element.d.ts +3 -2
- package/dist/types/react-viewers/helpers/index.d.ts +6 -0
- package/dist/types/react-viewers/helpers/layout.d.ts +24 -0
- package/dist/types/react-viewers/helpers/loadRequest.d.ts +6 -6
- package/dist/types/react-viewers/helpers/reactUtils.d.ts +285 -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 +11 -6
- package/dist/types/react-viewers/panels/axesPanel.d.ts +4 -4
- package/dist/types/react-viewers/panels/contextMenu.d.ts +22 -14
- package/dist/types/react-viewers/panels/help.d.ts +2 -7
- package/dist/types/react-viewers/panels/index.d.ts +25 -0
- package/dist/types/react-viewers/panels/isolationPanel.d.ts +9 -0
- package/dist/types/react-viewers/panels/loadingBox.d.ts +5 -2
- package/dist/types/react-viewers/panels/messageBox.d.ts +1 -2
- package/dist/types/react-viewers/panels/modal.d.ts +9 -10
- package/dist/types/react-viewers/panels/restOfScreen.d.ts +1 -1
- package/dist/types/react-viewers/panels/sectionBoxPanel.d.ts +8 -2
- 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/settings.d.ts +14 -60
- package/dist/types/react-viewers/settings/{menuSettings.d.ts → settingsPanel.d.ts} +3 -3
- 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 +36 -21
- 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 -18
- package/dist/types/react-viewers/state/sharedIsolation.d.ts +38 -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 +47 -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} +11 -9
- 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 +107 -0
- package/dist/types/react-viewers/webgl/viewerState.d.ts +7 -5
- package/dist/types/utils/debounce.d.ts +30 -0
- package/dist/types/utils/index.d.ts +10 -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/{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 +19329 -19224
- package/dist/vim-web.iife.js.map +1 -1
- package/dist/vim-web.js +19346 -19241
- package/dist/vim-web.js.map +1 -1
- package/package.json +1 -1
- package/dist/types/core-viewers/ultra/utils/debounce.d.ts +0 -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/deferredPromise.d.ts +0 -8
- 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 -47
- 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 -118
- 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}/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
|
}
|
|
@@ -785,6 +788,10 @@ video:where(.vim-component,.vim-component *) {
|
|
|
785
788
|
margin-left: 0.5rem;
|
|
786
789
|
margin-right: 0.5rem;
|
|
787
790
|
}
|
|
791
|
+
.vc-mx-auto {
|
|
792
|
+
margin-left: auto;
|
|
793
|
+
margin-right: auto;
|
|
794
|
+
}
|
|
788
795
|
.vc-my-1 {
|
|
789
796
|
margin-top: 0.25rem;
|
|
790
797
|
margin-bottom: 0.25rem;
|
|
@@ -824,6 +831,9 @@ video:where(.vim-component,.vim-component *) {
|
|
|
824
831
|
.vc-mt-2 {
|
|
825
832
|
margin-top: 0.5rem;
|
|
826
833
|
}
|
|
834
|
+
.vc-mt-4 {
|
|
835
|
+
margin-top: 1rem;
|
|
836
|
+
}
|
|
827
837
|
.vc-mt-6 {
|
|
828
838
|
margin-top: 1.5rem;
|
|
829
839
|
}
|
|
@@ -845,6 +855,9 @@ video:where(.vim-component,.vim-component *) {
|
|
|
845
855
|
.vc-hidden {
|
|
846
856
|
display: none;
|
|
847
857
|
}
|
|
858
|
+
.vc-h-1\/2 {
|
|
859
|
+
height: 50%;
|
|
860
|
+
}
|
|
848
861
|
.vc-h-2 {
|
|
849
862
|
height: 0.5rem;
|
|
850
863
|
}
|
|
@@ -854,18 +867,12 @@ video:where(.vim-component,.vim-component *) {
|
|
|
854
867
|
.vc-h-\[49\%\] {
|
|
855
868
|
height: 49%;
|
|
856
869
|
}
|
|
857
|
-
.vc-h-\[50\%\] {
|
|
858
|
-
height: 50%;
|
|
859
|
-
}
|
|
860
870
|
.vc-h-\[80\%\] {
|
|
861
871
|
height: 80%;
|
|
862
872
|
}
|
|
863
873
|
.vc-h-full {
|
|
864
874
|
height: 100%;
|
|
865
875
|
}
|
|
866
|
-
.vc-max-h-\[48px\] {
|
|
867
|
-
max-height: 48px;
|
|
868
|
-
}
|
|
869
876
|
.vc-max-h-\[80\%\] {
|
|
870
877
|
max-height: 80%;
|
|
871
878
|
}
|
|
@@ -929,6 +936,9 @@ video:where(.vim-component,.vim-component *) {
|
|
|
929
936
|
.vc-max-w-full {
|
|
930
937
|
max-width: 100%;
|
|
931
938
|
}
|
|
939
|
+
.vc-max-w-md {
|
|
940
|
+
max-width: 28rem;
|
|
941
|
+
}
|
|
932
942
|
.vc-flex-1 {
|
|
933
943
|
flex: 1 1 0%;
|
|
934
944
|
}
|
|
@@ -982,6 +992,9 @@ video:where(.vim-component,.vim-component *) {
|
|
|
982
992
|
.vc-justify-evenly {
|
|
983
993
|
justify-content: space-evenly;
|
|
984
994
|
}
|
|
995
|
+
.vc-gap-1 {
|
|
996
|
+
gap: 0.25rem;
|
|
997
|
+
}
|
|
985
998
|
.vc-gap-2 {
|
|
986
999
|
gap: 0.5rem;
|
|
987
1000
|
}
|
|
@@ -1010,9 +1023,6 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1010
1023
|
text-overflow: ellipsis;
|
|
1011
1024
|
white-space: nowrap;
|
|
1012
1025
|
}
|
|
1013
|
-
.vc-text-clip {
|
|
1014
|
-
text-overflow: clip;
|
|
1015
|
-
}
|
|
1016
1026
|
.vc-whitespace-nowrap {
|
|
1017
1027
|
white-space: nowrap;
|
|
1018
1028
|
}
|
|
@@ -1098,6 +1108,9 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1098
1108
|
--tw-bg-opacity: 1 !important;
|
|
1099
1109
|
background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)) !important;
|
|
1100
1110
|
}
|
|
1111
|
+
.vc-bg-gray {
|
|
1112
|
+
background-color: var(--c-gray);
|
|
1113
|
+
}
|
|
1101
1114
|
.vc-bg-gray-light {
|
|
1102
1115
|
background-color: var(--c-light-gray);
|
|
1103
1116
|
}
|
|
@@ -1110,9 +1123,6 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1110
1123
|
.vc-bg-gray-warm {
|
|
1111
1124
|
background-color: var(--c-dark-gray-warm);
|
|
1112
1125
|
}
|
|
1113
|
-
.vc-bg-overflow {
|
|
1114
|
-
background-color: var(--c-overflow);
|
|
1115
|
-
}
|
|
1116
1126
|
.vc-bg-primary {
|
|
1117
1127
|
background-color: var(--c-primary);
|
|
1118
1128
|
}
|
|
@@ -1257,6 +1267,9 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1257
1267
|
.vc-text-primary {
|
|
1258
1268
|
color: var(--c-primary);
|
|
1259
1269
|
}
|
|
1270
|
+
.vc-text-secondary-yellow {
|
|
1271
|
+
color: var(--c-secondary-yellow);
|
|
1272
|
+
}
|
|
1260
1273
|
.vc-text-white {
|
|
1261
1274
|
--tw-text-opacity: 1;
|
|
1262
1275
|
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
|
|
@@ -1304,11 +1317,6 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1304
1317
|
--tw-saturate: saturate(0);
|
|
1305
1318
|
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
1319
|
}
|
|
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
1320
|
.\!vc-transition-opacity {
|
|
1313
1321
|
transition-property: opacity !important;
|
|
1314
1322
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
|
|
@@ -1514,7 +1522,7 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1514
1522
|
padding-left: min(2cqmin, 1rem);
|
|
1515
1523
|
padding-right: min(2cqmin, 1rem);
|
|
1516
1524
|
}
|
|
1517
|
-
|
|
1525
|
+
|
|
1518
1526
|
.vim-control-bar-button {
|
|
1519
1527
|
height: min(8cqmin, 2.5rem);
|
|
1520
1528
|
width: min(8cqmin, 2.5rem);
|
|
@@ -1522,14 +1530,33 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1522
1530
|
.vim-control-bar-section {
|
|
1523
1531
|
gap: min(2cqmin, 0.5rem)
|
|
1524
1532
|
}
|
|
1525
|
-
|
|
1533
|
+
|
|
1534
|
+
.vim-rest-of-screen .vc-text-xs {
|
|
1535
|
+
font-size: min(2.0cqmin, 0.75rem);
|
|
1536
|
+
line-height: min(2.5cqmin, 0.85rem);
|
|
1537
|
+
}
|
|
1538
|
+
|
|
1539
|
+
.vim-control-bar-counter{
|
|
1540
|
+
margin-bottom: min(1cqmin, 0.5rem);
|
|
1541
|
+
margin-right: min(2cqmin, 0.5rem);
|
|
1542
|
+
margin-left: max(-2cqmin, -0.75rem);
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
.vim-axes-panel,
|
|
1546
|
+
.vim-axes-panel-empty {
|
|
1526
1547
|
border-radius: min(3cqmin, 1rem);
|
|
1527
1548
|
top: min(2cqmin, 1.5rem);
|
|
1528
1549
|
right: min(2cqmin, 1.5rem);
|
|
1529
1550
|
width: min(22cqmin, 112px);
|
|
1551
|
+
}
|
|
1552
|
+
|
|
1553
|
+
.vim-axes-panel {
|
|
1530
1554
|
height: min(28cqmin, 144px);
|
|
1531
1555
|
}
|
|
1532
|
-
|
|
1556
|
+
|
|
1557
|
+
.vim-axes-panel-empty {
|
|
1558
|
+
height: min(22cqmin, 112px);
|
|
1559
|
+
}
|
|
1533
1560
|
.vim-axes-panel-gizmo{
|
|
1534
1561
|
top: min(1cqmin, 0.5rem);
|
|
1535
1562
|
left: min(1cqmin, 0.5rem);
|
|
@@ -1896,27 +1923,14 @@ video:where(.vim-component,.vim-component *) {
|
|
|
1896
1923
|
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
1897
1924
|
}
|
|
1898
1925
|
|
|
1899
|
-
.hover\:vc-border-primary-royal:hover {
|
|
1900
|
-
border-color: var(--c-primary-royal);
|
|
1901
|
-
}
|
|
1902
|
-
|
|
1903
1926
|
.hover\:vc-bg-gray-lightest:hover {
|
|
1904
1927
|
background-color: var(--c-lightest-gray);
|
|
1905
1928
|
}
|
|
1906
1929
|
|
|
1907
|
-
.hover\:vc-bg-primary-royal:hover {
|
|
1908
|
-
background-color: var(--c-primary-royal);
|
|
1909
|
-
}
|
|
1910
|
-
|
|
1911
1930
|
.hover\:vc-text-primary-royal:hover {
|
|
1912
1931
|
color: var(--c-primary-royal);
|
|
1913
1932
|
}
|
|
1914
1933
|
|
|
1915
|
-
.hover\:vc-text-white:hover {
|
|
1916
|
-
--tw-text-opacity: 1;
|
|
1917
|
-
color: rgb(255 255 255 / var(--tw-text-opacity, 1));
|
|
1918
|
-
}
|
|
1919
|
-
|
|
1920
1934
|
.hover\:vc-opacity-100:hover {
|
|
1921
1935
|
opacity: 1;
|
|
1922
1936
|
}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module viw-webgl-viewer/inputs
|
|
3
3
|
*/
|
|
4
|
-
import { Viewer } from '../viewer';
|
|
5
4
|
/**
|
|
6
5
|
* Base class for various input handlers.
|
|
7
6
|
* It provides convenience to register to and unregister from events.
|
|
8
7
|
*/
|
|
9
|
-
export declare class
|
|
10
|
-
protected
|
|
11
|
-
protected
|
|
12
|
-
constructor(
|
|
13
|
-
protected reg
|
|
8
|
+
export declare class BaseInputHandler {
|
|
9
|
+
protected _canvas: HTMLCanvasElement;
|
|
10
|
+
protected _disconnect: Function[];
|
|
11
|
+
constructor(canvas: HTMLCanvasElement);
|
|
12
|
+
protected reg<T extends Event>(element: Document | HTMLElement | Window, eventType: string, callback: (event: T) => void): void;
|
|
14
13
|
/**
|
|
15
14
|
* Register handler to related browser events
|
|
16
15
|
* Prevents double registrations
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './inputHandler';
|
|
2
|
+
export { PointerMode } from './inputHandler';
|
|
3
|
+
export type * from './baseInputHandler';
|
|
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,21 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
export interface IInputAdapter {
|
|
3
|
+
init: () => void;
|
|
4
|
+
toggleOrthographic: () => void;
|
|
5
|
+
resetCamera: () => void;
|
|
6
|
+
clearSelection: () => void;
|
|
7
|
+
frameCamera: () => void;
|
|
8
|
+
moveCamera: (value: THREE.Vector3) => void;
|
|
9
|
+
orbitCamera: (value: THREE.Vector2) => void;
|
|
10
|
+
rotateCamera: (value: THREE.Vector2) => void;
|
|
11
|
+
panCamera: (value: THREE.Vector2) => void;
|
|
12
|
+
dollyCamera: (value: THREE.Vector2) => void;
|
|
13
|
+
keyDown: (keyCode: string) => boolean;
|
|
14
|
+
keyUp: (keyCode: string) => boolean;
|
|
15
|
+
mouseDown: (pos: THREE.Vector2, button: number) => void;
|
|
16
|
+
mouseUp: (pos: THREE.Vector2, button: number) => void;
|
|
17
|
+
mouseMove: (pos: THREE.Vector2) => void;
|
|
18
|
+
selectAtPointer: (pos: THREE.Vector2, add: boolean) => void;
|
|
19
|
+
frameAtPointer: (pos: THREE.Vector2) => void;
|
|
20
|
+
zoom: (value: number) => void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
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
|
+
import { IInputAdapter } from './inputAdapter';
|
|
7
|
+
export declare enum PointerMode {
|
|
8
|
+
ORBIT = "orbit",
|
|
9
|
+
LOOK = "look",
|
|
10
|
+
PAN = "pan",
|
|
11
|
+
ZOOM = "zoom",
|
|
12
|
+
RECT = "rect"
|
|
13
|
+
}
|
|
14
|
+
interface InputSettings {
|
|
15
|
+
orbit: boolean;
|
|
16
|
+
scrollSpeed: number;
|
|
17
|
+
moveSpeed: number;
|
|
18
|
+
rotateSpeed: number;
|
|
19
|
+
orbitSpeed: number;
|
|
20
|
+
}
|
|
21
|
+
export declare class InputHandler extends BaseInputHandler {
|
|
22
|
+
/**
|
|
23
|
+
* Touch input handler
|
|
24
|
+
*/
|
|
25
|
+
touch: TouchHandler;
|
|
26
|
+
/**
|
|
27
|
+
* Mouse input handler
|
|
28
|
+
*/
|
|
29
|
+
mouse: MouseHandler;
|
|
30
|
+
/**
|
|
31
|
+
* Keyboard input handler
|
|
32
|
+
*/
|
|
33
|
+
keyboard: KeyboardHandler;
|
|
34
|
+
scrollSpeed: number;
|
|
35
|
+
private _moveSpeed;
|
|
36
|
+
rotateSpeed: number;
|
|
37
|
+
orbitSpeed: number;
|
|
38
|
+
private _pointerActive;
|
|
39
|
+
private _pointerFallback;
|
|
40
|
+
private _pointerOverride;
|
|
41
|
+
private _onPointerOverrideChanged;
|
|
42
|
+
private _onPointerModeChanged;
|
|
43
|
+
private _onSettingsChanged;
|
|
44
|
+
private _adapter;
|
|
45
|
+
constructor(canvas: HTMLCanvasElement, adapter: IInputAdapter, settings?: Partial<InputSettings>);
|
|
46
|
+
getZoomValue(value: number): number;
|
|
47
|
+
init(): void;
|
|
48
|
+
get moveSpeed(): number;
|
|
49
|
+
set moveSpeed(value: number);
|
|
50
|
+
get onSettingsChanged(): import("ste-signals").ISignal;
|
|
51
|
+
/**
|
|
52
|
+
* Returns the last main mode (orbit, look) that was active.
|
|
53
|
+
*/
|
|
54
|
+
get pointerFallback(): PointerMode;
|
|
55
|
+
/**
|
|
56
|
+
* Returns current pointer mode.
|
|
57
|
+
*/
|
|
58
|
+
get pointerActive(): PointerMode;
|
|
59
|
+
/**
|
|
60
|
+
* A temporary pointer mode used for temporary icons.
|
|
61
|
+
*/
|
|
62
|
+
get pointerOverride(): PointerMode;
|
|
63
|
+
set pointerOverride(value: PointerMode | undefined);
|
|
64
|
+
/**
|
|
65
|
+
* Changes pointer interaction mode. Look mode will set camera orbitMode to false.
|
|
66
|
+
*/
|
|
67
|
+
set pointerActive(value: PointerMode);
|
|
68
|
+
/**
|
|
69
|
+
* Event called when pointer interaction mode changes.
|
|
70
|
+
*/
|
|
71
|
+
get onPointerModeChanged(): import("ste-signals").ISignal;
|
|
72
|
+
/**
|
|
73
|
+
* Event called when the pointer is temporarily overriden.
|
|
74
|
+
*/
|
|
75
|
+
get onPointerOverrideChanged(): import("ste-signals").ISignal;
|
|
76
|
+
private _onContextMenu;
|
|
77
|
+
/**
|
|
78
|
+
* Event called when when context menu could be displayed
|
|
79
|
+
*/
|
|
80
|
+
get onContextMenu(): import("ste-simple-events").ISimpleEvent<THREE.Vector2>;
|
|
81
|
+
/**
|
|
82
|
+
* Calls context menu action
|
|
83
|
+
*/
|
|
84
|
+
ContextMenu(position: THREE.Vector2 | undefined): void;
|
|
85
|
+
/**
|
|
86
|
+
* Register inputs handlers for default viewer behavior
|
|
87
|
+
*/
|
|
88
|
+
registerAll(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Unregisters all input handlers
|
|
91
|
+
*/
|
|
92
|
+
unregisterAll: () => void;
|
|
93
|
+
/**
|
|
94
|
+
* Resets all input state
|
|
95
|
+
*/
|
|
96
|
+
resetAll(): void;
|
|
97
|
+
dispose(): void;
|
|
98
|
+
}
|
|
99
|
+
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,27 @@
|
|
|
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
|
+
private _doubleClickHandler;
|
|
9
|
+
onButtonDown: (pos: THREE.Vector2, button: number) => void;
|
|
10
|
+
onButtonUp: (pos: THREE.Vector2, button: number) => void;
|
|
11
|
+
onMouseMove: (event: THREE.Vector2) => void;
|
|
12
|
+
onDrag: DragCallback;
|
|
13
|
+
onClick: (position: THREE.Vector2, ctrl: boolean) => void;
|
|
14
|
+
onDoubleClick: (position: THREE.Vector2) => void;
|
|
15
|
+
onWheel: (value: number, ctrl: boolean) => void;
|
|
16
|
+
constructor(canvas: HTMLCanvasElement);
|
|
17
|
+
protected addListeners(): void;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
private handlePointerDown;
|
|
20
|
+
private handlePointerUp;
|
|
21
|
+
private handleMouseClick;
|
|
22
|
+
private handlePointerMove;
|
|
23
|
+
private handleDoubleClick;
|
|
24
|
+
private onMouseScroll;
|
|
25
|
+
private relativePosition;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
/**
|
|
11
|
+
* Interface for raycasting against a 3D scene.
|
|
12
|
+
* @template T - The type of object to raycast against.
|
|
13
|
+
*/
|
|
14
|
+
export interface IRaycaster<T> {
|
|
15
|
+
/**
|
|
16
|
+
* Raycasts from camera to the screen position to find the first object hit.
|
|
17
|
+
* @param position - The screen position to raycast from.
|
|
18
|
+
* @returns A promise that resolves to the raycast result.
|
|
19
|
+
*/
|
|
20
|
+
raycastFromScreen(position: THREE.Vector2): Promise<IRaycastResult<T>>;
|
|
21
|
+
/**
|
|
22
|
+
* Raycasts from camera to world position to find the first object hit.
|
|
23
|
+
* @param position - The world position to raycast from.
|
|
24
|
+
* @returns A promise that resolves to the raycast result.
|
|
25
|
+
*/
|
|
26
|
+
raycastFromWorld(position: THREE.Vector3): Promise<IRaycastResult<T>>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { ISignal } from "ste-signals";
|
|
2
|
+
import { IVimElement, IVim } from "./vim";
|
|
3
|
+
import { THREE } from "../..";
|
|
4
|
+
export interface ISelectionAdapter<T extends IVimElement> {
|
|
5
|
+
outline(target: T, state: boolean): void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Selection manager that supports adding, removing, toggling, and querying selected objects.
|
|
9
|
+
* The selection change signal is debounced to dispatch only once per animation frame.
|
|
10
|
+
*/
|
|
11
|
+
export declare class Selection<T extends IVimElement> {
|
|
12
|
+
private _onSelectionChanged;
|
|
13
|
+
private _selection;
|
|
14
|
+
private _adapter;
|
|
15
|
+
/**
|
|
16
|
+
* If true, reselecting the currently selected single target will toggle it instead of doing nothing.
|
|
17
|
+
*/
|
|
18
|
+
toggleOnRepeatSelect: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* If true, the selection manager is enabled and can modify the selection.
|
|
21
|
+
*/
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Creates a new Selection manager.
|
|
25
|
+
* @param adapter - Adapter responsible for visual selection feedback.
|
|
26
|
+
*/
|
|
27
|
+
constructor(adapter: ISelectionAdapter<T>);
|
|
28
|
+
/**
|
|
29
|
+
* Checks whether a specific object is currently selected.
|
|
30
|
+
* @param target - The target to check.
|
|
31
|
+
* @returns `true` if the object is selected; otherwise, `false`.
|
|
32
|
+
*/
|
|
33
|
+
has(target: T): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the number of selected objects.
|
|
36
|
+
* @returns The count of selected items.
|
|
37
|
+
*/
|
|
38
|
+
count(): number;
|
|
39
|
+
/**
|
|
40
|
+
* Checks if there is at least one selected object.
|
|
41
|
+
* @returns `true` if the selection is not empty.
|
|
42
|
+
*/
|
|
43
|
+
any(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Signal that fires when the selection changes.
|
|
46
|
+
*/
|
|
47
|
+
get onSelectionChanged(): ISignal;
|
|
48
|
+
/**
|
|
49
|
+
* Normalizes a value to an array of objects.
|
|
50
|
+
* @param oneOrMore - A single object or an array of objects.
|
|
51
|
+
* @returns An array of objects.
|
|
52
|
+
*/
|
|
53
|
+
private toArray;
|
|
54
|
+
/**
|
|
55
|
+
* Replaces the current selection with the given object(s).
|
|
56
|
+
* If `toggleOnRepeatSelect` is true and the object is already the only selected one, it toggles it instead.
|
|
57
|
+
* @param objectOrObjects - Object(s) to select, or `undefined` to clear the selection.
|
|
58
|
+
*/
|
|
59
|
+
select(object: T): void;
|
|
60
|
+
select(objects: T[]): void;
|
|
61
|
+
/**
|
|
62
|
+
* Toggles the selection state of the given object(s).
|
|
63
|
+
* @param objectOrObjects - Object(s) to toggle.
|
|
64
|
+
*/
|
|
65
|
+
toggle(object: T): void;
|
|
66
|
+
toggle(objects: T[]): void;
|
|
67
|
+
/**
|
|
68
|
+
* Adds the given object(s) to the selection.
|
|
69
|
+
* @param objectOrObjects - Object(s) to add.
|
|
70
|
+
*/
|
|
71
|
+
add(object: T): void;
|
|
72
|
+
add(objects: T[]): void;
|
|
73
|
+
/**
|
|
74
|
+
* Removes the given object(s) from the selection.
|
|
75
|
+
* @param objectOrObjects - Object(s) to remove.
|
|
76
|
+
*/
|
|
77
|
+
remove(object: T): void;
|
|
78
|
+
remove(objects: T[]): void;
|
|
79
|
+
/**
|
|
80
|
+
* Clears the entire selection.
|
|
81
|
+
*/
|
|
82
|
+
clear(): void;
|
|
83
|
+
/**
|
|
84
|
+
* Returns an array of all currently selected objects.
|
|
85
|
+
* @returns An array of selected objects.
|
|
86
|
+
*/
|
|
87
|
+
getAll(): T[];
|
|
88
|
+
/**
|
|
89
|
+
* Returns all selected objects belonging to a specific VIM model.
|
|
90
|
+
* @param vim - The VIM instance to filter by.
|
|
91
|
+
* @returns An array of selected objects from the specified VIM.
|
|
92
|
+
*/
|
|
93
|
+
getFromVim(vim: IVim<T>): T[];
|
|
94
|
+
/**
|
|
95
|
+
* Removes all selected objects that belong to a specific VIM model.
|
|
96
|
+
* @param vim - The VIM instance to remove selections from.
|
|
97
|
+
*/
|
|
98
|
+
removeFromVim(vim: IVim<T>): void;
|
|
99
|
+
/**
|
|
100
|
+
* Computes the bounding box that contains all selected objects.
|
|
101
|
+
* Skips objects that do not implement `getBoundingBox()`.
|
|
102
|
+
* @returns A promise resolving to the combined bounding box.
|
|
103
|
+
*/
|
|
104
|
+
getBoundingBox(): Promise<THREE.Box3 | undefined>;
|
|
105
|
+
}
|
|
@@ -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
|
}
|