vim-web 0.3.44-dev.9 → 0.4.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.
Files changed (225) hide show
  1. package/README.md +2 -2
  2. package/dist/style.css +47 -33
  3. package/dist/types/core-viewers/index.d.ts +3 -0
  4. package/dist/types/core-viewers/{webgl/viewer/inputs/inputHandler.d.ts → shared/baseInputHandler.d.ts} +5 -6
  5. package/dist/types/core-viewers/shared/index.d.ts +9 -0
  6. package/dist/types/core-viewers/shared/inputAdapter.d.ts +21 -0
  7. package/dist/types/core-viewers/shared/inputHandler.d.ts +99 -0
  8. package/dist/types/core-viewers/shared/keyboardHandler.d.ts +96 -0
  9. package/dist/types/core-viewers/shared/mouseHandler.d.ts +27 -0
  10. package/dist/types/core-viewers/shared/raycaster.d.ts +27 -0
  11. package/dist/types/core-viewers/shared/selection.d.ts +105 -0
  12. package/dist/types/core-viewers/{webgl/viewer/inputs → shared}/touchHandler.d.ts +15 -18
  13. package/dist/types/core-viewers/shared/vim.d.ts +48 -0
  14. package/dist/types/core-viewers/ultra/{viewer/camera.d.ts → camera.d.ts} +14 -4
  15. package/dist/types/core-viewers/ultra/{viewer/colorManager.d.ts → colorManager.d.ts} +6 -6
  16. package/dist/types/core-viewers/ultra/{viewer/decoder.d.ts → decoder.d.ts} +0 -8
  17. package/dist/types/core-viewers/ultra/element3d.d.ts +43 -0
  18. package/dist/types/core-viewers/ultra/index.d.ts +28 -8
  19. package/dist/types/core-viewers/ultra/inputAdapter.d.ts +8 -0
  20. package/dist/types/core-viewers/ultra/nodeState.d.ts +113 -0
  21. package/dist/types/core-viewers/ultra/raycaster.d.ts +52 -0
  22. package/dist/types/core-viewers/ultra/{viewer/color.d.ts → remoteColor.d.ts} +3 -3
  23. package/dist/types/core-viewers/ultra/{viewer/renderer.d.ts → renderer.d.ts} +9 -3
  24. package/dist/types/core-viewers/ultra/{viewer/rpcClient.d.ts → rpcClient.d.ts} +28 -28
  25. package/dist/types/core-viewers/ultra/rpcMarshal.d.ts +62 -0
  26. package/dist/types/core-viewers/ultra/{viewer/rpcSafeClient.d.ts → rpcSafeClient.d.ts} +22 -23
  27. package/dist/types/core-viewers/ultra/{utils/math3d.d.ts → rpcTypes.d.ts} +22 -22
  28. package/dist/types/core-viewers/ultra/{viewer/sectionBox.d.ts → sectionBox.d.ts} +8 -3
  29. package/dist/types/core-viewers/ultra/selection.d.ts +4 -0
  30. package/dist/types/core-viewers/ultra/{viewer/socketClient.d.ts → socketClient.d.ts} +4 -11
  31. package/dist/types/core-viewers/ultra/{viewer/viewer.d.ts → viewer.d.ts} +16 -13
  32. package/dist/types/core-viewers/ultra/vim.d.ts +48 -0
  33. package/dist/types/core-viewers/webgl/index.d.ts +2 -21
  34. package/dist/types/core-viewers/webgl/loader/{colorAttributes.d.ts → colorAttribute.d.ts} +4 -4
  35. package/dist/types/core-viewers/webgl/loader/{object3D.d.ts → element3d.d.ts} +12 -9
  36. package/dist/types/core-viewers/webgl/loader/geometry.d.ts +76 -78
  37. package/dist/types/core-viewers/webgl/loader/index.d.ts +24 -0
  38. package/dist/types/core-viewers/webgl/loader/materials/index.d.ts +9 -0
  39. package/dist/types/core-viewers/webgl/loader/materials/{viewerMaterials.d.ts → materials.d.ts} +5 -5
  40. package/dist/types/core-viewers/webgl/loader/mesh.d.ts +2 -2
  41. package/dist/types/core-viewers/webgl/loader/progressive/insertableMesh.d.ts +1 -1
  42. package/dist/types/core-viewers/webgl/loader/progressive/insertableSubmesh.d.ts +1 -1
  43. package/dist/types/core-viewers/webgl/loader/progressive/instancedMesh.d.ts +1 -1
  44. package/dist/types/core-viewers/webgl/loader/progressive/instancedSubmesh.d.ts +1 -1
  45. package/dist/types/core-viewers/webgl/loader/progressive/vimRequest.d.ts +3 -3
  46. package/dist/types/core-viewers/webgl/loader/scene.d.ts +4 -7
  47. package/dist/types/core-viewers/webgl/loader/vim.d.ts +12 -16
  48. package/dist/types/core-viewers/webgl/loader/vimSettings.d.ts +2 -2
  49. package/dist/types/core-viewers/webgl/loader/{objectAttributes.d.ts → webglAttribute.d.ts} +4 -4
  50. package/dist/types/core-viewers/webgl/viewer/camera/camera.d.ts +8 -113
  51. package/dist/types/core-viewers/webgl/viewer/camera/{ICamera.d.ts → cameraInterface.d.ts} +0 -4
  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 +3 -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 +10 -16
  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/sectionBox.d.ts +4 -5
  75. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxGizmo.d.ts +1 -1
  76. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandle.d.ts +6 -4
  77. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandles.d.ts +1 -1
  78. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxInputs.d.ts +3 -40
  79. package/dist/types/core-viewers/webgl/viewer/index.d.ts +10 -0
  80. package/dist/types/core-viewers/webgl/viewer/inputAdapter.d.ts +3 -0
  81. package/dist/types/core-viewers/webgl/viewer/raycaster.d.ts +37 -57
  82. package/dist/types/core-viewers/webgl/viewer/rendering/index.d.ts +4 -0
  83. package/dist/types/core-viewers/webgl/viewer/rendering/mergePass.d.ts +2 -2
  84. package/dist/types/core-viewers/webgl/viewer/rendering/renderScene.d.ts +5 -5
  85. package/dist/types/core-viewers/webgl/viewer/rendering/renderer.d.ts +6 -3
  86. package/dist/types/core-viewers/webgl/viewer/rendering/renderingComposer.d.ts +2 -2
  87. package/dist/types/core-viewers/webgl/viewer/rendering/renderingSection.d.ts +2 -2
  88. package/dist/types/core-viewers/webgl/viewer/selection.d.ts +6 -89
  89. package/dist/types/core-viewers/webgl/viewer/settings/index.d.ts +3 -0
  90. package/dist/types/core-viewers/webgl/viewer/settings/{defaultViewerSettings.d.ts → viewerDefaultSettings.d.ts} +1 -1
  91. package/dist/types/core-viewers/webgl/viewer/settings/viewerSettings.d.ts +2 -9
  92. package/dist/types/core-viewers/webgl/viewer/settings/viewerSettingsParsing.d.ts +1 -1
  93. package/dist/types/core-viewers/webgl/viewer/viewer.d.ts +13 -13
  94. package/dist/types/index.d.ts +2 -3
  95. package/dist/types/react-viewers/bim/bimInfoData.d.ts +2 -2
  96. package/dist/types/react-viewers/bim/bimInfoObject.d.ts +4 -4
  97. package/dist/types/react-viewers/bim/bimInfoPanel.d.ts +3 -3
  98. package/dist/types/react-viewers/bim/bimInfoVim.d.ts +4 -4
  99. package/dist/types/react-viewers/bim/bimPanel.d.ts +13 -13
  100. package/dist/types/react-viewers/bim/bimSearch.d.ts +2 -2
  101. package/dist/types/react-viewers/bim/bimTree.d.ts +10 -8
  102. package/dist/types/react-viewers/bim/bimTreeData.d.ts +5 -4
  103. package/dist/types/react-viewers/bim/index.d.ts +8 -0
  104. package/dist/types/react-viewers/container.d.ts +3 -3
  105. package/dist/types/react-viewers/controlbar/controlBar.d.ts +10 -4
  106. package/dist/types/react-viewers/controlbar/controlBarButton.d.ts +0 -4
  107. package/dist/types/react-viewers/controlbar/controlBarIds.d.ts +36 -27
  108. package/dist/types/react-viewers/controlbar/controlBarSection.d.ts +1 -4
  109. package/dist/types/react-viewers/controlbar/index.d.ts +5 -0
  110. package/dist/types/react-viewers/controlbar/style.d.ts +10 -0
  111. package/dist/types/react-viewers/errors/index.d.ts +2 -0
  112. package/dist/types/react-viewers/generic/genericField.d.ts +31 -0
  113. package/dist/types/react-viewers/generic/genericPanel.d.ts +12 -0
  114. package/dist/types/react-viewers/generic/index.d.ts +2 -0
  115. package/dist/types/react-viewers/generic/inputNumber.d.ts +4 -0
  116. package/dist/types/react-viewers/helpers/cameraObserver.d.ts +2 -2
  117. package/dist/types/react-viewers/helpers/cursor.d.ts +5 -3
  118. package/dist/types/react-viewers/helpers/customizer.d.ts +4 -0
  119. package/dist/types/react-viewers/helpers/element.d.ts +3 -2
  120. package/dist/types/react-viewers/helpers/index.d.ts +6 -0
  121. package/dist/types/react-viewers/helpers/layout.d.ts +24 -0
  122. package/dist/types/react-viewers/helpers/loadRequest.d.ts +6 -6
  123. package/dist/types/react-viewers/helpers/reactUtils.d.ts +285 -0
  124. package/dist/types/react-viewers/helpers/utils.d.ts +1 -1
  125. package/dist/types/react-viewers/{panels/icons.d.ts → icons.d.ts} +9 -0
  126. package/dist/types/react-viewers/index.d.ts +11 -6
  127. package/dist/types/react-viewers/panels/axesPanel.d.ts +4 -4
  128. package/dist/types/react-viewers/panels/contextMenu.d.ts +22 -14
  129. package/dist/types/react-viewers/panels/help.d.ts +2 -7
  130. package/dist/types/react-viewers/panels/index.d.ts +25 -0
  131. package/dist/types/react-viewers/panels/isolationPanel.d.ts +9 -0
  132. package/dist/types/react-viewers/panels/loadingBox.d.ts +5 -2
  133. package/dist/types/react-viewers/panels/messageBox.d.ts +1 -2
  134. package/dist/types/react-viewers/panels/modal.d.ts +9 -10
  135. package/dist/types/react-viewers/panels/restOfScreen.d.ts +1 -1
  136. package/dist/types/react-viewers/panels/sectionBoxPanel.d.ts +8 -2
  137. package/dist/types/react-viewers/{sidePanel → panels}/sidePanel.d.ts +3 -3
  138. package/dist/types/react-viewers/panels/toast.d.ts +3 -3
  139. package/dist/types/react-viewers/settings/index.d.ts +5 -0
  140. package/dist/types/react-viewers/settings/settings.d.ts +14 -60
  141. package/dist/types/react-viewers/settings/{menuSettings.d.ts → settingsPanel.d.ts} +3 -3
  142. package/dist/types/react-viewers/settings/settingsState.d.ts +8 -8
  143. package/dist/types/react-viewers/settings/settingsStorage.d.ts +6 -6
  144. package/dist/types/react-viewers/settings/userBoolean.d.ts +17 -0
  145. package/dist/types/react-viewers/state/cameraState.d.ts +24 -0
  146. package/dist/types/react-viewers/state/controlBarState.d.ts +36 -21
  147. package/dist/types/react-viewers/state/index.d.ts +9 -0
  148. package/dist/types/react-viewers/state/measureState.d.ts +2 -2
  149. package/dist/types/react-viewers/state/pointerState.d.ts +5 -5
  150. package/dist/types/react-viewers/state/sectionBoxState.d.ts +18 -18
  151. package/dist/types/react-viewers/state/sharedIsolation.d.ts +38 -0
  152. package/dist/types/react-viewers/state/viewerInputs.d.ts +3 -0
  153. package/dist/types/react-viewers/ultra/camera.d.ts +3 -0
  154. package/dist/types/react-viewers/ultra/controlBar.d.ts +6 -0
  155. package/dist/types/react-viewers/ultra/errors/ultraErrors.d.ts +3 -3
  156. package/dist/types/react-viewers/ultra/index.d.ts +2 -1
  157. package/dist/types/react-viewers/ultra/isolation.d.ts +3 -0
  158. package/dist/types/react-viewers/ultra/modal.d.ts +5 -0
  159. package/dist/types/react-viewers/ultra/sectionBox.d.ts +3 -0
  160. package/dist/types/react-viewers/ultra/viewer.d.ts +21 -0
  161. package/dist/types/react-viewers/ultra/viewerRef.d.ts +47 -0
  162. package/dist/types/react-viewers/urls.d.ts +1 -0
  163. package/dist/types/react-viewers/webgl/camera.d.ts +3 -0
  164. package/dist/types/react-viewers/webgl/index.d.ts +3 -8
  165. package/dist/types/react-viewers/webgl/inputsBindings.d.ts +8 -0
  166. package/dist/types/react-viewers/webgl/isolation.d.ts +2 -0
  167. package/dist/types/react-viewers/webgl/{webglLoading.d.ts → loading.d.ts} +11 -9
  168. package/dist/types/react-viewers/webgl/sectionBox.d.ts +3 -0
  169. package/dist/types/react-viewers/webgl/viewer.d.ts +28 -0
  170. package/dist/types/react-viewers/webgl/viewerRef.d.ts +107 -0
  171. package/dist/types/react-viewers/webgl/viewerState.d.ts +7 -5
  172. package/dist/types/utils/debounce.d.ts +30 -0
  173. package/dist/types/utils/index.d.ts +10 -0
  174. package/dist/types/utils/interfaces.d.ts +3 -0
  175. package/dist/types/utils/math3d.d.ts +19 -0
  176. package/dist/types/utils/partial.d.ts +7 -0
  177. package/dist/types/{core-viewers/webgl/utils/requestResult.d.ts → utils/result.d.ts} +1 -1
  178. package/dist/types/{core-viewers/webgl/utils → utils}/threeUtils.d.ts +1 -0
  179. package/dist/types/{core-viewers/ultra/utils → utils}/url.d.ts +2 -0
  180. package/dist/types/{core-viewers/ultra/utils → utils}/validation.d.ts +11 -10
  181. package/dist/vim-web.iife.js +17283 -17193
  182. package/dist/vim-web.iife.js.map +1 -1
  183. package/dist/vim-web.js +17309 -17219
  184. package/dist/vim-web.js.map +1 -1
  185. package/package.json +1 -1
  186. package/dist/types/core-viewers/ultra/utils/debounce.d.ts +0 -1
  187. package/dist/types/core-viewers/ultra/utils/deferredPromise.d.ts +0 -8
  188. package/dist/types/core-viewers/ultra/utils/result.d.ts +0 -11
  189. package/dist/types/core-viewers/ultra/viewer/inputs/InputTouch.d.ts +0 -25
  190. package/dist/types/core-viewers/ultra/viewer/inputs/inputHandler.d.ts +0 -7
  191. package/dist/types/core-viewers/ultra/viewer/inputs/inputKeyboard.d.ts +0 -20
  192. package/dist/types/core-viewers/ultra/viewer/inputs/inputMouse.d.ts +0 -21
  193. package/dist/types/core-viewers/ultra/viewer/inputs/inputs.d.ts +0 -27
  194. package/dist/types/core-viewers/ultra/viewer/marshal.d.ts +0 -86
  195. package/dist/types/core-viewers/ultra/viewer/selection.d.ts +0 -96
  196. package/dist/types/core-viewers/ultra/viewer/vim.d.ts +0 -111
  197. package/dist/types/core-viewers/webgl/utils/deferredPromise.d.ts +0 -8
  198. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmoRectangle.d.ts +0 -51
  199. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/measureFlow.d.ts +0 -36
  200. package/dist/types/core-viewers/webgl/viewer/inputs/input.d.ts +0 -128
  201. package/dist/types/core-viewers/webgl/viewer/inputs/keyboardHandler.d.ts +0 -113
  202. package/dist/types/core-viewers/webgl/viewer/inputs/mouseHandler.d.ts +0 -66
  203. package/dist/types/react-viewers/errors/errorUtils.d.ts +0 -2
  204. package/dist/types/react-viewers/helpers/camera.d.ts +0 -37
  205. package/dist/types/react-viewers/helpers/deferredPromise.d.ts +0 -8
  206. package/dist/types/react-viewers/helpers/inputs.d.ts +0 -22
  207. package/dist/types/react-viewers/helpers/isolation.d.ts +0 -128
  208. package/dist/types/react-viewers/ultra/ultraComponent.d.ts +0 -47
  209. package/dist/types/react-viewers/ultra/ultraControlBarState.d.ts +0 -6
  210. package/dist/types/react-viewers/ultra/ultraModal.d.ts +0 -4
  211. package/dist/types/react-viewers/ultra/ultraSectionBoxState.d.ts +0 -3
  212. package/dist/types/react-viewers/webgl/webglComponent.d.ts +0 -28
  213. package/dist/types/react-viewers/webgl/webglComponentRef.d.ts +0 -118
  214. package/dist/types/react-viewers/webgl/webglSectionBoxState.d.ts +0 -3
  215. /package/dist/types/core-viewers/ultra/{viewer/decoderWithWorker.d.ts → decoderWithWorker.d.ts} +0 -0
  216. /package/dist/types/core-viewers/ultra/{viewer/loadRequest.d.ts → loadRequest.d.ts} +0 -0
  217. /package/dist/types/core-viewers/ultra/{viewer/logger.d.ts → logger.d.ts} +0 -0
  218. /package/dist/types/core-viewers/ultra/{viewer/protocol.d.ts → protocol.d.ts} +0 -0
  219. /package/dist/types/core-viewers/ultra/{viewer/streamLogger.d.ts → streamLogger.d.ts} +0 -0
  220. /package/dist/types/core-viewers/ultra/{viewer/streamRenderer.d.ts → streamRenderer.d.ts} +0 -0
  221. /package/dist/types/core-viewers/ultra/{viewer/viewport.d.ts → viewport.d.ts} +0 -0
  222. /package/dist/types/core-viewers/ultra/{viewer/vimCollection.d.ts → vimCollection.d.ts} +0 -0
  223. /package/dist/types/react-viewers/{sidePanel → state}/sideState.d.ts +0 -0
  224. /package/dist/types/{core-viewers/ultra/utils → utils}/array.d.ts +0 -0
  225. /package/dist/types/{core-viewers/ultra/utils → utils}/promise.d.ts +0 -0
