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
@@ -0,0 +1,48 @@
1
+ import { THREE } from "../..";
2
+ /**
3
+ * Interface for a Vim element.
4
+ */
5
+ export interface IVimElement {
6
+ /**
7
+ * The vim from which this object came.
8
+ */
9
+ vim: IVim<IVimElement>;
10
+ /**
11
+ * The bounding box of the object.
12
+ */
13
+ getBoundingBox(): Promise<THREE.Box3 | undefined>;
14
+ }
15
+ /**
16
+ * Interface for a Vim object.
17
+ * @template T - The type of element contained in the Vim.
18
+ */
19
+ export interface IVim<T extends IVimElement> {
20
+ /**
21
+ * Retrieves the element associated with the specified instance index.
22
+ * @param instance - The instance index of the of one of the instance included in the element.
23
+ * @returns The object corresponding to the instance, or undefined if not found.
24
+ */
25
+ getElementFromInstanceIndex(instance: number): T | undefined;
26
+ /**
27
+ * Retrieves the element associated with the specified id.
28
+ * @param id - The element ID to retrieve objects for.
29
+ * @returns An array of element corresponding to the given id.
30
+ */
31
+ getElementsFromId(id: number): T[];
32
+ /**
33
+ * Retrieves the element associated with the given index.
34
+ * @param element - The index of the element.
35
+ * @returns The element corresponding to the element index, or undefined if not found.
36
+ */
37
+ getElementFromIndex(element: number): T | undefined;
38
+ /**
39
+ * Retrieves all elements within the Vim.
40
+ * @returns An array of all Vim objects.
41
+ */
42
+ getAllElements(): T[];
43
+ /**
44
+ * Retrieves the bounding box of the Vim object.
45
+ * @returns The bounding box of the Vim object.
46
+ */
47
+ getBoundingBox(): Promise<THREE.Box3>;
48
+ }
@@ -1,6 +1,8 @@
1
- import { Box3, Segment } from '../utils/math3d';
2
1
  import { RpcSafeClient } from './rpcSafeClient';
2
+ import { Element3D } from './element3d';
3
3
  import { Vim } from './vim';
4
+ import { Segment } from './rpcTypes';
5
+ import * as THREE from 'three';
4
6
  /**
5
7
  * Interface defining camera control operations in the 3D viewer
6
8
  * @interface
@@ -18,7 +20,7 @@ export interface ICamera {
18
20
  * @param {number} [blendTime=0.5] - Animation duration in seconds
19
21
  * @returns {Promise<Segment | undefined>} Promise resolving to the final camera position segment
20
22
  */
21
- frameBox(box: Box3, blendTime?: number): Promise<Segment | undefined>;
23
+ frameBox(box: THREE.Box3, blendTime?: number): Promise<Segment | undefined>;
22
24
  /**
23
25
  * Frames specified nodes of a Vim model in the camera view
24
26
  * @param {Vim} vim - The target Vim model
@@ -27,6 +29,13 @@ export interface ICamera {
27
29
  * @returns {Promise<Segment | undefined>} Promise resolving to the final camera position segment
28
30
  */
29
31
  frameVim(vim: Vim, nodes: number[] | 'all', blendTime?: number): Promise<Segment | undefined>;
32
+ /**
33
+ * Frames a specific object in the camera view
34
+ * @param {Element3D} object - The target object to frame
35
+ * @param {number} [blendTime=0.5] - Animation duration in seconds
36
+ * @returns {Promise<Segment | undefined>} Promise resolving to the final camera position segment
37
+ */
38
+ frameObject(object: Element3D, blendTime?: number): Promise<Segment | undefined>;
30
39
  /**
31
40
  * Saves the current camera position for later restoration
32
41
  * @param {Segment} [segment] - Optional specific camera position to save
@@ -51,7 +60,6 @@ export interface ICamera {
51
60
  export declare class Camera implements ICamera {
52
61
  private _rpc;
53
62
  private _lastPosition;
54
- private _interval;
55
63
  private _defaultBlendTime;
56
64
  private _savedPosition;
57
65
  /**
@@ -78,6 +86,7 @@ export declare class Camera implements ICamera {
78
86
  */
79
87
  onConnect(): void;
80
88
  onCameraPose(pose: Segment): void;
