vim-web 0.3.44-dev.8 → 0.3.44-dev.80
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} +6 -6
- package/dist/types/core-viewers/shared/index.d.ts +9 -0
- package/dist/types/core-viewers/shared/inputHandler.d.ts +118 -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 +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 +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 +16 -20
- 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 +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/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/generic/genericField.d.ts +28 -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 +5 -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 +7 -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 -1
- 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 +13 -52
- 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} +9 -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 +17280 -17199
- package/dist/vim-web.iife.js.map +1 -1
- package/dist/vim-web.js +17288 -17207
- 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/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
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
* @module viw-webgl-viewer/gizmos/measure
|
|
3
3
|
*/
|
|
4
4
|
import * as THREE from 'three';
|
|
5
|
-
import {
|
|
5
|
+
import { IRaycastResult } from '../../raycaster';
|
|
6
6
|
import { Viewer } from '../../viewer';
|
|
7
|
-
import { MeasureStage } from './measureFlow';
|
|
8
7
|
/**
|
|
9
8
|
* Interacts with the measure tool.
|
|
10
9
|
*/
|
|
@@ -31,7 +30,7 @@ export interface IMeasure {
|
|
|
31
30
|
* Promise is resolved if flow is succesfully completed, rejected otherwise.
|
|
32
31
|
* Do not override viewer.onMouseClick while this flow is active.
|
|
33
32
|
*/
|
|
34
|
-
start(
|
|
33
|
+
start(): Promise<void>;
|
|
35
34
|
/**
|
|
36
35
|
* Aborts the current measure flow, fails the related promise.
|
|
37
36
|
*/
|
|
@@ -41,6 +40,7 @@ export interface IMeasure {
|
|
|
41
40
|
*/
|
|
42
41
|
clear(): void;
|
|
43
42
|
}
|
|
43
|
+
export type MeasureStage = 'ready' | 'active' | 'done' | 'failed';
|
|
44
44
|
/**
|
|
45
45
|
* Manages measure flow and gizmos
|
|
46
46
|
*/
|
|
@@ -50,8 +50,9 @@ export declare class Measure implements IMeasure {
|
|
|
50
50
|
private _startPos;
|
|
51
51
|
private _endPos;
|
|
52
52
|
private _measurement;
|
|
53
|
-
private
|
|
54
|
-
private
|
|
53
|
+
private _previousOnClick;
|
|
54
|
+
private _promise;
|
|
55
|
+
private _stage;
|
|
55
56
|
/**
|
|
56
57
|
* Start point of the current measure or undefined if no active measure.
|
|
57
58
|
*/
|
|
@@ -75,23 +76,16 @@ export declare class Measure implements IMeasure {
|
|
|
75
76
|
* Promise is resolved if flow is succesfully completed, rejected otherwise.
|
|
76
77
|
* Do not override viewer.onMouseClick while this flow is active.
|
|
77
78
|
*/
|
|
78
|
-
start(
|
|
79
|
+
start(): Promise<void>;
|
|
80
|
+
private onClick;
|
|
79
81
|
/**
|
|
80
82
|
* Should be private.
|
|
81
83
|
*/
|
|
82
|
-
onFirstClick(
|
|
84
|
+
onFirstClick(hit: IRaycastResult): void;
|
|
83
85
|
/**
|
|
84
86
|
* Should be private.
|
|
85
87
|
*/
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Should be private.
|
|
89
|
-
*/
|
|
90
|
-
onMouseIdle(action: InputAction): void;
|
|
91
|
-
/**
|
|
92
|
-
* Should be private.
|
|
93
|
-
*/
|
|
94
|
-
onSecondClick(action: InputAction): boolean;
|
|
88
|
+
onSecondClick(hit: IRaycastResult): boolean;
|
|
95
89
|
/**
|
|
96
90
|
* Aborts the current measure flow, fails the related promise.
|
|
97
91
|
*/
|
|
@@ -57,11 +57,10 @@ export declare class SectionBox {
|
|
|
57
57
|
*/
|
|
58
58
|
constructor(viewer: Viewer);
|
|
59
59
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* To programmatically update the box, see {@link fitBox}.
|
|
60
|
+
* Returns a copy of the current section box.
|
|
61
|
+
* To programmatically update the box, see {@link setBox}.
|
|
63
62
|
*/
|
|
64
|
-
|
|
63
|
+
getBox(): THREE.Box3;
|
|
65
64
|
/**
|
|
66
65
|
* Determines whether the section gizmo applies clipping planes to the model.
|
|
67
66
|
*
|
|
@@ -88,7 +87,7 @@ export declare class SectionBox {
|
|
|
88
87
|
* @param box - The bounding box to match (required).
|
|
89
88
|
* @param padding - The scalar amount by which to expand the bounding box. Default is `1`.
|
|
90
89
|
*/
|
|
91
|
-
|
|
90
|
+
setBox(box: THREE.Box3): void;
|
|
92
91
|
/**
|
|
93
92
|
* Updates the section box to match the current size of `this.section.box`.
|
|
94
93
|
*
|
|
@@ -3,7 +3,7 @@ import { SectionBoxMesh } from './SectionBoxMesh';
|
|
|
3
3
|
import { SectionBoxOutline } from './sectionBoxOutline';
|
|
4
4
|
import { SectionBoxHandles } from './sectionBoxHandles';
|
|
5
5
|
import { Renderer } from '../../rendering/renderer';
|
|
6
|
-
import { ICamera } from '../../camera
|
|
6
|
+
import { ICamera } from '../../camera';
|
|
7
7
|
export declare class SectionBoxGizmo {
|
|
8
8
|
private _renderer;
|
|
9
9
|
readonly cube: SectionBoxMesh;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
|
-
import { ICamera } from '../../camera
|
|
3
|
-
export type
|
|
2
|
+
import { ICamera } from '../../camera';
|
|
3
|
+
export type AxisName = 'x' | 'y' | 'z';
|
|
4
4
|
export declare class SectionBoxHandle extends THREE.Mesh {
|
|
5
|
-
readonly axis:
|
|
5
|
+
readonly axis: AxisName;
|
|
6
6
|
readonly sign: number;
|
|
7
7
|
private _forward;
|
|
8
8
|
private _color;
|
|
9
9
|
private _highlightColor;
|
|
10
10
|
private _materials;
|
|
11
|
+
private _camera;
|
|
11
12
|
private _camSub;
|
|
12
|
-
constructor(axes:
|
|
13
|
+
constructor(axes: AxisName, sign: number, size: number, color?: THREE.Color);
|
|
13
14
|
trackCamera(camera: ICamera): void;
|
|
15
|
+
update(): void;
|
|
14
16
|
setPosition(position: THREE.Vector3): void;
|
|
15
17
|
get forward(): THREE.Vector3;
|
|
16
18
|
highlight(value: boolean): void;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import { SectionBoxHandle } from './sectionBoxHandle';
|
|
6
|
-
import { ICamera } from '../../camera
|
|
6
|
+
import { ICamera } from '../../camera';
|
|
7
7
|
export declare class SectionBoxHandles {
|
|
8
8
|
readonly up: SectionBoxHandle;
|
|
9
9
|
readonly down: SectionBoxHandle;
|
|
@@ -28,10 +28,8 @@ export declare class BoxInputs {
|
|
|
28
28
|
private _raycaster;
|
|
29
29
|
/** The box state before the current drag. */
|
|
30
30
|
private _lastBox;
|
|
31
|
-
/** A
|
|
32
|
-
private
|
|
33
|
-
/** The ID of the pointer that is captured, if any. */
|
|
34
|
-
private _capturedPointerId;
|
|
31
|
+
/** A callback to restore the original input listeners after unregistering. */
|
|
32
|
+
private _restoreOriginalInputs;
|
|
35
33
|
/**
|
|
36
34
|
* Called when the pointer enters or leaves a handle face.
|
|
37
35
|
* @param normal - The normal (forward) vector of the hovered handle, or a zero vector if none.
|
|
@@ -65,35 +63,6 @@ export declare class BoxInputs {
|
|
|
65
63
|
* and resetting drag state.
|
|
66
64
|
*/
|
|
67
65
|
unregister(): void;
|
|
68
|
-
/**
|
|
69
|
-
* Indicates if a pointer is currently captured for dragging.
|
|
70
|
-
*/
|
|
71
|
-
get pointerCaptured(): boolean;
|
|
72
|
-
/**
|
|
73
|
-
* A helper method to attach an event listener and store its unregister callback.
|
|
74
|
-
*
|
|
75
|
-
* @param handler - The DOM element or Window to attach the listener to.
|
|
76
|
-
* @param type - The pointer event type, e.g. 'pointerdown'.
|
|
77
|
-
* @param listener - The event handler function.
|
|
78
|
-
*/
|
|
79
|
-
private reg;
|
|
80
|
-
/**
|
|
81
|
-
* Called when the pointer leaves the canvas. If not dragging,
|
|
82
|
-
* invokes {@link onFaceEnter} to indicate no active handle is hovered.
|
|
83
|
-
*
|
|
84
|
-
* @param event - The pointerleave event.
|
|
85
|
-
*/
|
|
86
|
-
private onPointerLeave;
|
|
87
|
-
/**
|
|
88
|
-
* Sets pointer capture on the canvas for a specific pointer (ID).
|
|
89
|
-
*
|
|
90
|
-
* @param pointerId - The pointer ID to capture.
|
|
91
|
-
*/
|
|
92
|
-
private capturePointer;
|
|
93
|
-
/**
|
|
94
|
-
* Releases any captured pointer on the canvas, if present.
|
|
95
|
-
*/
|
|
96
|
-
private releasePointer;
|
|
97
66
|
/**
|
|
98
67
|
* Handles pointer movement events.
|
|
99
68
|
* - If dragging, calls {@link onDrag}.
|
|
@@ -131,13 +100,6 @@ export declare class BoxInputs {
|
|
|
131
100
|
* @returns A **new** `Box3` instance with updated min/max coordinates.
|
|
132
101
|
*/
|
|
133
102
|
private stretch;
|
|
134
|
-
/**
|
|
135
|
-
* Prepares the internal raycaster for a given 2D pointer position.
|
|
136
|
-
*
|
|
137
|
-
* @param position - The pointer position in canvas coordinates.
|
|
138
|
-
* @returns The updated raycaster pointing from the camera through this position.
|
|
139
|
-
*/
|
|
140
|
-
private getRaycaster;
|
|
141
103
|
/**
|
|
142
104
|
* Raycasts into the handle meshes from the given pointer position.
|
|
143
105
|
*
|
|
@@ -152,4 +114,5 @@ export declare class BoxInputs {
|
|
|
152
114
|
* @returns The intersection point in 3D space, or `null` if none.
|
|
153
115
|
*/
|
|
154
116
|
private raycastPlane;
|
|
117
|
+
private setupRaycaster;
|
|
155
118
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './viewer';
|
|
2
|
+
export * from './settings';
|
|
3
|
+
export type * from './environment';
|
|
4
|
+
export type * from './gizmos';
|
|
5
|
+
export type * from './raycaster';
|
|
6
|
+
export { Layers } from './raycaster';
|
|
7
|
+
export type * from './selection';
|
|
8
|
+
export type * from './viewport';
|
|
9
|
+
export type * from './rendering';
|
|
10
|
+
export type * from './camera';
|
|
@@ -2,88 +2,68 @@
|
|
|
2
2
|
* @module viw-webgl-viewer
|
|
3
3
|
*/
|
|
4
4
|
import * as THREE from 'three';
|
|
5
|
-
import {
|
|
5
|
+
import { Element3D } from '../loader/element3d';
|
|
6
6
|
import { RenderScene } from './rendering/renderScene';
|
|
7
|
-
import { Viewport } from './viewport';
|
|
8
7
|
import { Camera } from './camera/camera';
|
|
9
8
|
import { Renderer } from './rendering/renderer';
|
|
10
|
-
import {
|
|
9
|
+
import { Marker } from './gizmos/markers/gizmoMarker';
|
|
10
|
+
import type { IRaycaster as IRaycasterBase, IRaycastResult as IRaycastResultBase } from '../../shared';
|
|
11
11
|
/**
|
|
12
|
-
* Type alias for THREE
|
|
12
|
+
* Type alias for an array of THREE.Intersection objects.
|
|
13
13
|
*/
|
|
14
14
|
export type ThreeIntersectionList = THREE.Intersection<THREE.Object3D<THREE.Object3DEventMap>>[];
|
|
15
|
-
export type
|
|
16
|
-
export type
|
|
15
|
+
export type RaycastableObject = Element3D | Marker;
|
|
16
|
+
export type IRaycastResult = IRaycastResultBase<RaycastableObject>;
|
|
17
|
+
export type IRaycaster = IRaycasterBase<RaycastableObject>;
|
|
18
|
+
export declare enum Layers {
|
|
19
|
+
Default = 0,
|
|
20
|
+
NoRaycast = 1
|
|
21
|
+
}
|
|
17
22
|
/**
|
|
18
|
-
*
|
|
23
|
+
* A simple container for raycast results.
|
|
19
24
|
*/
|
|
20
|
-
export declare class RaycastResult {
|
|
21
|
-
object:
|
|
25
|
+
export declare class RaycastResult implements IRaycastResult {
|
|
26
|
+
object: Element3D | Marker | undefined;
|
|
22
27
|
intersections: ThreeIntersectionList;
|
|
23
28
|
firstHit: THREE.Intersection | undefined;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
private getVimObjectFromHit;
|
|
28
|
-
get isHit(): boolean;
|
|
29
|
-
get distance(): number;
|
|
30
|
-
get position(): THREE.Vector3;
|
|
31
|
-
get threeId(): number;
|
|
32
|
-
get faceIndex(): number;
|
|
29
|
+
get worldNormal(): THREE.Vector3;
|
|
30
|
+
get worldPosition(): THREE.Vector3;
|
|
31
|
+
constructor(intersections: ThreeIntersectionList, firstHit?: THREE.Intersection, object?: Element3D | Marker);
|
|
33
32
|
}
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Performs raycasting operations.
|
|
35
|
+
*/
|
|
36
|
+
export declare class Raycaster implements IRaycaster {
|
|
36
37
|
private _camera;
|
|
37
38
|
private _scene;
|
|
38
39
|
private _renderer;
|
|
39
40
|
private _raycaster;
|
|
40
|
-
constructor(
|
|
41
|
+
constructor(camera: Camera, scene: RenderScene, renderer: Renderer);
|
|
41
42
|
/**
|
|
42
|
-
* Performs a raycast
|
|
43
|
-
*
|
|
43
|
+
* Performs a raycast from the camera using normalized screen coordinates.
|
|
44
|
+
* Coordinates must be within [0, 1] for both x and y.
|
|
44
45
|
*/
|
|
45
|
-
|
|
46
|
-
private filterHits;
|
|
46
|
+
raycastFromScreen(position: THREE.Vector2): Promise<RaycastResult>;
|
|
47
47
|
/**
|
|
48
|
-
* Performs a raycast
|
|
49
|
-
* @param {THREE.Vector3} position - The world position for raycasting.
|
|
48
|
+
* Performs a raycast from the camera towards a specified world position.
|
|
50
49
|
*/
|
|
51
|
-
|
|
50
|
+
raycastFromWorld(position: THREE.Vector3): Promise<RaycastResult>;
|
|
51
|
+
private filterHits;
|
|
52
52
|
/**
|
|
53
|
-
*
|
|
53
|
+
* Processes the list of intersections to determine the first valid hit.
|
|
54
|
+
* It first checks for a marker hit, then for a model object hit.
|
|
54
55
|
*/
|
|
55
|
-
|
|
56
|
+
private processIntersections;
|
|
56
57
|
/**
|
|
57
|
-
*
|
|
58
|
+
* Extracts the core model object from a raycast hit.
|
|
58
59
|
*/
|
|
59
|
-
|
|
60
|
+
private getVimObjectFromHit;
|
|
60
61
|
/**
|
|
61
|
-
*
|
|
62
|
-
* @param {THREE.Vector2} position - The screen position for raycasting.
|
|
63
|
-
* @returns {THREE.Raycaster} A raycaster object for performing raycasting.
|
|
62
|
+
* Creates a WebglRaycastResult from a list of intersections by processing the hits.
|
|
64
63
|
*/
|
|
65
|
-
|
|
64
|
+
private createResultFromIntersections;
|
|
66
65
|
}
|
|
67
66
|
/**
|
|
68
|
-
*
|
|
67
|
+
* Converts normalized screen coordinates (0-1 range) into Three.js NDC ([-1, 1] range).
|
|
69
68
|
*/
|
|
70
|
-
export declare
|
|
71
|
-
readonly position: THREE.Vector2;
|
|
72
|
-
readonly modifier: ActionModifier;
|
|
73
|
-
readonly type: ActionType;
|
|
74
|
-
private _raycaster;
|
|
75
|
-
constructor(type: ActionType, modifier: ActionModifier, position: THREE.Vector2, raycaster: Raycaster);
|
|
76
|
-
private _raycast;
|
|
77
|
-
/**
|
|
78
|
-
* A THREE.Raycaster object for custom raycasting.
|
|
79
|
-
*/
|
|
80
|
-
get raycaster(): THREE.Raycaster;
|
|
81
|
-
/**
|
|
82
|
-
* Performs raycasting for VIM objects at the current point. This operation can be computationally expensive.
|
|
83
|
-
*/
|
|
84
|
-
get raycast(): RaycastResult;
|
|
85
|
-
/**
|
|
86
|
-
* Returns the object at the current point. This operation can cause a computationally expensive raycast evaluation.
|
|
87
|
-
*/
|
|
88
|
-
get object(): Object3D | GizmoMarker;
|
|
89
|
-
}
|
|
69
|
+
export declare function threeNDCFromVector2(position: THREE.Vector2): THREE.Vector2;
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import { Pass } from 'three/examples/jsm/postprocessing/Pass';
|
|
6
|
-
import {
|
|
6
|
+
import { Materials } from '../../loader/materials/materials';
|
|
7
7
|
/**
|
|
8
8
|
* Merges a source buffer into the the current write buffer.
|
|
9
9
|
*/
|
|
10
10
|
export declare class MergePass extends Pass {
|
|
11
11
|
private _fsQuad;
|
|
12
12
|
private _material;
|
|
13
|
-
constructor(source: THREE.Texture, materials?:
|
|
13
|
+
constructor(source: THREE.Texture, materials?: Materials);
|
|
14
14
|
get source(): THREE.Texture;
|
|
15
15
|
set source(value: THREE.Texture);
|
|
16
16
|
dispose(): void;
|
|
@@ -2,33 +2,33 @@
|
|
|
2
2
|
* @module viw-webgl-viewer/rendering
|
|
3
3
|
*/
|
|
4
4
|
import * as THREE from 'three';
|
|
5
|
-
import {
|
|
6
|
-
import { ModelMaterial } from '../../loader/materials/
|
|
5
|
+
import { WebglScene } from '../../loader/scene';
|
|
6
|
+
import { ModelMaterial } from '../../loader/materials/materials';
|
|
7
7
|
import { InstancedMesh } from '../../loader/progressive/instancedMesh';
|
|
8
8
|
/**
|
|
9
9
|
* Wrapper around the THREE scene that tracks bounding box and other information.
|
|
10
10
|
*/
|
|
11
11
|
export declare class RenderScene {
|
|
12
|
-
|
|
12
|
+
threeScene: THREE.Scene;
|
|
13
13
|
boxUpdated: boolean;
|
|
14
14
|
smallGhostThreshold: number | undefined;
|
|
15
15
|
private _vimScenes;
|
|
16
16
|
private _boundingBox;
|
|
17
17
|
private _memory;
|
|
18
18
|
private _2dCount;
|
|
19
|
+
private _outlineCount;
|
|
19
20
|
private _modelMaterial;
|
|
20
|
-
get meshes(): (import("../..").InsertableMesh | import("
|
|
21
|
+
get meshes(): (import("../..").InsertableMesh | import("../..").WebglMesh | InstancedMesh)[];
|
|
21
22
|
constructor();
|
|
22
23
|
get estimatedMemory(): number;
|
|
23
24
|
has2dObjects(): boolean;
|
|
24
|
-
hasOutline(): boolean;
|
|
25
25
|
/** Clears the scene updated flags */
|
|
26
26
|
clearUpdateFlags(): void;
|
|
27
27
|
/**
|
|
28
28
|
* Returns the bounding box encompasing all rendererd objects.
|
|
29
29
|
* @param target box in which to copy result, a new instance is created if undefined.
|
|
30
30
|
*/
|
|
31
|
-
getBoundingBox(target?: THREE.Box3): THREE.Box3;
|
|
31
|
+
getBoundingBox(target?: THREE.Box3): THREE.Box3 | undefined;
|
|
32
32
|
/**
|
|
33
33
|
* Returns the bounding box of the average center of all meshes.
|
|
34
34
|
* Less precise but is more stable against outliers.
|
|
@@ -37,13 +37,13 @@ export declare class RenderScene {
|
|
|
37
37
|
/**
|
|
38
38
|
* Add object to be rendered
|
|
39
39
|
*/
|
|
40
|
-
add(target:
|
|
40
|
+
add(target: WebglScene | THREE.Object3D): void;
|
|
41
41
|
private count2dObjects;
|
|
42
42
|
private unparent2dObjects;
|
|
43
43
|
/**
|
|
44
44
|
* Remove object from rendering
|
|
45
45
|
*/
|
|
46
|
-
remove(target:
|
|
46
|
+
remove(target: WebglScene | THREE.Object3D): void;
|
|
47
47
|
/**
|
|
48
48
|
* Removes all rendered objects
|
|
49
49
|
*/
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* @module viw-webgl-viewer/rendering
|
|
3
3
|
*/
|
|
4
4
|
import * as THREE from 'three';
|
|
5
|
-
import { IRenderer,
|
|
5
|
+
import { IRenderer, WebglScene } from '../../loader/scene';
|
|
6
6
|
import { Viewport } from '../viewport';
|
|
7
7
|
import { RenderScene } from './renderScene';
|
|
8
|
-
import { ModelMaterial,
|
|
8
|
+
import { ModelMaterial, Materials } from '../../loader/materials/materials';
|
|
9
9
|
import { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer';
|
|
10
10
|
import { Camera } from '../camera/camera';
|
|
11
11
|
import { RenderingSection } from './renderingSection';
|
|
@@ -41,6 +41,7 @@ export declare class Renderer implements IRenderer {
|
|
|
41
41
|
private _onBoxUpdated;
|
|
42
42
|
private _sceneUpdated;
|
|
43
43
|
private maxMemory;
|
|
44
|
+
private _outlineCount;
|
|
44
45
|
/**
|
|
45
46
|
* Indicates whether the scene should be re-rendered on change only.
|
|
46
47
|
*/
|
|
@@ -51,7 +52,7 @@ export declare class Renderer implements IRenderer {
|
|
|
51
52
|
*/
|
|
52
53
|
get needsUpdate(): boolean;
|
|
53
54
|
set needsUpdate(value: boolean);
|
|
54
|
-
constructor(scene: RenderScene, viewport: Viewport, materials:
|
|
55
|
+
constructor(scene: RenderScene, viewport: Viewport, materials: Materials, camera: Camera, settings: ViewerSettings);
|
|
55
56
|
/**
|
|
56
57
|
* Removes all objects from rendering and disposes the WebGL context.
|
|
57
58
|
*/
|
|
@@ -83,7 +84,7 @@ export declare class Renderer implements IRenderer {
|
|
|
83
84
|
* @param target - Box in which to copy the result. A new instance is created if undefined.
|
|
84
85
|
* @returns The bounding box encompassing all rendered objects.
|
|
85
86
|
*/
|
|
86
|
-
getBoundingBox(target?: THREE.Box3): THREE.Box3;
|
|
87
|
+
getBoundingBox(target?: THREE.Box3): THREE.Box3 | undefined;
|
|
87
88
|
/**
|
|
88
89
|
* Updates the global rendering bounding box.
|
|
89
90
|
* @param box - The new bounding box.
|
|
@@ -93,6 +94,8 @@ export declare class Renderer implements IRenderer {
|
|
|
93
94
|
* Notifies that a scene was updated this frame.
|
|
94
95
|
*/
|
|
95
96
|
notifySceneUpdate(): void;
|
|
97
|
+
addOutline(): void;
|
|
98
|
+
removeOutline(): void;
|
|
96
99
|
/**
|
|
97
100
|
* Renders what is in the camera's view.
|
|
98
101
|
*/
|
|
@@ -101,12 +104,12 @@ export declare class Renderer implements IRenderer {
|
|
|
101
104
|
* Adds an object to be rendered.
|
|
102
105
|
* @param target The object or scene to add for rendering.
|
|
103
106
|
*/
|
|
104
|
-
add(target:
|
|
107
|
+
add(target: WebglScene | THREE.Object3D): boolean;
|
|
105
108
|
/**
|
|
106
109
|
* Removes an object from rendering.
|
|
107
110
|
* @param target The object or scene to remove from rendering.
|
|
108
111
|
*/
|
|
109
|
-
remove(target:
|
|
112
|
+
remove(target: WebglScene | THREE.Object3D): void;
|
|
110
113
|
/**
|
|
111
114
|
* Clears all objects from rendering.
|
|
112
115
|
*/
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import { Viewport } from '../viewport';
|
|
6
6
|
import { RenderScene } from './renderScene';
|
|
7
|
-
import {
|
|
7
|
+
import { Materials } from '../../loader/materials/materials';
|
|
8
8
|
import { Camera } from '../camera/camera';
|
|
9
9
|
/**
|
|
10
10
|
* Composer for managing the rendering pipeline including anti-aliasing and outline effects.
|
|
@@ -39,7 +39,7 @@ export declare class RenderingComposer {
|
|
|
39
39
|
* @param materials - Materials used for rendering including outline and mask materials
|
|
40
40
|
* @param camera - The camera used for rendering
|
|
41
41
|
*/
|
|
42
|
-
constructor(renderer: THREE.WebGLRenderer, scene: RenderScene, viewport: Viewport, materials:
|
|
42
|
+
constructor(renderer: THREE.WebGLRenderer, scene: RenderScene, viewport: Viewport, materials: Materials, camera: Camera);
|
|
43
43
|
/**
|
|
44
44
|
* Initializes the main scene rendering pipeline
|
|
45
45
|
* Creates render targets and sets up the main render pass
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module viw-webgl-viewer/rendering
|
|
3
3
|
*/
|
|
4
4
|
import * as THREE from 'three';
|
|
5
|
-
import {
|
|
5
|
+
import { Materials } from '../../loader/materials/materials';
|
|
6
6
|
import { Renderer } from './renderer';
|
|
7
7
|
/**
|
|
8
8
|
* Manages a section box from renderer clipping planes
|
|
@@ -22,7 +22,7 @@ export declare class RenderingSection {
|
|
|
22
22
|
private maxZ;
|
|
23
23
|
private minZ;
|
|
24
24
|
private planes;
|
|
25
|
-
constructor(renderer: Renderer, materials:
|
|
25
|
+
constructor(renderer: Renderer, materials: Materials);
|
|
26
26
|
/**
|
|
27
27
|
* Resizes the section box to match the dimensions of the provided bounding box.
|
|
28
28
|
* @param box The bounding box to match the section box to.
|
|
@@ -1,92 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module viw-webgl-viewer
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
/**
|
|
11
|
-
* Provides selection behaviour for the viewer
|
|
12
|
-
* Supports multi-selection as long as all objects are from the same vim.
|
|
13
|
-
*/
|
|
14
|
-
export declare class Selection {
|
|
15
|
-
private _materials;
|
|
16
|
-
private _objects;
|
|
17
|
-
private _focusedObject;
|
|
18
|
-
private _vim;
|
|
19
|
-
private _lastFocusTime;
|
|
20
|
-
private _onValueChanged;
|
|
21
|
-
private _unsub;
|
|
22
|
-
constructor(materials: ViewerMaterials);
|
|
23
|
-
/**
|
|
24
|
-
* Event called when selection changes or is cleared
|
|
25
|
-
*/
|
|
26
|
-
get onValueChanged(): import("ste-signals").ISignal;
|
|
27
|
-
/**
|
|
28
|
-
* Returns the Vim instance from which elements are selected.
|
|
29
|
-
* Cross-Vim selection is not supported.
|
|
30
|
-
*/
|
|
31
|
-
get vim(): Vim;
|
|
32
|
-
/**
|
|
33
|
-
* Returns selected object as an iterator.
|
|
34
|
-
*/
|
|
35
|
-
get objects(): SetIterator<SelectableObject>;
|
|
36
|
-
/**
|
|
37
|
-
* Retrieves the bounding box of the selection. Returns `undefined` if there's no selection.
|
|
38
|
-
* @param {THREE.Box3} [target] Optional parameter to specify a box to use for the result.
|
|
39
|
-
* @returns {THREE.Box3 | undefined} The bounding box of the selection or `undefined` if no selection exists.
|
|
40
|
-
*/
|
|
41
|
-
getBoundingBox(target?: THREE.Box3): THREE.Box3 | undefined;
|
|
42
|
-
/**
|
|
43
|
-
* Adds focus highlight to a single object. Pass `undefined` to remove the highlight.
|
|
44
|
-
* @param {IObject | undefined} object The object to focus on, or `undefined` to remove the highlight.
|
|
45
|
-
*/
|
|
46
|
-
focus(object: SelectableObject | undefined): void;
|
|
47
|
-
/**
|
|
48
|
-
* Selects the given objects and unselects all other objects.
|
|
49
|
-
* Pass `null`, `undefined`, or an empty array as argument to clear selection.
|
|
50
|
-
* @param {IObject | IObject[] | undefined} object The object or array of objects to select,
|
|
51
|
-
* or `null`, `undefined`, or an empty array to clear the selection.
|
|
52
|
-
*/
|
|
53
|
-
select(object: SelectableObject | SelectableObject[] | undefined): void;
|
|
54
|
-
any(): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Returns true if the given object is currently selected.
|
|
57
|
-
* @param {IObject} object The object to check for selection.
|
|
58
|
-
* @returns {boolean} True if the object is selected, false otherwise.
|
|
59
|
-
*/
|
|
60
|
-
has(object: SelectableObject): boolean;
|
|
61
|
-
/**
|
|
62
|
-
* Returns the current count of selected objects.
|
|
63
|
-
*/
|
|
64
|
-
get count(): number;
|
|
65
|
-
/**
|
|
66
|
-
* Adds the given objects to the current selection.
|
|
67
|
-
* @param {...IObject[]} objects The objects to add to the selection.
|
|
68
|
-
*/
|
|
69
|
-
add(...objects: SelectableObject[]): void;
|
|
70
|
-
/**
|
|
71
|
-
* Removes the given objects from the current selection.
|
|
72
|
-
* @param {...IObject[]} objects The objects to remove from the selection.
|
|
73
|
-
*/
|
|
74
|
-
remove(...objects: SelectableObject[]): void;
|
|
75
|
-
/**
|
|
76
|
-
* Toggles the selection state of the given objects:
|
|
77
|
-
* - Adds unselected elements of the given objects to the selection.
|
|
78
|
-
* - Removes selected elements of the given objects from the selection.
|
|
79
|
-
* @param {...IObject[]} objects The objects to toggle selection for.
|
|
80
|
-
*/
|
|
81
|
-
toggle(...objects: SelectableObject[]): void;
|
|
82
|
-
/**
|
|
83
|
-
* Clears the current selection.
|
|
84
|
-
*/
|
|
85
|
-
clear(): void;
|
|
86
|
-
/**
|
|
87
|
-
* Disposes of all resources and stops animations.
|
|
88
|
-
*/
|
|
89
|
-
dispose(): void;
|
|
90
|
-
private clearOnNewVim;
|
|
91
|
-
update(): void;
|
|
92
|
-
}
|
|
4
|
+
import { Marker } from './gizmos/markers/gizmoMarker';
|
|
5
|
+
import { Element3D } from '../loader/element3d';
|
|
6
|
+
import { Selection } from '../../shared/selection';
|
|
7
|
+
export type Selectable = Element3D | Marker;
|
|
8
|
+
export type ISelection = Selection<Selectable>;
|
|
9
|
+
export declare function createSelection(): Selection<Selectable>;
|