@@ -1,5 +1,4 @@
1
- import { Box3, RGBA, RGBA32, Segment, Vector2, Vector3 } from "../utils/math3d";
2
- import { HitCheckResult, SectionBoxState } from "./marshal";
1
+ import * as RpcTypes from "./rpcTypes";
3
2
  import { MaterialHandle, RpcClient } from "./rpcClient";
4
3
  export type VimSource = {
5
4
  url: string;
@@ -19,7 +18,7 @@ export type SceneSettings = {
19
18
  hdrBackgroundScale: number;
20
19
  hdrBackgroundSaturation: number;
21
20
  backGroundBlur: number;
22
- backgroundColor: RGBA;
21
+ backgroundColor: RpcTypes.RGBA;
23
22
  };
24
23
  export declare const defaultSceneSettings: SceneSettings;
25
24
  export declare enum VimLoadingStatus {
@@ -57,7 +56,7 @@ export declare class RpcSafeClient {
57
56
  */
58
57
  RPCSetLighting(settings: SceneSettings): void;
59
58
  RPCLockIblRotation(lock: boolean): void;
60
- RPCGetSceneAABB(): Promise<Box3 | undefined>;
59
+ RPCGetSceneAABB(): Promise<RpcTypes.Box3 | undefined>;
61
60
  /*******************************************************************************
62
61
  * NODE VISIBILITY METHODS
63
62
  * Methods for controlling node visibility, including show/hide, ghosting,
@@ -131,7 +130,7 @@ export declare class RpcSafeClient {
131
130
  * @returns Promise resolving to the handle of the created text component
132
131
  * @throws {Error} If the text is empty
133
132
  */
134
- RPCCreateText(position: Vector3, color: RGBA32, text: string): Promise<number>;
133
+ RPCCreateText(position: RpcTypes.Vector3, color: RpcTypes.RGBA32, text: string): Promise<number>;
135
134
  /**
136
135
  * Destroys a text component, removing it from the scene.
137
136
  * @param componentHandle - The handle of the text component to destroy
@@ -143,8 +142,8 @@ export declare class RpcSafeClient {
143
142
  * Methods for controlling section box visibility and position.
144
143
  ******************************************************************************/
145
144
  RPCEnableSectionBox(enable: boolean): void;
146
- RPCSetSectionBox(state: SectionBoxState): void;
147
- RPCGetSectionBox(): Promise<SectionBoxState | undefined>;
145
+ RPCSetSectionBox(state: RpcTypes.SectionBoxState): void;
146
+ RPCGetSectionBox(): Promise<RpcTypes.SectionBoxState | undefined>;
148
147
  /*******************************************************************************
149
148
  * CAMERA AND VIEW METHODS
150
149
  * Methods for controlling camera position, movement, framing, and view settings.
@@ -153,15 +152,15 @@ export declare class RpcSafeClient {
153
152
  * Retrieves the current camera position and orientation.
154
153
  * @returns Promise resolving to a segment representing the camera's current position and target
155
154
  */
156
- RPCGetCameraPosition(): Promise<Segment | undefined>;
155
+ RPCGetCameraPosition(): Promise<RpcTypes.Segment | undefined>;
157
156
  /**
158
157
  * Sets the camera position and orientation.
159
158
  * @param segment - The desired camera position and target
160
159
  * @param blendTime - Duration of the camera transition in seconds (non-negative)
161
160
  * @throws {Error} If segment is invalid or blendTime is negative
162
161
  */
163
- RPCSetCameraPosition(segment: Segment, blendTime: number): void;
164
- RPCGetBoundingBoxAll(componentHandle: number): Promise<any>;
162
+ RPCSetCameraPosition(segment: RpcTypes.Segment, blendTime: number): void;
163
+ RPCGetBoundingBoxAll(componentHandle: number): Promise<RpcTypes.Box3 | undefined>;
165
164
  /**
166
165
  * Calculates the bounding box for specified nodes in a component.
167
166
  * Large node arrays are automatically processed in batches for better performance.
@@ -170,14 +169,14 @@ export declare class RpcSafeClient {
170
169
  * @returns Promise resolving to the combined bounding box
171
170
  * @throws {Error} If the component handle is invalid or nodes array is invalid
172
171
  */
173
- RPCGetBoundingBox(componentHandle: number, nodes: number[]): Promise<Box3 | undefined>;
172
+ RPCGetBoundingBox(componentHandle: number, nodes: number[]): Promise<RpcTypes.Box3 | undefined>;
174
173
  private getBoundingBoxBatched;
175
174
  /**
176
175
  * Frames the camera to show all components in the scene.
177
176
  * @param blendTime - Duration of the camera transition in seconds (non-negative)
178
177
  * @returns Promise resolving to camera segment representing the final position
179
178
  */
180
- RPCFrameAll(blendTime: number): Promise<Segment | undefined>;
179
+ RPCFrameAll(blendTime: number): Promise<RpcTypes.Segment | undefined>;
181
180
  /**
182
181
  * Frames a specific VIM component in the scene.
183
182
  * @param componentHandle - The handle of the VIM component to frame
@@ -185,7 +184,7 @@ export declare class RpcSafeClient {
185
184
  * @returns Promise resolving to camera segment representing the final position
186
185
  * @throws {Error} If the component handle is invalid
187
186
  */
188
- RPCFrameVim(componentHandle: number, blendTime: number): Promise<Segment | undefined>;
187
+ RPCFrameVim(componentHandle: number, blendTime: number): Promise<RpcTypes.Segment | undefined>;
189
188
  /**
190
189
  * Frames specific instances within a component. For large numbers of instances,
191
190
  * automatically switches to bounding box framing for better performance.
@@ -195,14 +194,14 @@ export declare class RpcSafeClient {
195
194
  * @returns Promise resolving to camera segment representing the final position
196
195
  * @throws {Error} If the component handle is invalid or nodes array is empty
197
196
  */
198
- RPCFrameInstances(componentHandle: number, nodes: number[], blendTime: number): Promise<Segment | undefined>;
197
+ RPCFrameInstances(componentHandle: number, nodes: number[], blendTime: number): Promise<RpcTypes.Segment | undefined>;
199
198
  /**
200
199
  * Frames the camera to show a specific bounding box.
201
200
  * @param box - The bounding box to frame
202
201
  * @param blendTime - Duration of the camera transition in seconds (non-negative)
203
202
  * @throws {Error} If the box is invalid (min values must be less than max values)
204
203
  */
205
- RPCFrameBox(box: Box3, blendTime: number): Promise<Segment | undefined>;
204
+ RPCFrameBox(box: RpcTypes.Box3, blendTime: number): Promise<RpcTypes.Segment | undefined>;
206
205
  /*******************************************************************************
207
206
  * INPUT HANDLING METHODS
208
207
  * Methods for handling user input including mouse, keyboard, and camera controls.
@@ -260,13 +259,13 @@ export declare class RpcSafeClient {
260
259
  * Sets the color used for ghosted geometry.
261
260
  * @param ghostColor - The RGBA color to use for ghosted elements
262
261
  */
263
- RPCSetGhostColor(ghostColor: RGBA): void;
262
+ RPCSetGhostColor(ghostColor: RpcTypes.RGBA): void;
264
263
  /**
265
264
  * Performs hit testing at a specified screen position.
266
265
  * @param pos - Normalized screen coordinates (0-1, 0-1)
267
266
  * @returns Promise resolving to hit test result if something was hit, undefined otherwise
268
267
  */
269
- RPCPerformHitTest(pos: Vector2): Promise<HitCheckResult | undefined>;
268
+ RPCPerformHitTest(pos: RpcTypes.Vector2): Promise<RpcTypes.HitCheckResult | undefined>;
270
269
  /**
271
270
  * Sends a mouse button event to the viewer.
272
271
  * @param position - The normalized screen coordinates (0-1, 0-1)
@@ -274,19 +273,19 @@ export declare class RpcSafeClient {
274
273
  * @param down - True if button is pressed down, false if released
275
274
  * @throws {Error} If mouseButton is not a valid positive integer
276
275
  */
277
- RPCMouseButtonEvent(position: Vector2, mouseButton: number, down: boolean): void;
276
+ RPCMouseButtonEvent(position: RpcTypes.Vector2, mouseButton: number, down: boolean): void;
278
277
  /**
279
278
  * Sends a mouse double-click event to the viewer.
280
279
  * @param position - The normalized screen coordinates (0-1, 0-1)
281
280
  * @param mouseButton - The mouse button code (0=left, 1=middle, 2=right)
282
281
  * @throws {Error} If mouseButton is not a valid positive integer
283
282
  */
284
- RPCMouseDoubleClickEvent(position: Vector2, mouseButton: number): void;
283
+ RPCMouseDoubleClickEvent(position: RpcTypes.Vector2, mouseButton: number): void;
285
284
  /**
286
285
  * Sends a mouse movement event to the viewer.
287
286
  * @param position - The normalized screen coordinates (0-1, 0-1)
288
287
  */
289
- RPCMouseMoveEvent(position: Vector2): void;
288
+ RPCMouseMoveEvent(position: RpcTypes.Vector2): void;
290
289
  /**
291
290
  * Sends a mouse scroll wheel event to the viewer.
292
291
  * @param scrollValue - The scroll amount (-1 to 1)
@@ -298,7 +297,7 @@ export declare class RpcSafeClient {
298
297
  * @param mouseButton - The mouse button code (0=left, 1=middle, 2=right)
299
298
  * @throws {Error} If mouseButton is not a valid positive integer
300
299
  */
301
- RPCMouseSelectEvent(position: Vector2, mouseButton: number): void;
300
+ RPCMouseSelectEvent(position: RpcTypes.Vector2, mouseButton: number): void;
302
301
  /**
303
302
  * Sends a keyboard event to the viewer.
304
303
  * @param keyCode - The key code of the event
@@ -318,7 +317,7 @@ export declare class RpcSafeClient {
318
317
  * @returns Array of handles for the created material instances
319
318
  * @throws {Error} If the material handle is invalid or smoothness is out of range
320
319
  */
321
- RPCCreateMaterialInstances(materialHandle: MaterialHandle, smoothness: number, colors: RGBA32[]): Promise<number[] | undefined>;
320
+ RPCCreateMaterialInstances(materialHandle: MaterialHandle, smoothness: number, colors: RpcTypes.RGBA32[]): Promise<number[] | undefined>;
322
321
  private createMaterialInstancesBatched;
323
322
  /**
324
323
  * Destroys multiple material instances, freeing associated resources.
@@ -378,7 +377,7 @@ export declare class RpcSafeClient {
378
377
  * @param colors - Array of colors for each AABB (must match nodes length)
379
378
  * @throws {Error} If arrays have different lengths or component handle is invalid
380
379
  */
381
- RPCShowAABBs(componentHandle: number, nodes: number[], colors: RGBA32[]): void;
380
+ RPCShowAABBs(componentHandle: number, nodes: number[], colors: RpcTypes.RGBA32[]): void;
382
381
  /**
383
382
  * Hides the axis-aligned bounding boxes (AABBs) for specified nodes.
384
383
  * Large node arrays are automatically processed in batches.
@@ -1,18 +1,9 @@
1
- export { Matrix4 as Matrix44, } from 'three';
2
- export { Vector2, Vector3, Box3 } from 'three';
3
- import { Vector2, Vector3 } from 'three';
4
- /**
5
- * Checks if two Vector2 objects are approximately equal.
6
- * @param v1 - First Vector2.
7
- * @param v2 - Second Vector2.
8
- * @param epsilon - Tolerance for floating-point comparisons.
9
- * @returns True if vectors are almost equal, false otherwise.
10
- */
11
- export declare function almostEqual(v1: Vector2, v2: Vector2, epsilon?: number): boolean;
1
+ import * as THREE from 'three';
2
+ export { Vector2, Vector3, Box3, Matrix4 as Matrix44 } from 'three';
12
3
  export declare class Segment {
13
- origin: Vector3;
14
- target: Vector3;
15
- constructor(origin?: Vector3, target?: Vector3);
4
+ origin: THREE.Vector3;
5
+ target: THREE.Vector3;
6
+ constructor(origin?: THREE.Vector3, target?: THREE.Vector3);
16
7
  static fromArray(array: number[]): Segment;
17
8
  toArray(): number[];
18
9
  isValid(): boolean;
@@ -24,6 +15,7 @@ export declare class RGBA {
24
15
  b: number;
25
16
  a: number;
26
17
  constructor(r: number, g: number, b: number, a?: number);
18
+ clone(): RGBA;
27
19
  isValid(): boolean;
28
20
  equals(color: RGBA): boolean;
29
21
  static fromString(str: string): RGBA;
@@ -57,11 +49,19 @@ export declare class RGBA32 {
57
49
  */
58
50
  get a(): number;
59
51
  }
60
- /**
61
- * Remaps the given value from the range [0-1] to [0-max].
62
- */
63
- export declare function remap(value: number, max: number): number;
64
- /**
65
- * Clamps the given value between the given min and max.
66
- */
67
- export declare function clamp(value: number, min: number, max: number): number;
52
+ export type HitCheckResult = {
53
+ vimHandle: number;
54
+ nodeIndex: number;
55
+ worldPosition: THREE.Vector3;
56
+ worldNormal: THREE.Vector3;
57
+ };
58
+ export type VimStatus = {
59
+ status: number;
60
+ progress: number;
61
+ };
62
+ export type SectionBoxState = {
63
+ visible: boolean;
64
+ interactive: boolean;
65
+ clip: boolean;
66
+ box: THREE.Box3;
67
+ };
@@ -1,5 +1,5 @@
1
- import { Box3 } from "../utils/math3d";
2
1
  import { RpcSafeClient } from "./rpcSafeClient";
2
+ import * as THREE from "three";
3
3
  export declare class SectionBox {
4
4
  private _visible;
5
5
  private _interactible;
@@ -8,6 +8,7 @@ export declare class SectionBox {
8
8
  private _rpc;
9
9
  private _interval;
10
10
  private _animationFrame;
11
+ private _pullId;
11
12
  private _onUpdate;
12
13
  get onUpdate(): import("ste-signals").ISignal;
13
14
  private get needUpdate();
@@ -22,7 +23,11 @@ export declare class SectionBox {
22
23
  set interactive(value: boolean);
23
24
  get clip(): boolean;
24
25
  set clip(value: boolean);
25
- fitBox(box: Box3): void;
26
- getBox(): Box3;
26
+ /**
27
+ * Fits the given box, invalid dimensions will be reversed.
28
+ * @param box - The new bounding box.
29
+ */
30
+ fitBox(box: THREE.Box3): void;
31
+ getBox(): THREE.Box3 | undefined;
27
32
  dispose(): void;
28
33
  }
@@ -0,0 +1,4 @@
1
+ import { Selection } from "../shared/selection";
2
+ import { Element3D } from "./element3d";
3
+ export type ISelection = Selection<Element3D>;
4
+ export declare function createSelection(): ISelection;
@@ -1,8 +1,8 @@
1
- import * as Protocol from './protocol';
2
- import { Marshal, ReadMarshal } from './marshal';
3
1
  import { ILogger } from './logger';
4
- import { Segment } from '../utils/math3d';
5
- export declare const DEFAULT_LOCAL_ULTRA_SERVER_URL = "ws://localhost:8123";
2
+ import * as Protocol from './protocol';
3
+ import { Marshal, ReadMarshal } from './rpcMarshal';
4
+ import { Segment } from './rpcTypes';
5
+ export declare const DEFAULT_LOCAL_SERVER_URL = "ws://localhost:8123";
6
6
  export type ConnectionSettings = {
7
7
  url?: string;
8
8
  retries?: number;
@@ -41,13 +41,6 @@ export type ClientStreamError = {
41
41
  serverUrl: string;
42
42
  details: string;
43
43
  };
44
- export declare enum FrameType {
45
- VideoKeyFrame = 0,
46
- VideoDeltaFrame = 1,
47
- Disconnection = 2,
48
- RPCResponse = 255,
49
- CameraPose = 254
50
- }
51
44
  /**
52
45
  * Messenger class responsible for handling WebSocket communication,
53
46
  * including sending and receiving messages, managing connection state,
@@ -1,18 +1,19 @@
1
- import { IInputs } from './inputs/inputs';
2
- import { ClientState, ConnectionSettings } from './socketClient';
1
+ import type { ISimpleEvent } from 'ste-simple-events';
2
+ import type { InputHandler } from '../shared';
3
+ import { ICamera } from './camera';
4
+ import { ColorManager } from './colorManager';
3
5
  import { IDecoder } from './decoder';
4
- import { Vim } from './vim';
5
6
  import { ILoadRequest } from './loadRequest';
6
7
  import { ILogger } from './logger';
7
- import { IViewport } from './viewport';
8
- import { ColorManager } from './colorManager';
9
- import { ICamera } from './camera';
10
- import { RpcSafeClient, VimSource } from './rpcSafeClient';
11
- import { ISimpleEvent } from 'ste-simple-events';
12
- import { ViewerSelection } from './selection';
13
- import { IReadonlyVimCollection } from './vimCollection';
8
+ import { IUltraRaycaster } from './raycaster';
14
9
  import { IRenderer } from './renderer';
10
+ import { RpcSafeClient, VimSource } from './rpcSafeClient';
15
11
  import { SectionBox } from './sectionBox';
12
+ import { ISelection } from './selection';
13
+ import { ClientState, ConnectionSettings } from './socketClient';
14
+ import { IViewport } from './viewport';
15
+ import { Vim } from './vim';
16
+ import { IReadonlyVimCollection } from './vimCollection';
16
17
  export declare const INVALID_HANDLE = 4294967295;
17
18
  /**
18
19
  * The main Viewer class responsible for managing VIM files,
@@ -28,6 +29,7 @@ export declare class Viewer {
28
29
  private readonly _viewport;
29
30
  private readonly _camera;
30
31
  private readonly _selection;
32
+ private readonly _raycaster;
31
33
  private readonly _vims;
32
34
  private _disposed;
33
35
  /**
@@ -41,7 +43,7 @@ export declare class Viewer {
41
43
  /**
42
44
  * The input API for handling user input events.
43
45
  */
44
- get inputs(): IInputs;
46
+ get inputs(): InputHandler;
45
47
  get vims(): IReadonlyVimCollection;
46
48
  /**
47
49
  * The viewport API for managing the rendering viewport.
@@ -49,7 +51,8 @@ export declare class Viewer {
49
51
  get viewport(): IViewport;
50
52
  get renderer(): IRenderer;
51
53
  get decoder(): IDecoder;
52
- get selection(): ViewerSelection;
54
+ get raycaster(): IUltraRaycaster;
55
+ get selection(): ISelection;
53
56
  /**
54
57
  * API to create, manage, and destroy colors.
55
58
  */
@@ -68,7 +71,7 @@ export declare class Viewer {
68
71
  * Gets the current connection status of the viewer.
69
72
  * @returns The current ClientStatus.
70
73
  */
71
- get state(): ClientState;
74
+ get connectionState(): ClientState;
72
75
  /**
73
76
  * The section box API for controlling the section box.
74
77
  */
@@ -0,0 +1,48 @@
1
+ import type { IVim } from '../shared/vim';
2
+ import type { ILogger } from './logger';
3
+ import { ColorManager } from './colorManager';
4
+ import { Element3D } from './element3d';
5
+ import { LoadRequest } from './loadRequest';
6
+ import { StateSynchronizer } from './nodeState';
7
+ import { Renderer } from './renderer';
8
+ import { RpcSafeClient, VimSource } from './rpcSafeClient';
9
+ import * as THREE from 'three';
10
+ import { RGBA32 } from './rpcTypes';
11
+ export declare class Vim implements IVim<Element3D> {
12
+ readonly source: VimSource;
13
+ private _handle;
14
+ private _request;
15
+ private readonly _rpc;
16
+ private _colors;
17
+ private _renderer;
18
+ private _logger;
19
+ readonly nodeState: StateSynchronizer;
20
+ private _nodeColors;
21
+ private _updatedColors;
22
+ private _updateScheduled;
23
+ private _objects;
24
+ constructor(rpc: RpcSafeClient, color: ColorManager, renderer: Renderer, source: VimSource, logger: ILogger);
25
+ getElementFromInstanceIndex(instance: number): Element3D;
26
+ getElementsFromId(id: number): Element3D[];
27
+ getElementFromIndex(element: number): Element3D;
28
+ getObjectsInBox(box: THREE.Box3): Element3D[];
29
+ getAllElements(): Element3D[];
30
+ get handle(): number;
31
+ get connected(): boolean;
32
+ connect(): LoadRequest;
33
+ disconnect(): void;
34
+ private _load;
35
+ private getErrorType;
36
+ private _getHandle;
37
+ getBoundingBoxNodes(nodes: number[] | 'all'): Promise<THREE.Box3 | undefined>;
38
+ getBoundingBox(): Promise<THREE.Box3 | undefined>;
39
+ getColor(node: number): RGBA32 | undefined;
40
+ setColor(nodes: number[], color: RGBA32 | undefined): Promise<void>;
41
+ setColors(nodes: number[], color: (RGBA32 | undefined)[]): Promise<void>;
42
+ private applyColor;
43
+ clearColor(nodes: number[] | 'all'): void;
44
+ reapplyColors(): void;
45
+ private scheduleColorUpdate;
46
+ private updateRemote;
47
+ private updateRemoteColors;
48
+ }
@@ -2,24 +2,5 @@ import './style.css';
2
2
  import { BFastSource } from 'vim-format';
3
3
  export type VimSource = BFastSource;
4
4
  export { IProgressLogs } from 'vim-format';
5
- export * from './loader/progressive/open';
6
- export * from './loader/progressive/vimRequest';
7
- export * from './loader/progressive/vimx';
8
- export * from './viewer/viewer';
9
- export * from './loader/geometry';
10
- export type { PointerMode, InputScheme } from './viewer/inputs/input';
11
- export { DefaultInputScheme, KEYS } from './viewer/inputs/input';
12
- export * from './viewer/settings/viewerSettings';
13
- export * from './viewer/settings/viewerSettingsParsing';
14
- export * from './viewer/settings/defaultViewerSettings';
15
- export { RaycastResult as HitTestResult, InputAction } from './viewer/raycaster';
16
- export { type SelectableObject } from './viewer/selection';
17
- export * from './loader/progressive/insertableMesh';
18
- export * from './loader/progressive/g3dSubset';
19
- export * from './loader/geometry';
20
- export * from './loader/materials/viewerMaterials';
21
- export * from './loader/object3D';
22
- export * from './loader/scene';
23
- export * from './loader/vim';
24
- export * from './loader/vimSettings';
25
- export * from './utils/boxes';
5
+ export * from './loader';
6
+ export * from './viewer';
@@ -3,13 +3,13 @@
3
3
  */
4
4
  import * as THREE from 'three';
5
5
  import { Vim } from './vim';
6
- import { AttributeTarget } from './objectAttributes';
7
- export declare class ColorAttribute {
6
+ import { WebglAttributeTarget } from './webglAttribute';
7
+ export declare class WebglColorAttribute {
8
8
  readonly vim: Vim;
9
9
  private _meshes;
10
10
  private _value;
11
- constructor(meshes: AttributeTarget[] | undefined, value: THREE.Color | undefined, vim: Vim | undefined);
12
- updateMeshes(meshes: AttributeTarget[] | undefined): void;
11
+ constructor(meshes: WebglAttributeTarget[] | undefined, value: THREE.Color | undefined, vim: Vim | undefined);
12
+ updateMeshes(meshes: WebglAttributeTarget[] | undefined): void;
13
13
  get value(): THREE.Color;
14
14
  apply(color: THREE.Color | undefined): void;
15
15
  /**
@@ -5,22 +5,23 @@ import * as THREE from 'three';
5
5
  import { Vim } from './vim';
6
6
  import { IElement, VimHelpers } from 'vim-format';
7
7
  import { Submesh } from './mesh';
8
+ import { IVimElement } from '../../shared/vim';
8
9
  /**
9
10
  * High level api to interact with the loaded vim geometry and data.
10
11
  */
11
- export declare class Object3D {
12
+ export declare class Element3D implements IVimElement {
12
13
  private _color;
13
14
  private _boundingBox;
14
15
  private _meshes;
15
- private _outlineAttribute;
16
- private _visibleAttribute;
17
- private _coloredAttribute;
18
- private _focusedAttribute;
19
- private _colorAttribute;
16
+ private readonly _outlineAttribute;
17
+ private readonly _visibleAttribute;
18
+ private readonly _coloredAttribute;
19
+ private readonly _focusedAttribute;
20
+ private readonly _colorAttribute;
20
21
  /**
21
22
  * Indicate whether this object is architectural or markup.
22
23
  */
23
- readonly type = "Object3D";
24
+ readonly type = "Element3D";
24
25
  /**
25
26
  * The vim object from which this object came from.
26
27
  */
@@ -42,6 +43,7 @@ export declare class Object3D {
42
43
  * @returns {boolean} True if this object has geometry, otherwise false.
43
44
  */
44
45
  get hasMesh(): boolean;
46
+ get isRoom(): boolean;
45
47
  /**
46
48
  * Determines whether to render selection outline for this object or not.
47
49
  */
@@ -64,6 +66,7 @@ export declare class Object3D {
64
66
  */
65
67
  get color(): THREE.Color | undefined;
66
68
  set color(color: THREE.Color | undefined);
69
+ private get renderer();
67
70
  /**
68
71
  * Constructs a new instance of Object.
69
72
  * @param {Vim} vim The Vim instance.
@@ -87,14 +90,14 @@ export declare class Object3D {
87
90
  * Returns undefined if the object has no geometry.
88
91
  * @returns {THREE.Box3 | undefined} The bounding box of the object, or undefined if the object has no geometry.
89
92
  */
90
- getBoundingBox(): THREE.Box3;
93
+ getBoundingBox(): Promise<THREE.Box3>;
91
94
  /**
92
95
  * Retrieves the center position of this object.
93
96
  * @param {THREE.Vector3} [target=new THREE.Vector3()] Optional parameter specifying where to copy the center position data.
94
97
  * A new instance is created if none is provided.
95
98
  * @returns {THREE.Vector3 | undefined} The center position of the object, or undefined if the object has no geometry.
96
99
  */
97
- getCenter(target?: THREE.Vector3): THREE.Vector3;
100
+ getCenter(target?: THREE.Vector3): Promise<THREE.Vector3>;
98
101
  /**
99
102
  * Internal method used to replace this object's meshes and apply color as needed.
100
103
  * @param {Submesh} mesh The new mesh to be added.