vim-web 0.3.44-dev.46 → 0.3.44-dev.50

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.
Files changed (206) hide show
  1. package/dist/style.css +16 -1
  2. package/dist/types/core-viewers/index.d.ts +3 -0
  3. package/dist/types/core-viewers/shared/baseInputHandler.d.ts +29 -0
  4. package/dist/types/core-viewers/shared/index.d.ts +9 -0
  5. package/dist/types/core-viewers/shared/inputHandler.d.ts +115 -28
  6. package/dist/types/core-viewers/shared/keyboardHandler.d.ts +2 -2
  7. package/dist/types/core-viewers/shared/mouseHandler.d.ts +9 -9
  8. package/dist/types/core-viewers/shared/raycaster.d.ts +13 -0
  9. package/dist/types/core-viewers/shared/selection.d.ts +45 -0
  10. package/dist/types/core-viewers/shared/touchHandler.d.ts +2 -2
  11. package/dist/types/core-viewers/shared/vim.d.ts +35 -0
  12. package/dist/types/core-viewers/ultra/{viewer/camera.d.ts → camera.d.ts} +14 -5
  13. package/dist/types/core-viewers/ultra/{viewer/colorManager.d.ts → colorManager.d.ts} +6 -6
  14. package/dist/types/core-viewers/ultra/{viewer/decoder.d.ts → decoder.d.ts} +0 -8
  15. package/dist/types/core-viewers/ultra/element3d.d.ts +15 -0
  16. package/dist/types/core-viewers/ultra/index.d.ts +28 -9
  17. package/dist/types/core-viewers/ultra/inputAdapter.d.ts +5 -0
  18. package/dist/types/core-viewers/ultra/nodeState.d.ts +113 -0
  19. package/dist/types/core-viewers/ultra/raycaster.d.ts +52 -0
  20. package/dist/types/core-viewers/ultra/{viewer/color.d.ts → remoteColor.d.ts} +3 -3
  21. package/dist/types/core-viewers/ultra/{viewer/renderer.d.ts → renderer.d.ts} +9 -3
  22. package/dist/types/core-viewers/ultra/{viewer/rpcClient.d.ts → rpcClient.d.ts} +27 -28
  23. package/dist/types/core-viewers/ultra/rpcMarshal.d.ts +62 -0
  24. package/dist/types/core-viewers/ultra/{viewer/rpcSafeClient.d.ts → rpcSafeClient.d.ts} +22 -23
  25. package/dist/types/core-viewers/{utils/math3d.d.ts → ultra/rpcTypes.d.ts} +22 -22
  26. package/dist/types/core-viewers/ultra/selection.d.ts +4 -0
  27. package/dist/types/core-viewers/ultra/{viewer/socketClient.d.ts → socketClient.d.ts} +4 -11
  28. package/dist/types/core-viewers/ultra/{viewer/ultraCoreViewer.d.ts → viewer.d.ts} +18 -15
  29. package/dist/types/core-viewers/ultra/vim.d.ts +48 -0
  30. package/dist/types/core-viewers/webgl/index.d.ts +2 -20
  31. package/dist/types/core-viewers/webgl/loader/{colorAttributes.d.ts → colorAttribute.d.ts} +4 -4
  32. package/dist/types/core-viewers/webgl/loader/{object3D.d.ts → element3d.d.ts} +12 -9
  33. package/dist/types/core-viewers/webgl/loader/geometry.d.ts +76 -78
  34. package/dist/types/core-viewers/webgl/loader/index.d.ts +23 -0
  35. package/dist/types/core-viewers/webgl/loader/materials/index.d.ts +9 -0
  36. package/dist/types/core-viewers/webgl/loader/materials/{viewerMaterials.d.ts → materials.d.ts} +4 -4
  37. package/dist/types/core-viewers/webgl/loader/mesh.d.ts +7 -7
  38. package/dist/types/core-viewers/webgl/loader/progressive/insertableGeometry.d.ts +2 -2
  39. package/dist/types/core-viewers/webgl/loader/progressive/insertableMesh.d.ts +1 -1
  40. package/dist/types/core-viewers/webgl/loader/progressive/insertableSubmesh.d.ts +1 -1
  41. package/dist/types/core-viewers/webgl/loader/progressive/instancedMesh.d.ts +1 -1
  42. package/dist/types/core-viewers/webgl/loader/progressive/instancedSubmesh.d.ts +1 -1
  43. package/dist/types/core-viewers/webgl/loader/progressive/legacyMeshFactory.d.ts +2 -2
  44. package/dist/types/core-viewers/webgl/loader/progressive/subsetBuilder.d.ts +2 -2
  45. package/dist/types/core-viewers/webgl/loader/progressive/subsetRequest.d.ts +2 -2
  46. package/dist/types/core-viewers/webgl/loader/progressive/vimRequest.d.ts +3 -3
  47. package/dist/types/core-viewers/webgl/loader/scene.d.ts +11 -14
  48. package/dist/types/core-viewers/webgl/loader/vim.d.ts +15 -19
  49. package/dist/types/core-viewers/webgl/loader/vimSettings.d.ts +2 -2
  50. package/dist/types/core-viewers/webgl/loader/{objectAttributes.d.ts → webglAttribute.d.ts} +4 -4
  51. package/dist/types/core-viewers/webgl/viewer/camera/camera.d.ts +8 -102
  52. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovement.d.ts +5 -5
  53. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementLerp.d.ts +2 -2
  54. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementSnap.d.ts +2 -2
  55. package/dist/types/core-viewers/webgl/viewer/camera/{orthographic.d.ts → cameraOrthographic.d.ts} +1 -1
  56. package/dist/types/core-viewers/webgl/viewer/camera/{perspective.d.ts → cameraPerspective.d.ts} +1 -1
  57. package/dist/types/core-viewers/webgl/viewer/camera/index.d.ts +7 -0
  58. package/dist/types/core-viewers/webgl/viewer/environment/environment.d.ts +5 -5
  59. package/dist/types/core-viewers/webgl/viewer/environment/index.d.ts +3 -0
  60. package/dist/types/core-viewers/webgl/viewer/environment/{cameraLight.d.ts → light.d.ts} +2 -2
  61. package/dist/types/core-viewers/webgl/viewer/environment/skybox.d.ts +3 -3
  62. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/axesSettings.d.ts +3 -2
  63. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/gizmoAxes.d.ts +1 -1
  64. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/index.d.ts +3 -0
  65. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmoOrbit.d.ts +2 -2
  66. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmos.d.ts +0 -5
  67. package/dist/types/core-viewers/webgl/viewer/gizmos/index.d.ts +7 -0
  68. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarker.d.ts +63 -15
  69. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarkers.d.ts +30 -7
  70. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/index.d.ts +2 -0
  71. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/index.d.ts +3 -0
  72. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/measure.d.ts +4 -3
  73. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/index.d.ts +7 -0
  74. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxGizmo.d.ts +1 -1
  75. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandle.d.ts +4 -4
  76. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandles.d.ts +1 -1
  77. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxInputs.d.ts +1 -7
  78. package/dist/types/core-viewers/webgl/viewer/index.d.ts +10 -0
  79. package/dist/types/core-viewers/webgl/viewer/inputsAdapter.d.ts +3 -0
  80. package/dist/types/core-viewers/webgl/viewer/raycaster.d.ts +34 -43
  81. package/dist/types/core-viewers/webgl/viewer/rendering/index.d.ts +4 -0
  82. package/dist/types/core-viewers/webgl/viewer/rendering/mergePass.d.ts +2 -2
  83. package/dist/types/core-viewers/webgl/viewer/rendering/renderScene.d.ts +7 -7
  84. package/dist/types/core-viewers/webgl/viewer/rendering/renderer.d.ts +8 -5
  85. package/dist/types/core-viewers/webgl/viewer/rendering/renderingComposer.d.ts +2 -2
  86. package/dist/types/core-viewers/webgl/viewer/rendering/renderingSection.d.ts +2 -2
  87. package/dist/types/core-viewers/webgl/viewer/selection.d.ts +6 -89
  88. package/dist/types/core-viewers/webgl/viewer/settings/index.d.ts +3 -0
  89. package/dist/types/core-viewers/webgl/viewer/settings/{defaultViewerSettings.d.ts → viewerDefaultSettings.d.ts} +1 -1
  90. package/dist/types/core-viewers/webgl/viewer/settings/viewerSettings.d.ts +2 -9
  91. package/dist/types/core-viewers/webgl/viewer/settings/viewerSettingsParsing.d.ts +1 -1
  92. package/dist/types/core-viewers/webgl/viewer/viewer.d.ts +13 -13
  93. package/dist/types/index.d.ts +2 -3
  94. package/dist/types/react-viewers/bim/bimInfoData.d.ts +2 -2
  95. package/dist/types/react-viewers/bim/bimInfoObject.d.ts +4 -4
  96. package/dist/types/react-viewers/bim/bimInfoPanel.d.ts +3 -3
  97. package/dist/types/react-viewers/bim/bimInfoVim.d.ts +4 -4
  98. package/dist/types/react-viewers/bim/bimPanel.d.ts +10 -10
  99. package/dist/types/react-viewers/bim/bimSearch.d.ts +2 -2
  100. package/dist/types/react-viewers/bim/bimTree.d.ts +8 -6
  101. package/dist/types/react-viewers/bim/bimTreeData.d.ts +5 -4
  102. package/dist/types/react-viewers/bim/index.d.ts +8 -0
  103. package/dist/types/react-viewers/container.d.ts +3 -3
  104. package/dist/types/react-viewers/controlbar/controlBar.d.ts +0 -4
  105. package/dist/types/react-viewers/controlbar/controlBarButton.d.ts +1 -4
  106. package/dist/types/react-viewers/controlbar/controlBarIds.d.ts +36 -30
  107. package/dist/types/react-viewers/controlbar/controlBarSection.d.ts +2 -4
  108. package/dist/types/react-viewers/controlbar/index.d.ts +5 -0
  109. package/dist/types/react-viewers/controlbar/style.d.ts +10 -0
  110. package/dist/types/react-viewers/errors/index.d.ts +3 -0
  111. package/dist/types/react-viewers/helpers/cameraObserver.d.ts +2 -2
  112. package/dist/types/react-viewers/helpers/cursor.d.ts +5 -3
  113. package/dist/types/react-viewers/helpers/element.d.ts +3 -2
  114. package/dist/types/react-viewers/helpers/index.d.ts +10 -0
  115. package/dist/types/react-viewers/helpers/loadRequest.d.ts +6 -6
  116. package/dist/types/react-viewers/helpers/reactUtils.d.ts +8 -2
  117. package/dist/types/react-viewers/helpers/utils.d.ts +1 -1
  118. package/dist/types/react-viewers/{panels/icons.d.ts → icons.d.ts} +7 -0
  119. package/dist/types/react-viewers/index.d.ts +9 -11
  120. package/dist/types/react-viewers/panels/axesPanel.d.ts +2 -2
  121. package/dist/types/react-viewers/panels/contextMenu.d.ts +8 -8
  122. package/dist/types/react-viewers/panels/genericPanel.d.ts +22 -0
  123. package/dist/types/react-viewers/panels/index.d.ts +14 -0
  124. package/dist/types/react-viewers/panels/loadingBox.d.ts +2 -2
  125. package/dist/types/react-viewers/panels/modal.d.ts +5 -5
  126. package/dist/types/react-viewers/panels/renderSettingsPanel.d.ts +4 -0
  127. package/dist/types/react-viewers/panels/restOfScreen.d.ts +1 -1
  128. package/dist/types/react-viewers/{sidePanel → panels}/sidePanel.d.ts +3 -3
  129. package/dist/types/react-viewers/panels/toast.d.ts +3 -3
  130. package/dist/types/react-viewers/settings/index.d.ts +5 -0
  131. package/dist/types/react-viewers/settings/menuSettings.d.ts +2 -2
  132. package/dist/types/react-viewers/settings/settings.d.ts +10 -49
  133. package/dist/types/react-viewers/settings/settingsState.d.ts +8 -8
  134. package/dist/types/react-viewers/settings/settingsStorage.d.ts +6 -6
  135. package/dist/types/react-viewers/settings/userBoolean.d.ts +17 -0
  136. package/dist/types/react-viewers/state/cameraState.d.ts +2 -1
  137. package/dist/types/react-viewers/state/controlBarState.d.ts +21 -30
  138. package/dist/types/react-viewers/state/index.d.ts +9 -0
  139. package/dist/types/react-viewers/state/measureState.d.ts +2 -2
  140. package/dist/types/react-viewers/state/pointerState.d.ts +5 -5
  141. package/dist/types/react-viewers/state/sharedIsolation.d.ts +36 -0
  142. package/dist/types/react-viewers/state/viewerInputs.d.ts +3 -0
  143. package/dist/types/react-viewers/ultra/camera.d.ts +3 -0
  144. package/dist/types/react-viewers/ultra/controlBar.d.ts +6 -0
  145. package/dist/types/react-viewers/ultra/errors/ultraErrors.d.ts +3 -3
  146. package/dist/types/react-viewers/ultra/index.d.ts +2 -2
  147. package/dist/types/react-viewers/ultra/isolation.d.ts +3 -0
  148. package/dist/types/react-viewers/ultra/modal.d.ts +5 -0
  149. package/dist/types/react-viewers/ultra/sectionBox.d.ts +3 -0
  150. package/dist/types/react-viewers/ultra/viewer.d.ts +21 -0
  151. package/dist/types/react-viewers/ultra/{ultraComponentRef.d.ts → viewerRef.d.ts} +9 -7
  152. package/dist/types/react-viewers/webgl/camera.d.ts +3 -0
  153. package/dist/types/react-viewers/webgl/index.d.ts +3 -8
  154. package/dist/types/react-viewers/webgl/inputsBindings.d.ts +8 -0
  155. package/dist/types/react-viewers/webgl/isolation.d.ts +2 -0
  156. package/dist/types/react-viewers/webgl/{webglLoading.d.ts → loading.d.ts} +8 -8
  157. package/dist/types/react-viewers/webgl/sectionBox.d.ts +3 -0
  158. package/dist/types/react-viewers/webgl/viewer.d.ts +28 -0
  159. package/dist/types/react-viewers/webgl/{webglComponentRef.d.ts → viewerRef.d.ts} +20 -20
  160. package/dist/types/react-viewers/webgl/viewerState.d.ts +7 -5
  161. package/dist/types/utils/index.d.ts +11 -0
  162. package/dist/types/utils/interfaces.d.ts +3 -0
  163. package/dist/types/utils/math3d.d.ts +19 -0
  164. package/dist/types/utils/partial.d.ts +7 -0
  165. package/dist/types/{core-viewers/utils/requestResult.d.ts → utils/result.d.ts} +1 -1
  166. package/dist/types/utils/strings.d.ts +7 -0
  167. package/dist/types/{core-viewers/ultra/viewer → utils}/validation.d.ts +11 -10
  168. package/dist/vim-web.iife.js +21034 -20967
  169. package/dist/vim-web.iife.js.map +1 -1
  170. package/dist/vim-web.js +21068 -21001
  171. package/dist/vim-web.js.map +1 -1
  172. package/package.json +1 -1
  173. package/dist/types/core-viewers/shared/coreInputHandler.d.ts +0 -110
  174. package/dist/types/core-viewers/ultra/viewer/marshal.d.ts +0 -86
  175. package/dist/types/core-viewers/ultra/viewer/selection.d.ts +0 -99
  176. package/dist/types/core-viewers/ultra/viewer/ultraInputsAdapter.d.ts +0 -5
  177. package/dist/types/core-viewers/ultra/viewer/vim.d.ts +0 -111
  178. package/dist/types/core-viewers/utils/result.d.ts +0 -11
  179. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmoRectangle.d.ts +0 -51
  180. package/dist/types/core-viewers/webgl/viewer/webglInputsAdapter.d.ts +0 -3
  181. package/dist/types/react-viewers/helpers/isolation.d.ts +0 -128
  182. package/dist/types/react-viewers/ultra/ultraCameraState.d.ts +0 -3
  183. package/dist/types/react-viewers/ultra/ultraComponent.d.ts +0 -23
  184. package/dist/types/react-viewers/ultra/ultraControlBarState.d.ts +0 -8
  185. package/dist/types/react-viewers/ultra/ultraModal.d.ts +0 -4
  186. package/dist/types/react-viewers/ultra/ultraSectionBoxState.d.ts +0 -3
  187. package/dist/types/react-viewers/webgl/webgInputsBindings.d.ts +0 -8
  188. package/dist/types/react-viewers/webgl/webglCameraState.d.ts +0 -2
  189. package/dist/types/react-viewers/webgl/webglComponent.d.ts +0 -28
  190. package/dist/types/react-viewers/webgl/webglSectionBoxState.d.ts +0 -3
  191. /package/dist/types/core-viewers/ultra/{viewer/decoderWithWorker.d.ts → decoderWithWorker.d.ts} +0 -0
  192. /package/dist/types/core-viewers/ultra/{viewer/loadRequest.d.ts → loadRequest.d.ts} +0 -0
  193. /package/dist/types/core-viewers/ultra/{viewer/logger.d.ts → logger.d.ts} +0 -0
  194. /package/dist/types/core-viewers/ultra/{viewer/protocol.d.ts → protocol.d.ts} +0 -0
  195. /package/dist/types/core-viewers/ultra/{viewer/sectionBox.d.ts → sectionBox.d.ts} +0 -0
  196. /package/dist/types/core-viewers/ultra/{viewer/streamLogger.d.ts → streamLogger.d.ts} +0 -0
  197. /package/dist/types/core-viewers/ultra/{viewer/streamRenderer.d.ts → streamRenderer.d.ts} +0 -0
  198. /package/dist/types/core-viewers/ultra/{viewer/viewport.d.ts → viewport.d.ts} +0 -0
  199. /package/dist/types/core-viewers/ultra/{viewer/vimCollection.d.ts → vimCollection.d.ts} +0 -0
  200. /package/dist/types/core-viewers/webgl/viewer/camera/{ICamera.d.ts → cameraInterface.d.ts} +0 -0
  201. /package/dist/types/react-viewers/{sidePanel → state}/sideState.d.ts +0 -0
  202. /package/dist/types/{core-viewers/utils → utils}/array.d.ts +0 -0
  203. /package/dist/types/{core-viewers/utils → utils}/debounce.d.ts +0 -0
  204. /package/dist/types/{core-viewers/utils → utils}/promise.d.ts +0 -0
  205. /package/dist/types/{core-viewers/utils → utils}/threeUtils.d.ts +0 -0
  206. /package/dist/types/{core-viewers/utils → utils}/url.d.ts +0 -0
