vim-web 0.3.23 → 0.3.24

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 (192) hide show
  1. package/dist/types/react-viewer/bim/bimInfoBody.d.ts +9 -0
  2. package/dist/types/react-viewer/bim/bimInfoData.d.ts +77 -0
  3. package/dist/types/react-viewer/bim/bimInfoHeader.d.ts +6 -0
  4. package/dist/types/react-viewer/bim/bimInfoObject.d.ts +12 -0
  5. package/dist/types/react-viewer/bim/bimInfoPanel.d.ts +10 -0
  6. package/dist/types/react-viewer/bim/bimInfoVim.d.ts +5 -0
  7. package/dist/types/react-viewer/bim/bimPanel.d.ts +40 -0
  8. package/dist/types/react-viewer/bim/bimSearch.d.ts +17 -0
  9. package/dist/types/react-viewer/bim/bimTree.d.ts +31 -0
  10. package/dist/types/react-viewer/bim/bimTreeData.d.ts +43 -0
  11. package/dist/types/react-viewer/bim/bimUtils.d.ts +13 -0
  12. package/dist/types/react-viewer/bim/openState.d.ts +5 -0
  13. package/dist/types/react-viewer/container.d.ts +27 -0
  14. package/dist/types/react-viewer/controlbar/controlBar.d.ts +57 -0
  15. package/dist/types/react-viewer/controlbar/controlBarButton.d.ts +17 -0
  16. package/dist/types/react-viewer/controlbar/controlBarCommands.d.ts +4 -0
  17. package/dist/types/react-viewer/controlbar/controlBarSection.d.ts +10 -0
  18. package/dist/types/react-viewer/controlbar/fullScreenState.d.ts +4 -0
  19. package/dist/types/react-viewer/controlbar/measureState.d.ts +7 -0
  20. package/dist/types/react-viewer/controlbar/pointerState.d.ts +6 -0
  21. package/dist/types/react-viewer/controlbar/restOfScreen.d.ts +5 -0
  22. package/dist/types/react-viewer/controlbar/sectionBoxState.d.ts +15 -0
  23. package/dist/types/react-viewer/errors/errorStyle.d.ts +15 -0
  24. package/dist/types/react-viewer/errors/errorUtils.d.ts +2 -0
  25. package/dist/types/react-viewer/errors/errors.d.ts +5 -0
  26. package/dist/types/react-viewer/errors/fileDownloadingError.d.ts +2 -0
  27. package/dist/types/react-viewer/errors/fileLoadingError.d.ts +2 -0
  28. package/dist/types/react-viewer/errors/fileOpeningError.d.ts +2 -0
  29. package/dist/types/react-viewer/errors/serverCompatibilityError.d.ts +2 -0
  30. package/dist/types/react-viewer/errors/serverConnectionError.d.ts +2 -0
  31. package/dist/types/react-viewer/helpers/camera.d.ts +37 -0
  32. package/dist/types/react-viewer/helpers/cameraObserver.d.ts +8 -0
  33. package/dist/types/react-viewer/helpers/cursor.d.ts +35 -0
  34. package/dist/types/react-viewer/helpers/data.d.ts +27 -0
  35. package/dist/types/react-viewer/helpers/deferredPromise.d.ts +8 -0
  36. package/dist/types/react-viewer/helpers/element.d.ts +13 -0
  37. package/dist/types/react-viewer/helpers/fullScreenObserver.d.ts +9 -0
  38. package/dist/types/react-viewer/helpers/inputs.d.ts +23 -0
  39. package/dist/types/react-viewer/helpers/isolation.d.ts +87 -0
  40. package/dist/types/react-viewer/helpers/loadRequest.d.ts +29 -0
  41. package/dist/types/react-viewer/helpers/requestResult.d.ts +13 -0
  42. package/dist/types/react-viewer/helpers/utils.d.ts +7 -0
  43. package/dist/types/react-viewer/panels/axesPanel.d.ts +20 -0
  44. package/dist/types/react-viewer/panels/contextMenu.d.ts +75 -0
  45. package/dist/types/react-viewer/panels/help.d.ts +15 -0
  46. package/dist/types/react-viewer/panels/icons.d.ts +46 -0
  47. package/dist/types/react-viewer/panels/loadingBox.d.ts +26 -0
  48. package/dist/types/react-viewer/panels/logo.d.ts +5 -0
  49. package/dist/types/react-viewer/panels/messageBox.d.ts +14 -0
  50. package/dist/types/react-viewer/panels/modal.d.ts +18 -0
  51. package/dist/types/react-viewer/panels/overlay.d.ts +10 -0
  52. package/dist/types/react-viewer/panels/performance.d.ts +7 -0
  53. package/dist/types/react-viewer/panels/toast.d.ts +22 -0
  54. package/dist/types/react-viewer/reactViewerIndex.d.ts +8 -0
  55. package/dist/types/react-viewer/settings/menuSettings.d.ts +17 -0
  56. package/dist/types/react-viewer/settings/settings.d.ts +65 -0
  57. package/dist/types/react-viewer/settings/settingsState.d.ts +18 -0
  58. package/dist/types/react-viewer/settings/settingsStorage.d.ts +6 -0
  59. package/dist/types/react-viewer/sidePanel/sidePanel.d.ts +20 -0
  60. package/dist/types/react-viewer/sidePanel/sideState.d.ts +22 -0
  61. package/dist/types/react-viewer/ultra/ultraComponent.d.ts +30 -0
  62. package/dist/types/react-viewer/ultra/ultraErrors.d.ts +3 -0
  63. package/dist/types/react-viewer/urls.d.ts +2 -0
  64. package/dist/types/react-viewer/webgl/viewerState.d.ts +11 -0
  65. package/dist/types/react-viewer/webgl/webglComponent.d.ts +41 -0
  66. package/dist/types/react-viewer/webgl/webglComponentRef.d.ts +99 -0
  67. package/dist/types/react-viewer/webgl/webglLoading.d.ts +67 -0
  68. package/dist/types/ultra-viewer/ultraViewerIndex.d.ts +8 -0
  69. package/dist/types/ultra-viewer/utils/array.d.ts +18 -0
  70. package/dist/types/ultra-viewer/utils/debounce.d.ts +1 -0
  71. package/dist/types/ultra-viewer/utils/deferredPromise.d.ts +8 -0
  72. package/dist/types/ultra-viewer/utils/math3d.d.ts +106 -0
  73. package/dist/types/ultra-viewer/utils/promise.d.ts +21 -0
  74. package/dist/types/ultra-viewer/utils/result.d.ts +11 -0
  75. package/dist/types/ultra-viewer/utils/url.d.ts +8 -0
  76. package/dist/types/ultra-viewer/utils/validation.d.ts +28 -0
  77. package/dist/types/ultra-viewer/viewer/camera.d.ts +118 -0
  78. package/dist/types/ultra-viewer/viewer/color.d.ts +57 -0
  79. package/dist/types/ultra-viewer/viewer/colorManager.d.ts +73 -0
  80. package/dist/types/ultra-viewer/viewer/decoder.d.ts +116 -0
  81. package/dist/types/ultra-viewer/viewer/decoderWithWorker.d.ts +80 -0
  82. package/dist/types/ultra-viewer/viewer/inputs/InputTouch.d.ts +25 -0
  83. package/dist/types/ultra-viewer/viewer/inputs/inputHandler.d.ts +7 -0
  84. package/dist/types/ultra-viewer/viewer/inputs/inputKeyboard.d.ts +20 -0
  85. package/dist/types/ultra-viewer/viewer/inputs/inputMouse.d.ts +21 -0
  86. package/dist/types/ultra-viewer/viewer/inputs/inputs.d.ts +27 -0
  87. package/dist/types/ultra-viewer/viewer/loadRequest.d.ts +36 -0
  88. package/dist/types/ultra-viewer/viewer/logger.d.ts +9 -0
  89. package/dist/types/ultra-viewer/viewer/marshal.d.ts +72 -0
  90. package/dist/types/ultra-viewer/viewer/protocol.d.ts +13 -0
  91. package/dist/types/ultra-viewer/viewer/renderer.d.ts +142 -0
  92. package/dist/types/ultra-viewer/viewer/rpcClient.d.ts +72 -0
  93. package/dist/types/ultra-viewer/viewer/rpcSafeClient.d.ts +382 -0
  94. package/dist/types/ultra-viewer/viewer/selection.d.ts +94 -0
  95. package/dist/types/ultra-viewer/viewer/socketClient.d.ts +141 -0
  96. package/dist/types/ultra-viewer/viewer/streamLogger.d.ts +19 -0
  97. package/dist/types/ultra-viewer/viewer/streamRenderer.d.ts +7 -0
  98. package/dist/types/ultra-viewer/viewer/viewer.d.ts +123 -0
  99. package/dist/types/ultra-viewer/viewer/viewport.d.ts +39 -0
  100. package/dist/types/ultra-viewer/viewer/vim.d.ts +111 -0
  101. package/dist/types/ultra-viewer/viewer/vimCollection.d.ts +43 -0
  102. package/dist/types/vimWebIndex.d.ts +4 -0
  103. package/dist/types/webgl-viewer/images.d.ts +4 -0
  104. package/dist/types/webgl-viewer/index.d.ts +26 -0
  105. package/dist/types/webgl-viewer/utils/boxes.d.ts +5 -0
  106. package/dist/types/webgl-viewer/utils/deferredPromise.d.ts +8 -0
  107. package/dist/types/webgl-viewer/utils/requestResult.d.ts +13 -0
  108. package/dist/types/webgl-viewer/vim-loader/averageBoundingBox.d.ts +6 -0
  109. package/dist/types/webgl-viewer/vim-loader/colorAttributes.d.ts +34 -0
  110. package/dist/types/webgl-viewer/vim-loader/elementMapping.d.ts +113 -0
  111. package/dist/types/webgl-viewer/vim-loader/geometry.d.ts +105 -0
  112. package/dist/types/webgl-viewer/vim-loader/materials/isolationMaterial.d.ts +12 -0
  113. package/dist/types/webgl-viewer/vim-loader/materials/maskMaterial.d.ts +8 -0
  114. package/dist/types/webgl-viewer/vim-loader/materials/mergeMaterial.d.ts +18 -0
  115. package/dist/types/webgl-viewer/vim-loader/materials/outlineMaterial.d.ts +36 -0
  116. package/dist/types/webgl-viewer/vim-loader/materials/simpleMaterial.d.ts +12 -0
  117. package/dist/types/webgl-viewer/vim-loader/materials/skyboxMaterial.d.ts +16 -0
  118. package/dist/types/webgl-viewer/vim-loader/materials/standardMaterial.d.ts +57 -0
  119. package/dist/types/webgl-viewer/vim-loader/materials/transferMaterial.d.ts +8 -0
  120. package/dist/types/webgl-viewer/vim-loader/materials/viewerMaterials.d.ts +158 -0
  121. package/dist/types/webgl-viewer/vim-loader/mesh.d.ts +115 -0
  122. package/dist/types/webgl-viewer/vim-loader/object3D.d.ts +105 -0
  123. package/dist/types/webgl-viewer/vim-loader/objectAttributes.d.ts +19 -0
  124. package/dist/types/webgl-viewer/vim-loader/progressive/g3dOffsets.d.ts +53 -0
  125. package/dist/types/webgl-viewer/vim-loader/progressive/g3dSubset.d.ts +115 -0
  126. package/dist/types/webgl-viewer/vim-loader/progressive/insertableGeometry.d.ts +40 -0
  127. package/dist/types/webgl-viewer/vim-loader/progressive/insertableMesh.d.ts +59 -0
  128. package/dist/types/webgl-viewer/vim-loader/progressive/insertableSubmesh.d.ts +43 -0
  129. package/dist/types/webgl-viewer/vim-loader/progressive/instancedMesh.d.ts +32 -0
  130. package/dist/types/webgl-viewer/vim-loader/progressive/instancedMeshFactory.d.ts +20 -0
  131. package/dist/types/webgl-viewer/vim-loader/progressive/instancedSubmesh.d.ts +31 -0
  132. package/dist/types/webgl-viewer/vim-loader/progressive/legacyMeshFactory.d.ts +23 -0
  133. package/dist/types/webgl-viewer/vim-loader/progressive/loadingSynchronizer.d.ts +27 -0
  134. package/dist/types/webgl-viewer/vim-loader/progressive/open.d.ts +12 -0
  135. package/dist/types/webgl-viewer/vim-loader/progressive/subsetBuilder.d.ts +73 -0
  136. package/dist/types/webgl-viewer/vim-loader/progressive/subsetRequest.d.ts +37 -0
  137. package/dist/types/webgl-viewer/vim-loader/progressive/vimRequest.d.ts +44 -0
  138. package/dist/types/webgl-viewer/vim-loader/progressive/vimx.d.ts +17 -0
  139. package/dist/types/webgl-viewer/vim-loader/scene.d.ts +92 -0
  140. package/dist/types/webgl-viewer/vim-loader/vim.d.ts +157 -0
  141. package/dist/types/webgl-viewer/vim-loader/vimSettings.d.ts +62 -0
  142. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/camera.d.ts +255 -0
  143. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/cameraMovement.d.ts +77 -0
  144. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/cameraMovementLerp.d.ts +28 -0
  145. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/cameraMovementSnap.d.ts +24 -0
  146. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/orthographic.d.ts +12 -0
  147. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/perspective.d.ts +12 -0
  148. package/dist/types/webgl-viewer/vim-webgl-viewer/environment/cameraLight.d.ts +43 -0
  149. package/dist/types/webgl-viewer/vim-webgl-viewer/environment/environment.d.ts +44 -0
  150. package/dist/types/webgl-viewer/vim-webgl-viewer/environment/groundPlane.d.ts +25 -0
  151. package/dist/types/webgl-viewer/vim-webgl-viewer/environment/skybox.d.ts +39 -0
  152. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/axes/axes.d.ts +14 -0
  153. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/axes/axesSettings.d.ts +19 -0
  154. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/axes/gizmoAxes.d.ts +60 -0
  155. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/gizmoLoading.d.ts +23 -0
  156. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/gizmoOrbit.d.ts +71 -0
  157. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/gizmoRectangle.d.ts +51 -0
  158. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/gizmos.d.ts +50 -0
  159. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/markers/gizmoMarker.d.ts +64 -0
  160. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/markers/gizmoMarkers.d.ts +29 -0
  161. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/measure/measure.d.ts +103 -0
  162. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/measure/measureFlow.d.ts +36 -0
  163. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/measure/measureGizmo.d.ts +44 -0
  164. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/measure/measureHtml.d.ts +26 -0
  165. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/sectionBox/sectionBox.d.ts +70 -0
  166. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/sectionBox/sectionBoxGizmo.d.ts +47 -0
  167. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/sectionBox/sectionBoxInputs.d.ts +39 -0
  168. package/dist/types/webgl-viewer/vim-webgl-viewer/inputs/input.d.ts +128 -0
  169. package/dist/types/webgl-viewer/vim-webgl-viewer/inputs/inputHandler.d.ts +29 -0
  170. package/dist/types/webgl-viewer/vim-webgl-viewer/inputs/keyboard.d.ts +113 -0
  171. package/dist/types/webgl-viewer/vim-webgl-viewer/inputs/mouse.d.ts +66 -0
  172. package/dist/types/webgl-viewer/vim-webgl-viewer/inputs/touch.d.ts +45 -0
  173. package/dist/types/webgl-viewer/vim-webgl-viewer/raycaster.d.ts +89 -0
  174. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/mergePass.d.ts +16 -0
  175. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/outlinePass.d.ts +19 -0
  176. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/renderScene.d.ts +49 -0
  177. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/renderer.d.ts +125 -0
  178. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/renderingComposer.d.ts +46 -0
  179. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/renderingSection.d.ts +36 -0
  180. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/transferPass.d.ts +15 -0
  181. package/dist/types/webgl-viewer/vim-webgl-viewer/selection.d.ts +90 -0
  182. package/dist/types/webgl-viewer/vim-webgl-viewer/settings/defaultViewerSettings.d.ts +5 -0
  183. package/dist/types/webgl-viewer/vim-webgl-viewer/settings/viewerSettings.d.ts +342 -0
  184. package/dist/types/webgl-viewer/vim-webgl-viewer/settings/viewerSettingsParsing.d.ts +9 -0
  185. package/dist/types/webgl-viewer/vim-webgl-viewer/viewer.d.ts +100 -0
  186. package/dist/types/webgl-viewer/vim-webgl-viewer/viewport.d.ts +73 -0
  187. package/dist/vim-web.css +2029 -0
  188. package/dist/vim-web.iife.js +72763 -0
  189. package/dist/vim-web.iife.js.map +1 -0
  190. package/dist/vim-web.mjs +72746 -0
  191. package/dist/vim-web.mjs.map +1 -0
  192. package/package.json +1 -1