89
+ set(position: THREE.Vector3, target: THREE.Vector3, blendTime?: number): void;
81
90
  /**
82
91
  * Pauses or resumes rendering
83
92
  * @param value - True to pause rendering, false to resume
@@ -94,7 +103,7 @@ export declare class Camera implements ICamera {
94
103
  * @param box - The 3D bounding box to frame in the camera view
95
104
  * @param blendTime - Duration of the camera animation in seconds (defaults to 0.5)
96
105
  */
97
- frameBox(box: Box3, blendTime?: number): Promise<Segment | undefined>;
106
+ frameBox(box: THREE.Box3, blendTime?: number): Promise<Segment | undefined>;
98
107
  /**
99
108
  * Frames specific nodes of a Vim model in the camera view
100
109
  * @param vim - The Vim model containing the nodes to frame
@@ -103,4 +112,5 @@ export declare class Camera implements ICamera {
103
112
  * @returns Promise that resolves when the framing animation is complete
104
113
  */
105
114
  frameVim(vim: Vim, nodes: number[] | 'all', blendTime?: number): Promise<Segment | undefined>;
115
+ frameObject(object: Element3D, blendTime?: number): Promise<Segment | undefined>;
106
116
  }
@@ -1,6 +1,6 @@
1
1
  import { RpcSafeClient } from './rpcSafeClient';