package/dist/style.css CHANGED
@@ -848,6 +848,9 @@ video:where(.vim-component,.vim-component *) {
848
848
  .vc-hidden {
849
849
  display: none;
850
850
  }
851
+ .vc-h-1\/2 {
852
+ height: 50%;
853
+ }
851
854
  .vc-h-2 {
852
855
  height: 0.5rem;
853
856
  }
@@ -1515,7 +1518,7 @@ video:where(.vim-component,.vim-component *) {
1515
1518
  padding-left: min(2cqmin, 1rem);
1516
1519
  padding-right: min(2cqmin, 1rem);
1517
1520
  }
1518
-
1521
+
1519
1522
  .vim-control-bar-button {
1520
1523
  height: min(8cqmin, 2.5rem);
1521
1524
  width: min(8cqmin, 2.5rem);
@@ -1523,6 +1526,18 @@ video:where(.vim-component,.vim-component *) {
1523
1526
  .vim-control-bar-section {
1524
1527
  gap: min(2cqmin, 0.5rem)
1525
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
+
1526
1541
  .vim-axes-panel{
1527
1542
  border-radius: min(3cqmin, 1rem);
1528
1543
  top: min(2cqmin, 1.5rem);
@@ -0,0 +1,3 @@
1
+ export * as Webgl from './webgl';
2
+ export * as Ultra from './ultra';
3
+ export * from './shared';
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @module viw-webgl-viewer/inputs
3
+ */
4
+ /**
5
+ * TODO: Use the same code for ULTRA and webgl.
6
+ * Base class for various input handlers.
7
+ * It provides convenience to register to and unregister from events.
8
+ */
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
+ /**
15
+ * Register handler to related browser events
16
+ * Prevents double registrations
17
+ */
18
+ register(): void;
19
+ protected addListeners(): void;
20
+ /**
21
+ * Unregister handler from related browser events
22
+ * Prevents double unregistration
23
+ */
24
+ unregister(): void;
25
+ /**
26
+ * Reset handler states such as button down, drag, etc.
27
+ */
28
+ reset(): void;
29
+ }
@@ -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';
@@ -1,29 +1,116 @@
1
- /**
2
- * @module viw-webgl-viewer/inputs
3
- */
4
- /**
5
- * TODO: Use the same code for ULTRA and webgl.
6
- * Base class for various input handlers.
7
- * It provides convenience to register to and unregister from events.
8
- */
9
- export declare class InputHandler {
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
- /**
15
- * Register handler to related browser events
16
- * Prevents double registrations
17
- */
18
- register(): void;
19
- protected addListeners(): void;
20
- /**
21
- * Unregister handler from related browser events
22
- * Prevents double unregistration
23
- */
24
- unregister(): void;
25
- /**
26
- * Reset handler states such as button down, drag, etc.
27
- */
28
- reset(): void;
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"
29
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 {};
@@ -2,7 +2,7 @@
2
2
  * @module viw-webgl-viewer/inputs
3
3
  */
4
4
  import * as THREE from 'three';
5
- import { InputHandler } from './inputHandler';
5
+ import { BaseInputHandler } from './baseInputHandler';
6
6
  type CallbackMode = 'replace' | 'append' | 'prepend';
7
7
  /**
8
8
  * KeyboardHandler
@@ -11,7 +11,7 @@ type CallbackMode = 'replace' | 'append' | 'prepend';
11
11
  * It supports separate handlers for key down, key up, and continuous key pressed events.
12
12
  * The handler calculates a movement vector based on currently pressed keys.
13
13
  */
14
- export declare class KeyboardHandler extends InputHandler {
14
+ export declare class KeyboardHandler extends BaseInputHandler {
15
15
  /**
16
16
  * Callback invoked whenever the calculated movement vector is updated.
17
17
  */
@@ -1,16 +1,16 @@
1
- import { InputHandler } from "./inputHandler";
2
- import { Vector2 } from "../utils/math3d";
3
- type DragCallback = (delta: Vector2, button: number) => void;
4
- export declare class MouseHandler extends InputHandler {
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
5
  private _lastMouseDownPosition;
6
6
  private _capture;
7
7
  private _dragHandler;
8
- onButtonDown: (pos: Vector2, button: number) => void;
9
- onButtonUp: (pos: Vector2, button: number) => void;
10
- onMouseMove: (event: Vector2) => void;
8
+ onButtonDown: (pos: THREE.Vector2, button: number) => void;
9
+ onButtonUp: (pos: THREE.Vector2, button: number) => void;
10
+ onMouseMove: (event: THREE.Vector2) => void;
11
11
  onDrag: DragCallback;
12
- onClick: (position: Vector2, ctrl: boolean) => void;
13
- onDoubleClick: (position: Vector2) => void;
12
+ onClick: (position: THREE.Vector2, ctrl: boolean) => void;
13
+ onDoubleClick: (position: THREE.Vector2) => void;
14
14
  onWheel: (value: number, ctrl: boolean) => void;
15
15
  constructor(canvas: HTMLCanvasElement);
16
16
  protected addListeners(): void;
@@ -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
+ }
@@ -2,11 +2,11 @@
2
2
  * @module viw-webgl-viewer/inputs
3
3
  */
4
4
  import * as THREE from 'three';
5
- import { InputHandler } from './inputHandler';
5
+ import { BaseInputHandler } from './baseInputHandler';
6
6
  /**
7
7
  * Manages user touch inputs.
8
8
  */
9
- export declare class TouchHandler extends InputHandler {
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;
@@ -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, Vector3 } 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,7 +86,7 @@ export declare class Camera implements ICamera {
78
86
  */
79
87
  onConnect(): void;
80
88
  onCameraPose(pose: Segment): void;
81
- set(position: Vector3, target: Vector3, blendTime?: number): void;
89
+ set(position: THREE.Vector3, target: THREE.Vector3, blendTime?: number): void;
82
90
  /**
83
91
  * Pauses or resumes rendering
84
92
  * @param value - True to pause rendering, false to resume
@@ -95,7 +103,7 @@ export declare class Camera implements ICamera {
95
103
  * @param box - The 3D bounding box to frame in the camera view
96
104
  * @param blendTime - Duration of the camera animation in seconds (defaults to 0.5)
97
105
  */
98
- frameBox(box: Box3, blendTime?: number): Promise<Segment | undefined>;
106
+ frameBox(box: THREE.Box3, blendTime?: number): Promise<Segment | undefined>;
99
107
  /**
100
108
  * Frames specific nodes of a Vim model in the camera view
101
109
  * @param vim - The Vim model containing the nodes to frame
@@ -104,4 +112,5 @@ export declare class Camera implements ICamera {
104
112
  * @returns Promise that resolves when the framing animation is complete
105
113
  */
106
114
  frameVim(vim: Vim, nodes: number[] | 'all', blendTime?: number): Promise<Segment | undefined>;
115
+ frameObject(object: Element3D, blendTime?: number): Promise<Segment | undefined>;
107
116
  }
@@ -1,6 +1,6 @@
1
1
  import { RpcSafeClient } from './rpcSafeClient';
2
- import { ColorHandle } from './color';
3
- import { RGBA32 } from '../../utils/math3d';
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<ColorHandle | undefined>;
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<ColorHandle[]>;
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): ColorHandle;
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: ColorHandle): void;
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
+ }
@@ -1,10 +1,29 @@
1
1
  import "./style.css";
2
- export * from './viewer/ultraCoreViewer';
3
- export * as utils from '../utils/promise';
4
- export * from '../utils/math3d';
5
- export * from './viewer/vim';
6
- export * from './viewer/color';
7
- export type { ILoadRequest, VimRequestErrorType } from './viewer/loadRequest';
8
- export type { ClientState, ConnectionSettings } from './viewer/socketClient';
9
- export type { VimSource } from './viewer/rpcSafeClient';
10
- export type { SectionBoxState } from './viewer/marshal';
2
+ export * from './viewer';
3
+ export { RGB, RGBA, RGBA32, Segment, type SectionBoxState, type HitCheckResult, type VimStatus } from './rpcTypes';
4
+ export { materialHandles, MaterialHandles, type MaterialHandle, } from './rpcClient';
5
+ export type * from './camera';
6
+ export type * from './colorManager';
7
+ export type * from './decoder';
8
+ export type * from './nodeState';
9
+ export { NodeState } from './nodeState';
10
+ export type * from './element3d';
11
+ export type * from './inputAdapter';
12
+ export type * from './loadRequest';
13
+ export type * from './logger';
14
+ export type * from './protocol';
15
+ export type * from './raycaster';
16
+ export type * from './remoteColor';
17
+ export type * from './renderer';
18
+ export type * from './rpcClient';
19
+ export type * from './rpcMarshal';
20
+ export type * from './rpcSafeClient';
21
+ export { InputMode, VimLoadingStatus } from './rpcSafeClient';
22
+ export type * from './sectionBox';
23
+ export type * from './selection';
24
+ export type * from './socketClient';
25
+ export type * from './streamLogger';
26
+ export type * from './streamRenderer';
27
+ export type * from './viewport';
28
+ export type * from './vim';
29
+ export type * from './vimCollection';
@@ -0,0 +1,5 @@
1
+ import * as Shared from "../shared";
2
+ import { Viewer } from "./viewer";
3
+ declare const CODE_TO_KEYCODE: Record<string, number>;
4
+ export default CODE_TO_KEYCODE;
5
+ export declare function ultraInputAdapter(viewer: Viewer): Shared.InputHandler;