@@ -0,0 +1,116 @@
1
+ import type { VideoFrameMessage } from './protocol';
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
+ /**
12
+ * Interface defining the basic decoder operations
13
+ */
14
+ export interface IDecoder {
15
+ /** Indicates if the decoder is ready to process frames */
16
+ ready: boolean;
17
+ /** Indicates if the decoder is currently paused */
18
+ paused: boolean;
19
+ /** Stops the decoder operations */
20
+ stop(): void;
21
+ /** Starts the decoder operations */
22
+ start(): void;
23
+ }
24
+ /**
25
+ * Decoder class responsible for decoding video frames and rendering them using WebGL.
26
+ * Handles frame queueing, decoding, and rendering through WebGL.
27
+ */
28
+ export declare class Decoder implements IDecoder {
29
+ private _decoder;
30
+ private readonly _canvas;
31
+ private readonly _renderer;
32
+ private readonly _logger;
33
+ private _firstDecoded;
34
+ private _skipUntil;
35
+ private _queue;
36
+ private _pendingFrame;
37
+ private _renderId;
38
+ private _decodeId;
39
+ /**
40
+ * Indicates whether the decoder is ready and configured.
41
+ * @returns {boolean} True if the decoder is configured, false otherwise.
42
+ */
43
+ get ready(): boolean;
44
+ /**
45
+ * Creates an instance of the Decoder class.
46
+ * @param originalCanvas - The original HTML canvas element to render frames onto
47
+ * @param logger - Logger instance for debugging and error reporting
48
+ * @throws {Error} When video decoder configuration is not supported
49
+ */
50
+ constructor(originalCanvas: HTMLCanvasElement, logger: ILogger);
51
+ /**
52
+ * Indicates whether the decoder is currently paused.
53
+ * @returns {boolean} True if paused, false otherwise.
54
+ */
55
+ get paused(): boolean;
56
+ /**
57
+ * Pauses the decoder and renderer.
58
+ */
59
+ stop(): void;
60
+ /**
61
+ * Resumes the decoder and renderer.
62
+ */
63
+ start(): void;
64
+ /**
65
+ * Clears decoding and rendering callbacks.
66
+ */
67
+ private _clearCallbacks;
68
+ /**
69
+ * Enqueues a video frame message for decoding.
70
+ * If a key frame is received, the queue is cleared except for the first frame
71
+ * to maintain decoder stability.
72
+ * @param frame - The video frame message to be queued for decoding
73
+ */
74
+ enqueue(frame: VideoFrameMessage): void;
75
+ /**
76
+ * Processes and decodes all queued video frame messages.
77
+ * Skips processing if the decoder isn't ready or the queue is empty.
78
+ * @throws {Error} When decoding fails for a video chunk
79
+ */
80
+ decode(): void;
81
+ /**
82
+ * Clears the decoder state and renderer buffer.
83
+ * Does not close the decoder instance.
84
+ */
85
+ clear(): void;
86
+ /**
87
+ * Completely disposes of the decoder instance and releases all resources.
88
+ * Should be called when the decoder is no longer needed.
89
+ */
90
+ dispose(): void;
91
+ /**
92
+ * Cleans up internal resources and cancels ongoing operations.
93
+ * @private
94
+ */
95
+ private _cleanUp;
96
+ /**
97
+ * Creates an EncodedVideoChunk from a VideoFrameMessage.
98
+ * @param message - The video frame message to convert
99
+ * @returns {EncodedVideoChunk} A chunk ready for decoder processing
100
+ * @private
101
+ */
102
+ private createChunk;
103
+ /**
104
+ * Handles the animation loop for continuous frame rendering.
105
+ * Processes pending frames and manages the render timing.
106
+ * @private
107
+ */
108
+ private animate;
109
+ /**
110
+ * Processes a decoded video frame for rendering.
111
+ * Manages frame replacement and cleanup of previous frames.
112
+ * @param frame - The decoded video frame ready for rendering
113
+ * @private
114
+ */
115
+ private renderFrame;
116
+ }
@@ -0,0 +1,80 @@
1
+ import type { VideoFrameMessage } from './protocol';
2
+ import { ILogger } from './logger';
3
+ export declare enum FrameType {
4
+ KeyFrame = 0,
5
+ DeltaFrame = 1
6
+ }
7
+ /**
8
+ * Decoder class responsible for decoding video frames and rendering them using WebGL.
9
+ */
10
+ export declare class DecoderWithWorker {
11
+ private readonly _canvas;
12
+ private readonly _renderer;
13
+ private readonly _logger;
14
+ private _firstDecoded;
15
+ private _skipUntil;
16
+ private _queue;
17
+ private _pendingFrame;
18
+ private _renderId;
19
+ private _decodeId;
20
+ private _worker;
21
+ /**
22
+ * Indicates whether the decoder is ready and configured.
23
+ * @returns {boolean} True if the decoder is configured, false otherwise.
24
+ */
25
+ get ready(): boolean;
26
+ /**
27
+ * Creates an instance of the Decoder class.
28
+ * @param originalCanvas - The original HTML canvas element.
29
+ * @param logger - Logger for logging messages and errors.
30
+ */
31
+ constructor(originalCanvas: HTMLCanvasElement, logger: ILogger);
32
+ sendFrameToWorker(frame: VideoFrameMessage): void;
33
+ /**
34
+ * Indicates whether the decoder is currently paused.
35
+ * @returns {boolean} True if paused, false otherwise.
36
+ */
37
+ get paused(): boolean;
38
+ /**
39
+ * Pauses the decoder and renderer.
40
+ */
41
+ stop(): void;
42
+ /**
43
+ * Resumes the decoder and renderer.
44
+ */
45
+ start(): void;
46
+ /**
47
+ * Clears decoding and rendering callbacks.
48
+ */
49
+ private _clearCallbacks;
50
+ /**
51
+ * Enqueues a video frame message for decoding.
52
+ * @param frame - The video frame message to enqueue.
53
+ */
54
+ enqueue(frame: VideoFrameMessage): void;
55
+ /**
56
+ * Decodes enqueued video frame messages.
57
+ */
58
+ decode(): void;
59
+ /**
60
+ * Clears the decoder and renderer, resetting the internal state.
61
+ */
62
+ clear(): void;
63
+ /**
64
+ * Disposes of the decoder, releasing resources.
65
+ */
66
+ dispose(): void;
67
+ /**
68
+ * Cleans up the renderer and clears the frame queue.
69
+ */
70
+ private _cleanUp;
71
+ /**
72
+ * Animation loop for rendering frames.
73
+ */
74
+ private animate;
75
+ /**
76
+ * Handles rendering of a decoded video frame.
77
+ * @param frame - The decoded video frame.
78
+ */
79
+ private renderFrame;
80
+ }
@@ -0,0 +1,25 @@
1
+ import { InputHandler } from "./inputHandler";
2
+ import { RpcSafeClient } from "../rpcSafeClient";
3
+ export declare class InputTouch extends InputHandler {
4
+ private readonly _rpc;
5
+ private readonly _canvas;
6
+ private _lastTouchStartPosition;
7
+ private _initialTouchDistance;
8
+ constructor(canvas: HTMLCanvasElement, rpc: RpcSafeClient);
9
+ register(): void;
10
+ dispose(): void;
11
+ private handleTouchStart;
12
+ private handleSingleTouchStart;
13
+ private handleDoubleTouchStart;
14
+ private handleTouchMove;
15
+ private handleSingleTouchMove;
16
+ private handleDoubleTouchMove;
17
+ private handlePinch;
18
+ private handleTouchEnd;
19
+ private handleSingleTouchEnd;
20
+ private handleDoubleTouchEnd;
21
+ private handleTouchCancel;
22
+ private handleTouchClick;
23
+ private hasMoved;
24
+ private relativeTouchPosition;
25
+ }
@@ -0,0 +1,7 @@
1
+ export declare abstract class InputHandler {
2
+ private readonly _disconnect;
3
+ register(): void;
4
+ dispose(): void;
5
+ unregister(): void;
6
+ protected reg<T extends Event>(element: HTMLElement | Window, eventType: string, callback: (event: T) => void): void;
7
+ }
@@ -0,0 +1,20 @@
1
+ import { ICamera } from "../camera";
2
+ import { RpcSafeClient } from "../rpcSafeClient";
3
+ import { ViewerSelection } from "../selection";
4
+ import { InputHandler } from "./inputHandler";
5
+ import { Inputs } from "./inputs";
6
+ export declare class InputKeyboard extends InputHandler {
7
+ private readonly _rpc;
8
+ private readonly _selection;
9
+ private _camera;
10
+ private _inputs;
11
+ constructor(rpc: RpcSafeClient, selection: ViewerSelection, camera: ICamera, inputs: Inputs);
12
+ register(): void;
13
+ dispose(): void;
14
+ private handleKeyDown;
15
+ private handleKeyUp;
16
+ private handleServerKeys;
17
+ private handleClientKeys;
18
+ private frameContext;
19
+ private frameSelection;
20
+ }
@@ -0,0 +1,21 @@
1
+ import { InputHandler } from "./inputHandler";
2
+ import { RpcSafeClient } from "../rpcSafeClient";
3
+ import { ViewerSelection } from "../selection";
4
+ import { ICamera } from "../camera";
5
+ export declare class InputMouse extends InputHandler {
6
+ private readonly _rpc;
7
+ private readonly _canvas;
8
+ private _lastMouseDownPosition;
9
+ private _selection;
10
+ private _camera;
11
+ constructor(canvas: HTMLCanvasElement, rpc: RpcSafeClient, selection: ViewerSelection, camera: ICamera);
12
+ register(): void;
13
+ dispose(): void;
14
+ private handlePointerDown;
15
+ private handlePointerUp;
16
+ private handleMouseClick;
17
+ private handlePointerMove;
18
+ private handleDoubleClick;
19
+ private handleMouseScroll;
20
+ private relativePosition;
21
+ }
@@ -0,0 +1,27 @@
1
+ import { InputMode, RpcSafeClient } from '../rpcSafeClient';
2
+ import { InputHandler } from './inputHandler';
3
+ import { ViewerSelection } from '../selection';
4
+ import { ICamera } from '../camera';
5
+ import { IRenderer } from '../renderer';
6
+ export interface IInputs {
7
+ moveSpeed: number;
8
+ mode: InputMode;
9
+ }
10
+ export declare class Inputs extends InputHandler implements IInputs {
11
+ private readonly _rpc;
12
+ private readonly _canvas;
13
+ private _inputsMouse;
14
+ private _inputsTouch;
15
+ private _keyboard;
16
+ private _renderer;
17
+ private _moveSpeed;
18
+ private _mode;
19
+ constructor(canvas: HTMLCanvasElement, rpc: RpcSafeClient, selection: ViewerSelection, camera: ICamera, renderer: IRenderer);
20
+ onConnect(): void;
21
+ register(): void;
22
+ get moveSpeed(): number;
23
+ set moveSpeed(value: number);
24
+ get mode(): InputMode;
25
+ set mode(value: InputMode);
26
+ dispose(): void;
27
+ }
@@ -0,0 +1,36 @@
1
+ import { Vim } from './vim';
2
+ export type LoadRequestResult = LoadSuccess | LoadError;
3
+ export declare class LoadSuccess {
4
+ readonly isError = false;
5
+ readonly isSuccess = true;
6
+ readonly vim: Vim;
7
+ constructor(vim: Vim);
8
+ }
9
+ export declare class LoadError {
10
+ error: VimRequestErrorType;
11
+ readonly isError = true;
12
+ readonly isSuccess = false;
13
+ readonly type: VimRequestErrorType;
14
+ readonly details: string | undefined;
15
+ constructor(error: VimRequestErrorType, details?: string);
16
+ }
17
+ export interface ILoadRequest {
18
+ get isCompleted(): boolean;
19
+ getProgress(): AsyncGenerator<number>;
20
+ getResult(): Promise<LoadError | LoadSuccess>;
21
+ abort(): void;
22
+ }
23
+ export type VimRequestErrorType = 'loadingError' | 'downloadingError' | 'serverDisconnected' | 'unknown' | 'cancelled';
24
+ export declare class LoadRequest implements ILoadRequest {
25
+ private _progress;
26
+ private _progressPromise;
27
+ private _completionPromise;
28
+ private _result;
29
+ get isCompleted(): boolean;
30
+ getProgress(): AsyncGenerator<number, void, unknown>;
31
+ getResult(): Promise<LoadError | LoadSuccess>;
32
+ onProgress(progress: number): void;
33
+ success(vim: Vim): this;
34
+ error(error: VimRequestErrorType, details?: string): this;
35
+ abort(): void;
36
+ }
@@ -0,0 +1,9 @@
1
+ export interface ILogger {
2
+ log(message: string): void;
3
+ error: (message: string, e: unknown) => void;
4
+ }
5
+ export declare const defaultLogger: ILogger;
6
+ export declare function createLogger(onMsg: (str: string) => void): {
7
+ log: (str: string) => void;
8
+ error: (str: string, e: unknown) => void;
9
+ };
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Don't modify this file, the RPC generated code depends on its interface.
3
+ */
4
+ import { Box3, RGB, RGBA, RGBA32, Segment, Vector2, Vector3 } from "../utils/math3d";
5
+ export type HitCheckResult = {
6
+ vimHandle: number;
7
+ nodeIndex: number;
8
+ worldPosition: Vector3;
9
+ worldNormal: Vector3;
10
+ };
11
+ export type VimStatus = {
12
+ status: number;
13
+ progress: number;
14
+ };
15
+ export type Vector4 = {
16
+ x: number;
17
+ y: number;
18
+ z: number;
19
+ w: number;
20
+ };
21
+ export declare class Marshal {
22
+ private buffer;
23
+ private dataView;
24
+ private readOffset;
25
+ private writeOffset;
26
+ constructor(initialSize?: number);
27
+ getBuffer(): ArrayBuffer;
28
+ private ensureCapacity;
29
+ writeData(data: ArrayBuffer): void;
30
+ writeBoolean(value: boolean): void;
31
+ readBoolean(): boolean;
32
+ writeInt(value: number): void;
33
+ readInt(): number;
34
+ writeUInt(value: number): void;
35
+ readUInt(): number;
36
+ writeFloat(value: number): void;
37
+ readFloat(): number;
38
+ writeString(value: string): void;
39
+ readString(): string;
40
+ writeHitCheckResult(data: HitCheckResult): void;
41
+ readHitCheckResult(): HitCheckResult;
42
+ writeVimStatus(data: VimStatus): void;
43
+ readVimStatus(): VimStatus;
44
+ writeVector2(data: Vector2): void;
45
+ readVector2(): Vector2;
46
+ writeVector3(data: Vector3): void;
47
+ readVector3(): Vector3;
48
+ writeVector4(data: Vector4): void;
49
+ readVector4(): Vector4;
50
+ writeRGBA(color: RGBA): void;
51
+ readRGBA(): RGBA;
52
+ writeRGB(color: RGBA): void;
53
+ readRGB(): RGB;
54
+ writeRGBA32(color: RGBA32): void;
55
+ readRGBA32(): RGBA32;
56
+ writeSegment(segment: Segment): void;
57
+ readSegment(): Segment;
58
+ writeBox3(data: Box3): void;
59
+ readBox3(): Box3;
60
+ writeArrayOfInt(values: number[]): void;
61
+ readArrayOfInt(): number[];
62
+ writeArrayOfUInt(values: number[]): void;
63
+ readArrayOfUInt(): number[];
64
+ writeArrayOfFloat(values: number[]): void;
65
+ readArrayOfFloat(): number[];
66
+ writeArrayOfBool(values: boolean[]): void;
67
+ readArrayOfBool(): boolean[];
68
+ writeArrayOfRGBA32(values: RGBA32[]): void;
69
+ readArrayOfRGBA32(): RGBA32[];
70
+ writeArray<T>(data: T[], sizeT: number, write: (data: T) => void): void;
71
+ readArray<T>(read: () => T): T[];
72
+ }
@@ -0,0 +1,13 @@
1
+ export interface VideoFrameHeader {
2
+ timestamp: number;
3
+ duration: number;
4
+ frameType: number;
5
+ dataLength: number;
6
+ }
7
+ export interface VideoFrameMessage {
8
+ header: VideoFrameHeader;
9
+ dataBuffer: ArrayBuffer;
10
+ }
11
+ export declare const HEADER_SIZE = 16;
12
+ export declare function readHeader(buffer: ArrayBuffer): VideoFrameHeader;
13
+ export declare function readBlob(blob: Blob): Promise<VideoFrameMessage>;
@@ -0,0 +1,142 @@
1
+ import { RGBA } from "../utils/math3d";
2
+ import { RpcSafeClient, SceneSettings } from "./rpcSafeClient";
3
+ /**
4
+ * Render settings that extend SceneSettings with additional rendering-specific properties
5
+ */
6
+ export type RenderSettings = SceneSettings & {
7
+ /** Whether to lock the Image-Based Lighting rotation */
8
+ lockIblRotation: boolean;
9
+ /** Color used for ghost/transparent rendering */
10
+ ghostColor: RGBA;
11
+ };
12
+ /**
13
+ * Default rendering settings
14
+ */
15
+ export declare const defaultRenderSettings: RenderSettings;
16
+ /**
17
+ * Interface defining the basic renderer capabilities
18
+ */
19
+ export interface IRenderer {
20
+ ghostColor: RGBA;
21
+ lockIblRotation: boolean;
22
+ hdrScale: number;
23
+ toneMappingWhitePoint: number;
24
+ hdrBackgroundScale: number;
25
+ hdrBackgroundSaturation: number;
26
+ backgroundBlur: number;
27
+ backgroundColor: RGBA;
28
+ }
29
+ /**
30
+ * Renderer class that handles 3D scene rendering and settings management
31
+ */
32
+ export declare class Renderer implements IRenderer {
33
+ private _rpc;
34
+ private _settings;
35
+ private _animationFrame;
36
+ private _updateLighting;
37
+ private _updateGhostColor;
38
+ private _updateIblRotation;
39
+ /**
40
+ * Creates a new Renderer instance
41
+ * @param rpc - RPC client for communication with the rendering backend
42
+ * @param settings - Optional partial render settings to override defaults
43
+ */
44
+ constructor(rpc: RpcSafeClient, settings?: Partial<RenderSettings>);
45
+ /**
46
+ * Initializes the renderer when connection is established
47
+ * Sets up initial scene settings, ghost color, and IBL rotation
48
+ */
49
+ onConnect(): void;
50
+ /**
51
+ * Gets the ghost color used for transparent rendering
52
+ * @returns Current ghost color as RGBA
53
+ */
54
+ get ghostColor(): RGBA;
55
+ /**
56
+ * Gets the IBL rotation lock setting
57
+ * @returns Whether IBL rotation is locked
58
+ */
59
+ get lockIblRotation(): boolean;
60
+ /**
61
+ * Gets the tone mapping white point value
62
+ * @returns Current tone mapping white point
63
+ */
64
+ get toneMappingWhitePoint(): number;
65
+ /**
66
+ * Gets the HDR scale value
67
+ * @returns Current HDR scale
68
+ */
69
+ get hdrScale(): number;
70
+ /**
71
+ * Gets the HDR background scale value
72
+ * @returns Current HDR background scale
73
+ */
74
+ get hdrBackgroundScale(): number;
75
+ /**
76
+ * Gets the HDR background saturation value
77
+ * @returns Current HDR background saturation
78
+ */
79
+ get hdrBackgroundSaturation(): number;
80
+ /**
81
+ * Gets the background blur value
82
+ * @returns Current background blur
83
+ */
84
+ get backgroundBlur(): number;
85
+ /**
86
+ * Gets the background color
87
+ * @returns Current background color as RGBA
88
+ */
89
+ get backgroundColor(): RGBA;
90
+ /**
91
+ * Updates the ghost color used for transparent rendering
92
+ * @param value - New ghost color as RGBA
93
+ */
94
+ set ghostColor(value: RGBA);
95
+ /**
96
+ * Updates the IBL rotation lock setting
97
+ * @param value - Whether to lock IBL rotation
98
+ */
99
+ set lockIblRotation(value: boolean);
100
+ /**
101
+ * Sets the tone mapping white point value
102
+ * @param value - New tone mapping white point value
103
+ */
104
+ set toneMappingWhitePoint(value: number);
105
+ /**
106
+ * Sets the HDR scale value
107
+ * @param value - New HDR scale value
108
+ */
109
+ set hdrScale(value: number);
110
+ /**
111
+ * Sets the HDR background scale value
112
+ * @param value - New HDR background scale value
113
+ */
114
+ set hdrBackgroundScale(value: number);
115
+ /**
116
+ * Sets the HDR background saturation value
117
+ * @param value - New HDR background saturation value
118
+ */
119
+ set hdrBackgroundSaturation(value: number);
120
+ /**
121
+ * Sets the background blur value
122
+ * @param value - New background blur value
123
+ */
124
+ set backgroundBlur(value: number);
125
+ /**
126
+ * Sets the background color
127
+ * @param value - New background color as RGBA
128
+ */
129
+ set backgroundColor(value: RGBA);
130
+ /**
131
+ * Requests an update to be performed on the next animation frame.
132
+ * Multiple setting changes will be batched into a single update.
133
+ * @private
134
+ */
135
+ private requestSettingsUpdate;
136
+ private applySettings;
137
+ /**
138
+ * Cleans up renderer resources
139
+ * Cancels any pending animation frames
140
+ */
141
+ dispose(): void;
142
+ }
@@ -0,0 +1,72 @@
1
+ import type { SocketClient } from './socketClient';
2
+ import { HitCheckResult, VimStatus } from './marshal';
3
+ import { Box3, RGBA, RGBA32, Segment, Vector2, Vector3 } from '../utils/math3d';
4
+ export type MaterialHandle = 4294967295 | 6 | 2 | 0 | 1 | 3 | 4 | 5 | 7 | 8;
5
+ export declare class MaterialHandles {
6
+ static readonly Invalid: MaterialHandle;
7
+ static readonly Wireframe: MaterialHandle;
8
+ static readonly FlatShaded: MaterialHandle;
9
+ static readonly StandardOpaque: MaterialHandle;
10
+ static readonly StandardGlass: MaterialHandle;
11
+ static readonly GhostOutline: MaterialHandle;
12
+ static readonly GhostFill: MaterialHandle;
13
+ static readonly GhostBoth: MaterialHandle;
14
+ static readonly Highlight: MaterialHandle;
15
+ static readonly Invisible: MaterialHandle;
16
+ }
17
+ export declare const materialHandles: MaterialHandle[];
18
+ export declare class RpcClient {
19
+ private readonly _messenger;
20
+ constructor(_messenger: SocketClient);
21
+ readonly API_VERSION = "4.0.0";
22
+ RPCClearMaterialOverrides(componentHandle: number): void;
23
+ RPCClearScene(): void;
24
+ RPCCreateMaterialInstances(materialHandle: number, smoothness: number, colors: RGBA32[]): Promise<number>;
25
+ RPCCreateText(position: Vector3, color: RGBA32, text: string): Promise<number>;
26
+ RPCDestroyMaterialInstances(materialInstanceHandle: number[]): void;
27
+ RPCDestroyText(componentHandle: number): void;
28
+ RPCEnableSectionBox(enable: boolean): void;
29
+ RPCFrameAll(blendTime: number): Promise<Segment>;
30
+ RPCFrameBox(box: Box3, blendTime: number): Promise<Segment>;
31
+ RPCFrameInstances(componentHandle: number, nodes: number[], blendTime: number): Promise<Segment>;
32
+ RPCFrameVim(componentHandle: number, blendTime: number): Promise<Segment>;
33
+ RPCGetAPIVersion(): Promise<string>;
34
+ RPCGetBoundingBox(componentHandle: number, nodes: number[]): Promise<Box3>;
35
+ RPCGetCameraPosition(): Promise<Segment>;
36
+ RPCGetLastError(): Promise<string>;
37
+ RPCGetVimLoadingState(componentHandle: number): Promise<VimStatus>;
38
+ RPCGhost(componentHandle: number, nodes: number[]): void;
39
+ RPCGhostAll(componentHandle: number): void;
40
+ RPCHide(componentHandle: number, nodes: number[]): void;
41
+ RPCHideAABBs(componentHandle: number, nodes: number[]): void;
42
+ RPCHideAll(componentHandle: number): void;
43
+ RPCHideAllAABBs(componentHandle: number): void;
44
+ RPCHighlight(componentHandle: number, nodes: number[]): void;
45
+ RPCHighlightAll(componentHandle: number): void;
46
+ RPCKeyEvent(keyCode: number, down: boolean): void;
47
+ RPCLoadVim(fileName: string): Promise<number>;
48
+ RPCLoadVimURL(url: string, authToken: string): Promise<number>;
49
+ RPCLockIblRotation(lock: boolean): void;
50
+ RPCMouseButtonEvent(mousePos: Vector2, mouseButton: number, down: boolean): void;
51
+ RPCMouseDoubleClickEvent(mousePos: Vector2, mouseButton: number): void;
52
+ RPCMouseMoveEvent(mousePos: Vector2): void;
53
+ RPCMouseScrollEvent(scrollValue: number): void;
54
+ RPCMouseSelectEvent(mousePos: Vector2, mouseButton: number): void;
55
+ RPCMoveCameraTo(usePosition: boolean, useTarget: boolean, position: Vector3, target: Vector3, blendTime: number): void;
56
+ RPCPauseRendering(pause: boolean): void;
57
+ RPCPerformHitTest(pos: Vector2): Promise<HitCheckResult>;
58
+ RPCSetAspectRatio(width: number, height: number): void;
59
+ RPCSetCameraMode(orbit: boolean): void;
60
+ RPCSetCameraPosition(state: Segment, blendTime: number): void;
61
+ RPCSetGhostColor(ghostColor: RGBA): void;
62
+ RPCSetLighting(toneMappingWhitePoint: number, hdrScale: number, hdrBackgroundScale: number, hdrBackgroundSaturation: number, backgroundBlur: number, backgroundColor: RGBA): void;
63
+ RPCSetMaterialOverrides(componentHandle: number, nodes: number[], materialInstanceHandles: number[]): void;
64
+ RPCSetMoveSpeed(speed: number): void;
65
+ RPCSetSectionBox(aabb: Box3): void;
66
+ RPCShow(componentHandle: number, nodes: number[]): void;
67
+ RPCShowAABBs(componentHandle: number, nodes: number[], colors: RGBA32[]): void;
68
+ RPCShowAll(componentHandle: number): void;
69
+ RPCStartScene(toneMappingWhitePoint: number, hdrScale: number, hdrBackgroundScale: number, hdrBackgroundSaturation: number, backgroundBlur: number, backgroundColor: RGBA): void;
70
+ RPCTriggerRenderDocCapture(): void;
71
+ RPCUnloadVim(componentHandle: number): void;
72
+ }