2
- import { 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,43 @@
1
+ import { IVimElement } from "../shared/vim";
2
+ import { NodeState } from "./nodeState";
3
+ import { Box3, RGBA32 } from "./rpcTypes";
4
+ import { Vim } from "./vim";
5
+ /**
6
+ * Represents a single 3D element within a `Vim` model.
7
+ * Provides access to per-instance state, color, and bounding box.
8
+ */
9
+ export declare class Element3D implements IVimElement {
10
+ /**
11
+ * The parent `Vim` instance this element belongs to.
12
+ */
13
+ readonly vim: Vim;
14
+ /**
15
+ * The internal instance index within the `Vim` model.
16
+ */
17
+ readonly instance: number;
18
+ /**
19
+ * The unique handle of the parent `Vim` model.
20
+ */
21
+ get vimHandle(): number;
22
+ /**
23
+ * Creates a new `Element3D` instance.
24
+ * @param vim - The parent `Vim` model.
25
+ * @param instance - The internal instance index.
26
+ */
27
+ constructor(vim: Vim, instance: number);
28
+ /**
29
+ * Gets or sets the display state of the element (e.g., visible, hidden).
30
+ */
31
+ get state(): NodeState;
32
+ set state(state: NodeState);
33
+ /**
34
+ * Gets or sets the color override of the element.
35
+ */
36
+ get color(): RGBA32 | undefined;
37
+ set color(color: RGBA32 | undefined);
38
+ /**
39
+ * Computes and returns the bounding box of the element.
40
+ * @returns A promise resolving to the element's bounding box.
41
+ */
42
+ getBoundingBox(): Promise<Box3>;
43
+ }
@@ -1,9 +1,29 @@
1
1
  import "./style.css";
2
- export * from './viewer/viewer';
3
- export * as utils from './utils/promise';
4
- export * from './viewer/vim';
5
- export * from './utils/math3d';
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';
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 { NodeState } from './nodeState';
6
+ export { InputMode, VimLoadingStatus } from './rpcSafeClient';
7
+ export type * from './camera';
8
+ export type * from './colorManager';
9
+ export type * from './decoder';
10
+ export type * from './nodeState';
11
+ export type * from './element3d';
12
+ export type * from './inputAdapter';
13
+ export type * from './loadRequest';
14
+ export type * from './logger';
15
+ export type * from './protocol';
16
+ export type * from './raycaster';
17
+ export type * from './remoteColor';
18
+ export type * from './renderer';
19
+ export type * from './rpcClient';
20
+ export type * from './rpcMarshal';
21
+ export type * 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,8 @@
1
+ import { InputHandler } from "../shared/inputHandler";
2
+ import { Viewer } from "./viewer";
3
+ /**
4
+ * Creates a new `InputHandler` connected to the provided `Viewer`.
5
+ * @param viewer - The target viewer.
6
+ * @returns An `InputHandler` instance wired to the viewer.
7
+ */
8
+ export declare function ultraInputAdapter(viewer: Viewer): InputHandler;
@@ -0,0 +1,113 @@
1
+ import { RpcSafeClient } from './rpcSafeClient';
2
+ /**
3
+ * Represents the possible states a node can have in the UltraVim system.
4
+ */
5
+ export declare enum NodeState {
6
+ VISIBLE = "visible",
7
+ HIDDEN = "hidden",
8
+ GHOSTED = "ghosted",
9
+ HIGHLIGHTED = "highlighted"
10
+ }
11
+ /**
12
+ * A class that wraps a StateTracker and is responsible for synchronizing its state updates with the remote RPCs.
13
+ * It batches updates to optimize performance and handles the communication with the remote system.
14
+ */
15
+ export declare class StateSynchronizer {
16
+ private _tracker;
17
+ private _rpc;
18
+ private _getHandle;
19
+ private _onUpdate;
20
+ private _isConnected;
21
+ private _animationFrame;
22
+ /**
23
+ * Creates a new StateSynchronizer instance.
24
+ *
25
+ * @param rpc - The RPC client used to communicate with the remote system
26
+ * @param getHandle - Function that returns the current handle identifier
27
+ * @param isConnected - Function that returns whether the connection to the remote system is active
28
+ * @param onUpdate - Callback function invoked when updates are sent to the remote system
29
+ * @param defaultState - The default state for nodes when not explicitly set (defaults to VISIBLE)
30
+ */
31
+ constructor(rpc: RpcSafeClient, getHandle: () => number, isConnected: () => boolean, onUpdate: () => void, defaultState?: NodeState);
32
+ /**
33
+ * Checks if all nodes are in the specified state(s).
34
+ *
35
+ * @param state - A single state or array of states to check against
36
+ * @returns True if all nodes are in the specified state(s), false otherwise
37
+ */
38
+ areAllInState(state: NodeState | NodeState[]): boolean;
39
+ /**
40
+ * Gets the current state of a specific node.
41
+ *
42
+ * @param node - The node identifier
43
+ * @returns The current state of the node
44
+ */
45
+ getNodeState(node: number): NodeState;
46
+ /**
47
+ * Gets all nodes that are currently in the specified state.
48
+ *
49
+ * @param state - The state to query
50
+ * @returns Either 'all' if all nodes are in this state, or an array of node IDs
51
+ */
52
+ getNodesInState(state: NodeState): number[] | 'all';
53
+ /**
54
+ * Gets the default state used for nodes without explicit state settings.
55
+ *
56
+ * @returns The current default state
57
+ */
58
+ getDefaultState(): NodeState;
59
+ /**
60
+ * Sets the state of a specific node.
61
+ *
62
+ * @param nodeId - The identifier of the node
63
+ * @param state - The new state to apply
64
+ */
65
+ setNodeState(nodeId: number, state: NodeState): void;
66
+ /**
67
+ * Sets the state of all nodes to the specified value.
68
+ *
69
+ * @param state - The state to apply to all nodes
70
+ * @param clear - If true, clears all node-specific overrides
71
+ */
72
+ setAllNodesState(state: NodeState): void;
73
+ /**
74
+ * Replaces all nodes in one state (or states) with another state.
75
+ *
76
+ * @param fromState - The state(s) to replace
77
+ * @param toState - The new state to apply
78
+ */
79
+ replaceState(fromState: NodeState | NodeState[], toState: NodeState): void;
80
+ /**
81
+ * Reapplies all current state settings, useful after a reconnection.
82
+ * This will remove redundant overrides and ensure consistency.
83
+ */
84
+ reapplyStates(): void;
85
+ /**
86
+ * Schedules a synchronization on the next animation frame.
87
+ * This batches multiple rapid state changes to avoid excessive RPC calls.
88
+ *
89
+ * @private
90
+ */
91
+ private scheduleUpdate;
92
+ /**
93
+ * Processes all pending updates and sends them to the remote system.
94
+ *
95
+ * @private
96
+ */
97
+ private remoteUpdate;
98
+ /**
99
+ * Calls the appropriate RPC method to update the state of all nodes.
100
+ *
101
+ * @param state - The state to apply to all nodes
102
+ * @private
103
+ */
104
+ private callRPCForStateAll;
105
+ /**
106
+ * Calls the appropriate RPC method to update the state of specific nodes.
107
+ *
108
+ * @param state - The state to apply
109
+ * @param nodes - Array of node IDs to update
110
+ * @private
111
+ */
112
+ private callRPCForStateNodes;
113
+ }
@@ -0,0 +1,52 @@
1
+ import * as THREE from "three";
2
+ import type { IRaycastResult, IRaycaster } from "../shared/raycaster";
3
+ import { Element3D } from "./element3d";
4
+ import { RpcSafeClient } from "./rpcSafeClient";
5
+ import { IReadonlyVimCollection } from "./vimCollection";
6
+ export type IUltraRaycastResult = IRaycastResult<Element3D>;
7
+ export type IUltraRaycaster = IRaycaster<Element3D>;
8
+ /**
9
+ * Represents the result of a hit test operation.
10
+ */
11
+ export declare class UltraRaycastResult implements IUltraRaycastResult {
12
+ /** The model Object hit */
13
+ object: Element3D;
14
+ /** The 3D world position of the hit point */
15
+ worldPosition: THREE.Vector3;
16
+ /** The surface normal at the hit point */
17
+ worldNormal: THREE.Vector3;
18
+ constructor(object: Element3D, worldPosition: THREE.Vector3, worldNormal: THREE.Vector3);
19
+ }
20
+ /**
21
+ * @module ultra-webgl-viewer
22
+ */
23
+ /**
24
+ * Handles raycasting operations in the Ultra system, enabling picking and
25
+ * interaction with 3D objects in the scene.
26
+ */
27
+ export declare class Raycaster implements IUltraRaycaster {
28
+ private _rpc;
29
+ private _vims;
30
+ /**
31
+ * Creates a new UltraCoreRaycaster instance.
32
+ *
33
+ * @param {RpcSafeClient} rpc - RPC client for communication with the viewer.
34
+ * @param {IReadonlyVimCollection} vims - Collection of VIM instances to manage.
35
+ */
36
+ constructor(rpc: RpcSafeClient, vims: IReadonlyVimCollection);
37
+ /**
38
+ * Performs a raycast from the camera using normalized screen coordinates.
39
+ * Coordinates must be within [0, 1] for both x and y.
40
+ *
41
+ * @param {Vector2} position - The normalized screen position for raycasting.
42
+ * @returns {Promise<UltraRaycastResult | undefined>} Promise resolving to hit test result or undefined if no hit.
43
+ */
44
+ raycastFromScreen(position: THREE.Vector2): Promise<UltraRaycastResult>;
45
+ /**
46
+ * Performs a raycast from a specific world position towards a target.
47
+ *
48
+ * @param {Vector3} position - The target world position for raycasting.
49
+ * @returns {Promise<UltraRaycastResult | undefined>} Promise resolving to hit test result or undefined if no hit.
50
+ */
51
+ raycastFromWorld(position: THREE.Vector3): Promise<UltraRaycastResult | undefined>;
52
+ }
@@ -1,10 +1,10 @@
1
- import { RGBA32 } from "../utils/math3d";
2
- import { ColorManager } from "./colorManager";
1
+ import { RGBA32 } from './rpcTypes';
2
+ import { ColorManager } from './colorManager';
3
3
  /**
4
4
  * Represents a handle to a color in the color management system.
5
5
  * This class provides access to color components and manages the lifecycle of color instances.
6
6
  */
7
- export declare class ColorHandle {
7
+ export declare class RemoteColor {
8
8
  private _manager;
9
9
  /** Unique identifier for the color instance */
10
10
  readonly id: number;
@@ -1,6 +1,8 @@
1
- import { Box3, RGBA } from "../utils/math3d";
1
+ import { ISignal } from "ste-signals";
2
+ import * as THREE from "three";
2
3
  import { ILogger } from "./logger";
3
4
  import { RpcSafeClient, SceneSettings } from "./rpcSafeClient";
5
+ import { RGBA } from "./rpcTypes";
4
6
  import { ClientStreamError } from "./socketClient";
5
7
  /**
6
8
  * Render settings that extend SceneSettings with additional rendering-specific properties
@@ -19,6 +21,7 @@ export declare const defaultRenderSettings: RenderSettings;
19
21
  * Interface defining the basic renderer capabilities
20
22
  */
21
23
  export interface IRenderer {
24
+ onSceneUpdated: ISignal;
22
25
  ghostColor: RGBA;
23
26
  lockIblRotation: boolean;
24
27
  hdrScale: number;
@@ -27,7 +30,7 @@ export interface IRenderer {
27
30
  hdrBackgroundSaturation: number;
28
31
  backgroundBlur: number;
29
32
  backgroundColor: RGBA;
30
- getBoundingBox(): Promise<Box3 | undefined>;
33
+ getBoundingBox(): Promise<THREE.Box3 | undefined>;
31
34
  }
32
35
  /**
33
36
  * Renderer class that handles 3D scene rendering and settings management
@@ -40,6 +43,8 @@ export declare class Renderer implements IRenderer {
40
43
  private _updateLighting;
41
44
  private _updateGhostColor;
42
45
  private _updateIblRotation;
46
+ private readonly _onSceneUpdated;
47
+ get onSceneUpdated(): ISignal;
43
48
  /**
44
49
  * Creates a new Renderer instance
45
50
  * @param rpc - RPC client for communication with the rendering backend
@@ -56,6 +61,7 @@ export declare class Renderer implements IRenderer {
56
61
  * Sets up initial scene settings, ghost color, and IBL rotation
57
62
  */
58
63
  onConnect(): void;
64
+ notifySceneUpdated(): void;
59
65
  /**
60
66
  * Gets the ghost color used for transparent rendering
61
67
  * @returns Current ghost color as RGBA
@@ -136,7 +142,7 @@ export declare class Renderer implements IRenderer {
136
142
  * @param value - New background color as RGBA
137
143
  */
138
144
  set backgroundColor(value: RGBA);
139
- getBoundingBox(): Promise<Box3 | undefined>;
145
+ getBoundingBox(): Promise<THREE.Box3 | undefined>;
140
146
  /**
141
147
  * Requests an update to be performed on the next animation frame.
142
148
  * Multiple setting changes will be batched into a single update.
@@ -1,6 +1,5 @@
1
1
  import type { SocketClient } from './socketClient';
2
- import { HitCheckResult, VimStatus, SectionBoxState } from './marshal';
3
- import { Box3, RGBA, RGBA32, Segment, Vector2, Vector3, Matrix44 } from '../utils/math3d';
2
+ import * as RpcTypes from './rpcTypes';
4
3
  export type MaterialHandle = 4294967295 | 6 | 2 | 0 | 1 | 3 | 4 | 5 | 7 | 8;
5
4
  export declare class MaterialHandles {
6
5
  static readonly Invalid: MaterialHandle;
@@ -24,24 +23,24 @@ export declare class RpcClient {
24
23
  RPCAddNodeFlags(componentHandle: number, nodes: number[], flags: number): void;
25
24
  RPCClearMaterialOverrides(componentHandle: number): void;
26
25
  RPCClearScene(): void;
27
- RPCCreateMaterialInstances(materialHandle: number, smoothness: number, colors: RGBA32[]): Promise<number>;
28
- RPCCreateText(position: Vector3, color: RGBA32, text: string): Promise<number>;
26
+ RPCCreateMaterialInstances(materialHandle: number, smoothness: number, colors: RpcTypes.RGBA32[]): Promise<number>;
27
+ RPCCreateText(position: RpcTypes.Vector3, color: RpcTypes.RGBA32, text: string): Promise<number>;
29
28
  RPCDestroyMaterialInstances(materialInstanceHandle: number[]): void;
30
29
  RPCDestroyText(componentHandle: number): void;
31
30
  RPCEnableSectionBox(value: boolean): void;
32
- RPCFrameAll(blendTime: number): Promise<Segment>;
33
- RPCFrameBox(box: Box3, blendTime: number): Promise<Segment>;
34
- RPCFrameInstances(componentHandle: number, nodes: number[], blendTime: number): Promise<Segment>;
35
- RPCFrameVim(componentHandle: number, blendTime: number): Promise<Segment>;
31
+ RPCFrameAll(blendTime: number): Promise<RpcTypes.Segment>;
32
+ RPCFrameBox(box: RpcTypes.Box3, blendTime: number): Promise<RpcTypes.Segment>;
33
+ RPCFrameInstances(componentHandle: number, nodes: number[], blendTime: number): Promise<RpcTypes.Segment>;
34
+ RPCFrameVim(componentHandle: number, blendTime: number): Promise<RpcTypes.Segment>;
36
35
  RPCGetAPIVersion(): Promise<string>;
37
- RPCGetBoundingBox(componentHandle: number, nodes: number[]): Promise<Box3>;
38
- RPCGetBoundingBoxAll(componentHandle: number): Promise<Box3>;
39
- RPCGetCameraPosition(): Promise<Segment>;
40
- RPCGetIblRotation(): Promise<Matrix44>;
36
+ RPCGetBoundingBox(componentHandle: number, nodes: number[]): Promise<RpcTypes.Box3>;
37
+ RPCGetBoundingBoxAll(componentHandle: number): Promise<RpcTypes.Box3>;
38
+ RPCGetCameraPosition(): Promise<RpcTypes.Segment>;
39
+ RPCGetIblRotation(): Promise<RpcTypes.Matrix44>;
41
40
  RPCGetLastError(): Promise<string>;
42
- RPCGetSceneAABB(): Promise<Box3>;
43
- RPCGetSectionBox(): Promise<SectionBoxState>;
44
- RPCGetVimLoadingState(componentHandle: number): Promise<VimStatus>;
41
+ RPCGetSceneAABB(): Promise<RpcTypes.Box3>;
42
+ RPCGetSectionBox(): Promise<RpcTypes.SectionBoxState>;
43
+ RPCGetVimLoadingState(componentHandle: number): Promise<RpcTypes.VimStatus>;
45
44
  RPCGhost(componentHandle: number, nodes: number[]): void;
46
45
  RPCGhostAll(componentHandle: number): void;
47
46
  RPCHide(componentHandle: number, nodes: number[]): void;
@@ -54,28 +53,29 @@ export declare class RpcClient {
54
53
  RPCLoadVim(fileName: string): Promise<number>;
55
54
  RPCLoadVimURL(url: string, authToken: string): Promise<number>;
56
55
  RPCLockIblRotation(lock: boolean): void;
57
- RPCMouseButtonEvent(mousePos: Vector2, mouseButton: number, down: boolean): void;
58
- RPCMouseDoubleClickEvent(mousePos: Vector2, mouseButton: number): void;
59
- RPCMouseMoveEvent(mousePos: Vector2): void;
56
+ RPCMouseButtonEvent(mousePos: RpcTypes.Vector2, mouseButton: number, down: boolean): void;
57
+ RPCMouseDoubleClickEvent(mousePos: RpcTypes.Vector2, mouseButton: number): void;
58
+ RPCMouseMoveEvent(mousePos: RpcTypes.Vector2): void;
60
59
  RPCMouseScrollEvent(scrollValue: number): void;
61
- RPCMouseSelectEvent(mousePos: Vector2, mouseButton: number): void;
62
- RPCMoveCameraTo(usePosition: boolean, useTarget: boolean, position: Vector3, target: Vector3, blendTime: number): void;
60
+ RPCMouseSelectEvent(mousePos: RpcTypes.Vector2, mouseButton: number): void;
61
+ RPCMoveCameraTo(usePosition: boolean, useTarget: boolean, position: RpcTypes.Vector3, target: RpcTypes.Vector3, blendTime: number): void;
63
62
  RPCPauseRendering(pause: boolean): void;
64
- RPCPerformHitTest(pos: Vector2): Promise<HitCheckResult>;
63
+ RPCPerformHitTest(pos: RpcTypes.Vector2): Promise<RpcTypes.HitCheckResult>;
65
64
  RPCRemoveNodeFlags(componentHandle: number, nodes: number[], flags: number): void;
66
65
  RPCSetAspectRatio(width: number, height: number): void;
67
66
  RPCSetCameraMode(orbit: boolean): void;
68
- RPCSetCameraPosition(state: Segment, blendTime: number): void;
69
- RPCSetGhostColor(ghostColor: RGBA): void;
70
- RPCSetIblRotation(transform: Matrix44): void;
71
- RPCSetLighting(toneMappingWhitePoint: number, hdrScale: number, hdrBackgroundScale: number, hdrBackgroundSaturation: number, backgroundBlur: number, backgroundColor: RGBA): void;
67
+ RPCSetCameraPosition(state: RpcTypes.Segment, blendTime: number): void;
68
+ RPCSetGhostColor(ghostColor: RpcTypes.RGBA): void;
69
+ RPCSetGhostColor2(ghostColor: RpcTypes.RGBA): void;
70
+ RPCSetIblRotation(transform: RpcTypes.Matrix44): void;
71
+ RPCSetLighting(toneMappingWhitePoint: number, hdrScale: number, hdrBackgroundScale: number, hdrBackgroundSaturation: number, backgroundBlur: number, backgroundColor: RpcTypes.RGBA): void;
72
72
  RPCSetMaterialOverrides(componentHandle: number, nodes: number[], materialInstanceHandles: number[]): void;
73
73
  RPCSetMoveSpeed(speed: number): void;
74
- RPCSetSectionBox(state: SectionBoxState): void;
74
+ RPCSetSectionBox(state: RpcTypes.SectionBoxState): void;
75
75
  RPCShow(componentHandle: number, nodes: number[]): void;
76
- RPCShowAABBs(componentHandle: number, nodes: number[], colors: RGBA32[]): void;
76
+ RPCShowAABBs(componentHandle: number, nodes: number[], colors: RpcTypes.RGBA32[]): void;
77
77
  RPCShowAll(componentHandle: number): void;
78
- RPCStartScene(toneMappingWhitePoint: number, hdrScale: number, hdrBackgroundScale: number, hdrBackgroundSaturation: number, backgroundBlur: number, backgroundColor: RGBA): Promise<boolean>;
78
+ RPCStartScene(toneMappingWhitePoint: number, hdrScale: number, hdrBackgroundScale: number, hdrBackgroundSaturation: number, backgroundBlur: number, backgroundColor: RpcTypes.RGBA): Promise<boolean>;
79
79
  RPCTriggerRenderDocCapture(): void;
80
80
  RPCUnloadVim(componentHandle: number): void;
81
81
  }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Don't modify this file, the RPC generated code depends on its interface.
3
+ */
4
+ import * as RpcTypes from "./rpcTypes";
5
+ export declare class Marshal {
6
+ private buffer;
7
+ private _dataView;
8
+ private _offset;
9
+ constructor(initialSize?: number);
10
+ getBuffer(): ArrayBuffer;
11
+ private ensureCapacity;
12
+ writeData(data: ArrayBuffer): void;
13
+ writeMatrix44(data: RpcTypes.Matrix44): void;
14
+ writeBoolean(value: boolean): void;
15
+ writeInt(value: number): void;
16
+ writeUInt(value: number): void;
17
+ writeFloat(value: number): void;
18
+ writeString(value: string): void;
19
+ writeHitCheckResult(data: RpcTypes.HitCheckResult): void;
20
+ writeVimStatus(data: RpcTypes.VimStatus): void;
21
+ writeVector2(data: RpcTypes.Vector2): void;
22
+ writeVector3(data: RpcTypes.Vector3): void;
23
+ writeRGBA(color: RpcTypes.RGBA): void;
24
+ writeRGB(color: RpcTypes.RGB): void;
25
+ writeRGBA32(color: RpcTypes.RGBA32): void;
26
+ writeSegment(segment: RpcTypes.Segment): void;
27
+ writeBox3(data: RpcTypes.Box3): void;
28
+ writeSectionBoxState(data: RpcTypes.SectionBoxState): void;
29
+ writeArrayOfInt(values: number[]): void;
30
+ writeArrayOfUInt(values: number[]): void;
31
+ writeArrayOfFloat(values: number[]): void;
32
+ writeArrayOfBool(values: boolean[]): void;
33
+ writeArrayOfRGBA32(values: RpcTypes.RGBA32[]): void;
34
+ writeArray<T>(data: T[], sizeT: number, write: (data: T) => void): void;
35
+ }
36
+ export declare class ReadMarshal {
37
+ private _dataView;
38
+ private _offset;
39
+ constructor(buffer: ArrayBuffer);
40
+ readMatrix44(): RpcTypes.Matrix44;
41
+ readInt(): number;
42
+ readUInt(): number;
43
+ readFloat(): number;
44
+ readBoolean(): boolean;
45
+ readString(): string;
46
+ readHitCheckResult(): RpcTypes.HitCheckResult;
47
+ readVimStatus(): RpcTypes.VimStatus;
48
+ readVector2(): RpcTypes.Vector2;
49
+ readVector3(): RpcTypes.Vector3;
50
+ readRGBA(): RpcTypes.RGBA;
51
+ readRGB(): RpcTypes.RGB;
52
+ readRGBA32(): RpcTypes.RGBA32;
53
+ readBox3(): RpcTypes.Box3;
54
+ readSegment(): RpcTypes.Segment;
55
+ readSectionBoxState(): RpcTypes.SectionBoxState;
56
+ readArrayOfInt(): number[];
57
+ readArrayOfUInt(): number[];
58
+ readArrayOfFloat(): number[];
59
+ readArrayOfBool(): boolean[];
60
+ readArrayOfRGBA32(): RpcTypes.RGBA32[];
61
+ readArray<T>(read: () => T): T[];
62
+ }