vim-web 0.6.0-dev.0 → 0.6.0-dev.10

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 (262) hide show
  1. package/README.md +104 -75
  2. package/dist/style.css +3 -0
  3. package/dist/vim-bim.d.ts +1920 -0
  4. package/dist/vim-web.d.ts +3364 -0
  5. package/dist/vim-web.iife.js +13597 -14585
  6. package/dist/vim-web.iife.js.map +1 -1
  7. package/dist/vim-web.js +13626 -14614
  8. package/dist/vim-web.js.map +1 -1
  9. package/package.json +12 -9
  10. package/dist/types/core-viewers/index.d.ts +0 -3
  11. package/dist/types/core-viewers/shared/baseInputHandler.d.ts +0 -28
  12. package/dist/types/core-viewers/shared/index.d.ts +0 -11
  13. package/dist/types/core-viewers/shared/inputAdapter.d.ts +0 -22
  14. package/dist/types/core-viewers/shared/inputHandler.d.ts +0 -99
  15. package/dist/types/core-viewers/shared/keyboardHandler.d.ts +0 -96
  16. package/dist/types/core-viewers/shared/loadResult.d.ts +0 -55
  17. package/dist/types/core-viewers/shared/mouseHandler.d.ts +0 -30
  18. package/dist/types/core-viewers/shared/raycaster.d.ts +0 -27
  19. package/dist/types/core-viewers/shared/selection.d.ts +0 -105
  20. package/dist/types/core-viewers/shared/touchHandler.d.ts +0 -42
  21. package/dist/types/core-viewers/shared/vim.d.ts +0 -48
  22. package/dist/types/core-viewers/shared/vimCollection.d.ts +0 -25
  23. package/dist/types/core-viewers/ultra/camera.d.ts +0 -116
  24. package/dist/types/core-viewers/ultra/colorManager.d.ts +0 -73
  25. package/dist/types/core-viewers/ultra/decoder.d.ts +0 -108
  26. package/dist/types/core-viewers/ultra/decoderWithWorker.d.ts +0 -80
  27. package/dist/types/core-viewers/ultra/element3d.d.ts +0 -44
  28. package/dist/types/core-viewers/ultra/index.d.ts +0 -29
  29. package/dist/types/core-viewers/ultra/inputAdapter.d.ts +0 -8
  30. package/dist/types/core-viewers/ultra/loadRequest.d.ts +0 -14
  31. package/dist/types/core-viewers/ultra/logger.d.ts +0 -9
  32. package/dist/types/core-viewers/ultra/protocol.d.ts +0 -13
  33. package/dist/types/core-viewers/ultra/raycaster.d.ts +0 -52
  34. package/dist/types/core-viewers/ultra/remoteColor.d.ts +0 -37
  35. package/dist/types/core-viewers/ultra/renderer.d.ts +0 -147
  36. package/dist/types/core-viewers/ultra/rpcClient.d.ts +0 -86
  37. package/dist/types/core-viewers/ultra/rpcMarshal.d.ts +0 -64
  38. package/dist/types/core-viewers/ultra/rpcSafeClient.d.ts +0 -470
  39. package/dist/types/core-viewers/ultra/rpcTypes.d.ts +0 -71
  40. package/dist/types/core-viewers/ultra/rpcUtils.d.ts +0 -8
  41. package/dist/types/core-viewers/ultra/sectionBox.d.ts +0 -33
  42. package/dist/types/core-viewers/ultra/selection.d.ts +0 -4
  43. package/dist/types/core-viewers/ultra/socketClient.d.ts +0 -153
  44. package/dist/types/core-viewers/ultra/streamLogger.d.ts +0 -19
  45. package/dist/types/core-viewers/ultra/streamRenderer.d.ts +0 -7
  46. package/dist/types/core-viewers/ultra/viewer.d.ts +0 -139
  47. package/dist/types/core-viewers/ultra/viewport.d.ts +0 -47
  48. package/dist/types/core-viewers/ultra/vim.d.ts +0 -50
  49. package/dist/types/core-viewers/ultra/vimCollection.d.ts +0 -51
  50. package/dist/types/core-viewers/ultra/visibility.d.ts +0 -100
  51. package/dist/types/core-viewers/webgl/index.d.ts +0 -5
  52. package/dist/types/core-viewers/webgl/loader/averageBoundingBox.d.ts +0 -6
  53. package/dist/types/core-viewers/webgl/loader/colorAttribute.d.ts +0 -34
  54. package/dist/types/core-viewers/webgl/loader/element3d.d.ts +0 -108
  55. package/dist/types/core-viewers/webgl/loader/elementMapping.d.ts +0 -113
  56. package/dist/types/core-viewers/webgl/loader/geometry.d.ts +0 -103
  57. package/dist/types/core-viewers/webgl/loader/index.d.ts +0 -24
  58. package/dist/types/core-viewers/webgl/loader/materials/ghostMaterial.d.ts +0 -16
  59. package/dist/types/core-viewers/webgl/loader/materials/index.d.ts +0 -10
  60. package/dist/types/core-viewers/webgl/loader/materials/maskMaterial.d.ts +0 -8
  61. package/dist/types/core-viewers/webgl/loader/materials/materials.d.ts +0 -161
  62. package/dist/types/core-viewers/webgl/loader/materials/mergeMaterial.d.ts +0 -18
  63. package/dist/types/core-viewers/webgl/loader/materials/outlineMaterial.d.ts +0 -78
  64. package/dist/types/core-viewers/webgl/loader/materials/pickingMaterial.d.ts +0 -42
  65. package/dist/types/core-viewers/webgl/loader/materials/simpleMaterial.d.ts +0 -17
  66. package/dist/types/core-viewers/webgl/loader/materials/skyboxMaterial.d.ts +0 -16
  67. package/dist/types/core-viewers/webgl/loader/materials/standardMaterial.d.ts +0 -57
  68. package/dist/types/core-viewers/webgl/loader/materials/transferMaterial.d.ts +0 -8
  69. package/dist/types/core-viewers/webgl/loader/mesh.d.ts +0 -118
  70. package/dist/types/core-viewers/webgl/loader/progressive/g3dOffsets.d.ts +0 -53
  71. package/dist/types/core-viewers/webgl/loader/progressive/g3dSubset.d.ts +0 -117
  72. package/dist/types/core-viewers/webgl/loader/progressive/insertableGeometry.d.ts +0 -45
  73. package/dist/types/core-viewers/webgl/loader/progressive/insertableMesh.d.ts +0 -63
  74. package/dist/types/core-viewers/webgl/loader/progressive/insertableSubmesh.d.ts +0 -43
  75. package/dist/types/core-viewers/webgl/loader/progressive/instancedMesh.d.ts +0 -39
  76. package/dist/types/core-viewers/webgl/loader/progressive/instancedMeshFactory.d.ts +0 -27
  77. package/dist/types/core-viewers/webgl/loader/progressive/instancedSubmesh.d.ts +0 -31
  78. package/dist/types/core-viewers/webgl/loader/progressive/legacyMeshFactory.d.ts +0 -26
  79. package/dist/types/core-viewers/webgl/loader/progressive/loadRequest.d.ts +0 -21
  80. package/dist/types/core-viewers/webgl/loader/progressive/loadingSynchronizer.d.ts +0 -27
  81. package/dist/types/core-viewers/webgl/loader/progressive/subsetBuilder.d.ts +0 -74
  82. package/dist/types/core-viewers/webgl/loader/progressive/subsetRequest.d.ts +0 -38
  83. package/dist/types/core-viewers/webgl/loader/progressive/vimx.d.ts +0 -17
  84. package/dist/types/core-viewers/webgl/loader/scene.d.ts +0 -90
  85. package/dist/types/core-viewers/webgl/loader/vim.d.ts +0 -163
  86. package/dist/types/core-viewers/webgl/loader/vimCollection.d.ts +0 -78
  87. package/dist/types/core-viewers/webgl/loader/vimSettings.d.ts +0 -69
  88. package/dist/types/core-viewers/webgl/loader/webglAttribute.d.ts +0 -19
  89. package/dist/types/core-viewers/webgl/utils/boxes.d.ts +0 -5
  90. package/dist/types/core-viewers/webgl/viewer/camera/camera.d.ts +0 -149
  91. package/dist/types/core-viewers/webgl/viewer/camera/cameraInterface.d.ts +0 -107
  92. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovement.d.ts +0 -88
  93. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementLerp.d.ts +0 -28
  94. package/dist/types/core-viewers/webgl/viewer/camera/cameraMovementSnap.d.ts +0 -23
  95. package/dist/types/core-viewers/webgl/viewer/camera/cameraOrthographic.d.ts +0 -11
  96. package/dist/types/core-viewers/webgl/viewer/camera/cameraPerspective.d.ts +0 -11
  97. package/dist/types/core-viewers/webgl/viewer/camera/index.d.ts +0 -7
  98. package/dist/types/core-viewers/webgl/viewer/environment/environment.d.ts +0 -38
  99. package/dist/types/core-viewers/webgl/viewer/environment/index.d.ts +0 -3
  100. package/dist/types/core-viewers/webgl/viewer/environment/light.d.ts +0 -43
  101. package/dist/types/core-viewers/webgl/viewer/environment/skybox.d.ts +0 -39
  102. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/axes.d.ts +0 -14
  103. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/axesSettings.d.ts +0 -20
  104. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/gizmoAxes.d.ts +0 -62
  105. package/dist/types/core-viewers/webgl/viewer/gizmos/axes/index.d.ts +0 -3
  106. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmoLoading.d.ts +0 -23
  107. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmoOrbit.d.ts +0 -76
  108. package/dist/types/core-viewers/webgl/viewer/gizmos/gizmos.d.ts +0 -45
  109. package/dist/types/core-viewers/webgl/viewer/gizmos/index.d.ts +0 -7
  110. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarker.d.ts +0 -113
  111. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarkers.d.ts +0 -52
  112. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/index.d.ts +0 -2
  113. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/index.d.ts +0 -3
  114. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/measure.d.ts +0 -97
  115. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/measureGizmo.d.ts +0 -44
  116. package/dist/types/core-viewers/webgl/viewer/gizmos/measure/measureHtml.d.ts +0 -26
  117. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/SectionBoxMesh.d.ts +0 -15
  118. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/index.d.ts +0 -7
  119. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBox.d.ts +0 -103
  120. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxGizmo.d.ts +0 -18
  121. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandle.d.ts +0 -20
  122. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxHandles.d.ts +0 -20
  123. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxInputs.d.ts +0 -118
  124. package/dist/types/core-viewers/webgl/viewer/gizmos/sectionBox/sectionBoxOutline.d.ts +0 -15
  125. package/dist/types/core-viewers/webgl/viewer/index.d.ts +0 -10
  126. package/dist/types/core-viewers/webgl/viewer/inputAdapter.d.ts +0 -3
  127. package/dist/types/core-viewers/webgl/viewer/raycaster.d.ts +0 -71
  128. package/dist/types/core-viewers/webgl/viewer/rendering/gpuPicker.d.ts +0 -127
  129. package/dist/types/core-viewers/webgl/viewer/rendering/index.d.ts +0 -4
  130. package/dist/types/core-viewers/webgl/viewer/rendering/mergePass.d.ts +0 -18
  131. package/dist/types/core-viewers/webgl/viewer/rendering/outlinePass.d.ts +0 -19
  132. package/dist/types/core-viewers/webgl/viewer/rendering/renderScene.d.ts +0 -57
  133. package/dist/types/core-viewers/webgl/viewer/rendering/renderer.d.ts +0 -135
  134. package/dist/types/core-viewers/webgl/viewer/rendering/renderingComposer.d.ts +0 -95
  135. package/dist/types/core-viewers/webgl/viewer/rendering/renderingSection.d.ts +0 -40
  136. package/dist/types/core-viewers/webgl/viewer/rendering/transferPass.d.ts +0 -17
  137. package/dist/types/core-viewers/webgl/viewer/selection.d.ts +0 -9
  138. package/dist/types/core-viewers/webgl/viewer/settings/index.d.ts +0 -3
  139. package/dist/types/core-viewers/webgl/viewer/settings/viewerDefaultSettings.d.ts +0 -5
  140. package/dist/types/core-viewers/webgl/viewer/settings/viewerSettings.d.ts +0 -310
  141. package/dist/types/core-viewers/webgl/viewer/settings/viewerSettingsParsing.d.ts +0 -9
  142. package/dist/types/core-viewers/webgl/viewer/viewer.d.ts +0 -115
  143. package/dist/types/core-viewers/webgl/viewer/viewport.d.ts +0 -73
  144. package/dist/types/index.d.ts +0 -3
  145. package/dist/types/react-viewers/bim/bimInfoBody.d.ts +0 -9
  146. package/dist/types/react-viewers/bim/bimInfoData.d.ts +0 -144
  147. package/dist/types/react-viewers/bim/bimInfoHeader.d.ts +0 -6
  148. package/dist/types/react-viewers/bim/bimInfoObject.d.ts +0 -12
  149. package/dist/types/react-viewers/bim/bimInfoPanel.d.ts +0 -10
  150. package/dist/types/react-viewers/bim/bimInfoVim.d.ts +0 -5
  151. package/dist/types/react-viewers/bim/bimPanel.d.ts +0 -40
  152. package/dist/types/react-viewers/bim/bimSearch.d.ts +0 -17
  153. package/dist/types/react-viewers/bim/bimTree.d.ts +0 -33
  154. package/dist/types/react-viewers/bim/bimTreeData.d.ts +0 -44
  155. package/dist/types/react-viewers/bim/bimUtils.d.ts +0 -13
  156. package/dist/types/react-viewers/bim/index.d.ts +0 -8
  157. package/dist/types/react-viewers/bim/openState.d.ts +0 -5
  158. package/dist/types/react-viewers/container.d.ts +0 -27
  159. package/dist/types/react-viewers/controlbar/controlBar.d.ts +0 -25
  160. package/dist/types/react-viewers/controlbar/controlBarButton.d.ts +0 -15
  161. package/dist/types/react-viewers/controlbar/controlBarIds.d.ts +0 -32
  162. package/dist/types/react-viewers/controlbar/controlBarSection.d.ts +0 -8
  163. package/dist/types/react-viewers/controlbar/index.d.ts +0 -5
  164. package/dist/types/react-viewers/controlbar/style.d.ts +0 -10
  165. package/dist/types/react-viewers/errors/errorStyle.d.ts +0 -15
  166. package/dist/types/react-viewers/errors/errors.d.ts +0 -6
  167. package/dist/types/react-viewers/errors/index.d.ts +0 -2
  168. package/dist/types/react-viewers/generic/genericField.d.ts +0 -31
  169. package/dist/types/react-viewers/generic/genericPanel.d.ts +0 -12
  170. package/dist/types/react-viewers/generic/index.d.ts +0 -2
  171. package/dist/types/react-viewers/generic/inputNumber.d.ts +0 -4
  172. package/dist/types/react-viewers/helpers/cameraObserver.d.ts +0 -8
  173. package/dist/types/react-viewers/helpers/cursor.d.ts +0 -37
  174. package/dist/types/react-viewers/helpers/customizer.d.ts +0 -4
  175. package/dist/types/react-viewers/helpers/data.d.ts +0 -27
  176. package/dist/types/react-viewers/helpers/element.d.ts +0 -14
  177. package/dist/types/react-viewers/helpers/fullScreenObserver.d.ts +0 -9
  178. package/dist/types/react-viewers/helpers/index.d.ts +0 -6
  179. package/dist/types/react-viewers/helpers/layout.d.ts +0 -24
  180. package/dist/types/react-viewers/helpers/loadRequest.d.ts +0 -27
  181. package/dist/types/react-viewers/helpers/reactUtils.d.ts +0 -286
  182. package/dist/types/react-viewers/helpers/requestResult.d.ts +0 -13
  183. package/dist/types/react-viewers/helpers/utils.d.ts +0 -15
  184. package/dist/types/react-viewers/icons.d.ts +0 -61
  185. package/dist/types/react-viewers/index.d.ts +0 -14
  186. package/dist/types/react-viewers/panels/axesPanel.d.ts +0 -21
  187. package/dist/types/react-viewers/panels/contextMenu.d.ts +0 -83
  188. package/dist/types/react-viewers/panels/help.d.ts +0 -10
  189. package/dist/types/react-viewers/panels/index.d.ts +0 -26
  190. package/dist/types/react-viewers/panels/isolationPanel.d.ts +0 -11
  191. package/dist/types/react-viewers/panels/loadingBox.d.ts +0 -29
  192. package/dist/types/react-viewers/panels/logo.d.ts +0 -5
  193. package/dist/types/react-viewers/panels/messageBox.d.ts +0 -15
  194. package/dist/types/react-viewers/panels/modal.d.ts +0 -17
  195. package/dist/types/react-viewers/panels/overlay.d.ts +0 -10
  196. package/dist/types/react-viewers/panels/performance.d.ts +0 -7
  197. package/dist/types/react-viewers/panels/restOfScreen.d.ts +0 -5
  198. package/dist/types/react-viewers/panels/sectionBoxPanel.d.ts +0 -10
  199. package/dist/types/react-viewers/panels/sidePanel.d.ts +0 -20
  200. package/dist/types/react-viewers/panels/toast.d.ts +0 -22
  201. package/dist/types/react-viewers/settings/anySettings.d.ts +0 -7
  202. package/dist/types/react-viewers/settings/index.d.ts +0 -5
  203. package/dist/types/react-viewers/settings/settingsInputBox.d.ts +0 -4
  204. package/dist/types/react-viewers/settings/settingsItem.d.ts +0 -30
  205. package/dist/types/react-viewers/settings/settingsKeys.d.ts +0 -46
  206. package/dist/types/react-viewers/settings/settingsPanel.d.ts +0 -18
  207. package/dist/types/react-viewers/settings/settingsPanelContent.d.ts +0 -6
  208. package/dist/types/react-viewers/settings/settingsState.d.ts +0 -18
  209. package/dist/types/react-viewers/settings/settingsStorage.d.ts +0 -15
  210. package/dist/types/react-viewers/settings/settingsSubtitle.d.ts +0 -2
  211. package/dist/types/react-viewers/settings/settingsToggle.d.ts +0 -11
  212. package/dist/types/react-viewers/settings/userBoolean.d.ts +0 -17
  213. package/dist/types/react-viewers/state/cameraState.d.ts +0 -24
  214. package/dist/types/react-viewers/state/controlBarState.d.ts +0 -88
  215. package/dist/types/react-viewers/state/fullScreenState.d.ts +0 -4
  216. package/dist/types/react-viewers/state/index.d.ts +0 -9
  217. package/dist/types/react-viewers/state/measureState.d.ts +0 -7
  218. package/dist/types/react-viewers/state/pointerState.d.ts +0 -6
  219. package/dist/types/react-viewers/state/sectionBoxState.d.ts +0 -34
  220. package/dist/types/react-viewers/state/sharedIsolation.d.ts +0 -40
  221. package/dist/types/react-viewers/state/sideState.d.ts +0 -22
  222. package/dist/types/react-viewers/state/viewerInputs.d.ts +0 -3
  223. package/dist/types/react-viewers/ultra/camera.d.ts +0 -3
  224. package/dist/types/react-viewers/ultra/controlBar.d.ts +0 -9
  225. package/dist/types/react-viewers/ultra/errors/fileLoadingError.d.ts +0 -2
  226. package/dist/types/react-viewers/ultra/errors/fileOpeningError.d.ts +0 -2
  227. package/dist/types/react-viewers/ultra/errors/serverCompatibilityError.d.ts +0 -2
  228. package/dist/types/react-viewers/ultra/errors/serverConnectionError.d.ts +0 -2
  229. package/dist/types/react-viewers/ultra/errors/serverFileDownloadingError.d.ts +0 -2
  230. package/dist/types/react-viewers/ultra/errors/serverStreamError.d.ts +0 -2
  231. package/dist/types/react-viewers/ultra/errors/ultraErrors.d.ts +0 -3
  232. package/dist/types/react-viewers/ultra/index.d.ts +0 -3
  233. package/dist/types/react-viewers/ultra/isolation.d.ts +0 -3
  234. package/dist/types/react-viewers/ultra/modal.d.ts +0 -5
  235. package/dist/types/react-viewers/ultra/sectionBox.d.ts +0 -3
  236. package/dist/types/react-viewers/ultra/settings.d.ts +0 -13
  237. package/dist/types/react-viewers/ultra/settingsPanel.d.ts +0 -5
  238. package/dist/types/react-viewers/ultra/viewer.d.ts +0 -23
  239. package/dist/types/react-viewers/ultra/viewerRef.d.ts +0 -50
  240. package/dist/types/react-viewers/urls.d.ts +0 -2
  241. package/dist/types/react-viewers/webgl/camera.d.ts +0 -3
  242. package/dist/types/react-viewers/webgl/index.d.ts +0 -4
  243. package/dist/types/react-viewers/webgl/inputsBindings.d.ts +0 -8
  244. package/dist/types/react-viewers/webgl/isolation.d.ts +0 -2
  245. package/dist/types/react-viewers/webgl/loading.d.ts +0 -64
  246. package/dist/types/react-viewers/webgl/sectionBox.d.ts +0 -3
  247. package/dist/types/react-viewers/webgl/settings.d.ts +0 -36
  248. package/dist/types/react-viewers/webgl/settingsPanel.d.ts +0 -12
  249. package/dist/types/react-viewers/webgl/viewer.d.ts +0 -28
  250. package/dist/types/react-viewers/webgl/viewerRef.d.ts +0 -131
  251. package/dist/types/react-viewers/webgl/viewerState.d.ts +0 -13
  252. package/dist/types/utils/array.d.ts +0 -18
  253. package/dist/types/utils/asyncQueue.d.ts +0 -15
  254. package/dist/types/utils/debounce.d.ts +0 -30
  255. package/dist/types/utils/index.d.ts +0 -10
  256. package/dist/types/utils/interfaces.d.ts +0 -3
  257. package/dist/types/utils/math3d.d.ts +0 -19
  258. package/dist/types/utils/partial.d.ts +0 -7
  259. package/dist/types/utils/promise.d.ts +0 -21
  260. package/dist/types/utils/threeUtils.d.ts +0 -4
  261. package/dist/types/utils/url.d.ts +0 -10
  262. package/dist/types/utils/validation.d.ts +0 -29
package/README.md CHANGED
@@ -1,75 +1,104 @@
1
- # VIM Web
2
-
3
- ## Live Demo
4
-
5
- Visit our [Demo page](https://vimaec.github.io/vim-web-demo)
6
-
7
- ### Documentation
8
-
9
- Explore the full [API Documentation](https://vimaec.github.io/vim-web).
10
-
11
- ### Package
12
- https://www.npmjs.com/package/vim-web
13
-
14
-
15
- ## Overview
16
-
17
- The **VIM-Web** repository consists of four primary components, divided into two layers:
18
-
19
- ### Core Viewers
20
- - **WebGL Core Viewer:** A WebGL-based viewer for the VIM format. Includes features like outlines, ghosting, and sectioning, but without UI components.
21
- - **Ultra Core Viewer:** A high-performance viewer for the VIM Ultra Render Server, optimized for scale and speed.
22
-
23
- ### React Viewers
24
- - **WebGL Viewer:** A React-based wrapper for the WebGL viewer, providing interactive UI elements and a BIM explorer.
25
- - **Ultra Viewer:** A React-based wrapper for the Ultra viewer, featuring a UI for real-time interactions.
26
-
27
- ## VIM Format
28
-
29
- The **VIM** file format is a high-performance 3D scene format that supports rich BIM data. It can also be extended to accommodate other relational and non-relational datasets. Unlike **IFC**, the VIM format is pre-tessellated, allowing for rapid loading and rendering.
30
-
31
- Learn more about the VIM format here: [VIM Format Repository](https://github.com/vimaec/vim-format)
32
- ).
33
-
34
- ### Built With
35
- - [VIM WebGL Viewer](https://github.com/vimaec/vim-webgl-viewer)
36
- - [React.js](https://reactjs.org/)
37
-
38
- ## Getting Started
39
-
40
- Follow these steps to get started with the project:
41
-
42
- 1. Clone the repository.
43
- 2. Open the project in **VS Code**.
44
- 3. Install the dependencies: `npm install`.
45
- 4. Start the development server: `npm run dev`.
46
-
47
- > **Note:** Ensure you have a recent version of **Node.js** installed, as required by Vite.
48
-
49
- ## Repository Organization
50
-
51
- - **`./docs`:** Root folder for GitHub Pages, built using the `build:website` script.
52
- - **`./dist`:** Contains the built package for npm, created with the `build:libs` script.
53
- - **`./src/pages`:** Source code for the demo pages published on GitHub Pages.
54
- - **`./src/vim-web`:** Source code for building and publishing the vim-web npm package.
55
- - **`./src/core-viewers/webgl`:** Source code for the WebGL core viewer. Based on [vim-webgl-viewer](https://github.com/vimaec/vim-webgl-viewer).
56
- - **`./src/core-viewers/ultra`:** Source code for the Ultra core viewer.
57
- - **`./src/react-viewers/webgl`:** Source code for the WebGL React component. Based on [vim-webgl-component](https://github.com/vimaec/vim-webgl-component).
58
- - **`./src/react-viewers/ultra`:** Source code for the Ultra React component.
59
-
60
- ## License
61
-
62
- Distributed under the **MIT License**. See `LICENSE.txt` for more details.
63
-
64
- ## Contact
65
-
66
- - **Simon Roberge** - [simon.roberge@vimaec.com](mailto:simon.roberge@vimaec.com)
67
- - **Martin Ashton** - [martin.ashton@vimaec.com](mailto:martin.ashton@vimaec.com)
68
-
69
- ## Acknowledgments
70
-
71
- Special thanks to these packages and more:
72
- - [react-complex-tree](https://github.com/lukasbach/react-complex-tree)
73
- - [re-resizable](https://github.com/bokuweb/re-resizable)
74
- - [react-tooltip](https://github.com/ReactTooltip/react-tooltip)
75
- - [Strongly Typed Events](https://github.com/KeesCBakker/Strongly-Typed-Events-for-TypeScript#readme)
1
+ # VIM Web
2
+
3
+ React-based 3D viewers for VIM files with BIM (Building Information Modeling) support. VIM files are optimized 3D building models that contain both geometry and rich BIM metadata (elements, properties, categories, etc.).
4
+
5
+ ## Getting Started
6
+
7
+ ```bash
8
+ npm install
9
+ npm run dev # Dev server at localhost:5173
10
+ npm run build # Production build (vite + tsc declarations + rollup d.ts bundles)
11
+ npm run eslint # Lint
12
+ npm run documentation # TypeDoc generation
13
+ ```
14
+
15
+ ### Build Pipeline
16
+
17
+ `npm run build` runs three steps in sequence:
18
+
19
+ 1. **Vite build** — bundles `vim-web.js` (ESM) and `vim-web.iife.js` (IIFE) into `dist/`
20
+ 2. **TypeScript declarations** (`tsc -p tsconfig.types.json`) emits individual `.d.ts` files to `dist/types/`
21
+ 3. **Rollup d.ts bundling** produces two self-contained type bundles:
22
+ - `dist/vim-web.d.ts` — full library API (3,300+ lines), referenced by `"types"` in package.json
23
+ - `dist/vim-bim.d.ts` — standalone BIM data types from `vim-format` (1,900+ lines)
24
+
25
+ ### Type Bundles & AI Tooling
26
+
27
+ The bundled `.d.ts` files serve a dual purpose:
28
+
29
+ **`vim-web.d.ts`** is the package's type entry point. It inlines types from `ste-signals`, `ste-events`, and `ste-core` so consumers get full type information without needing those packages. Types from `three`, `react`, `deepmerge`, and `vim-format` remain external imports.
30
+
31
+ **`vim-bim.d.ts`** bundles all BIM data interfaces (`IElement`, `ICategory`, `IRoom`, `VimDocument`, etc.) from `vim-format` into a single self-contained file. This is designed as an **AI-readable reference** — an LLM can read this one file to understand the complete BIM data model without needing access to the `vim-format` package source. It is not imported by the library itself.
32
+
33
+ Both files have semantic namespace names (e.g., `Core_Webgl`, `React_Ultra`) instead of the opaque `index_d$1` names that `rollup-plugin-dts` generates by default. This makes them readable by both humans and AI tools. The rollup configs (`rollup.dts.config.mjs`, `rollup.bim-dts.config.mjs`) handle the namespace renaming and various fixups.
34
+
35
+ ## Architecture Overview
36
+
37
+ ### Dual Viewer System
38
+
39
+ | Viewer | Use Case | Rendering |
40
+ |--------|----------|-----------|
41
+ | **WebGL** | Small-medium models | Local Three.js rendering |
42
+ | **Ultra** | Large models | Server-side streaming via WebSocket RPC |
43
+
44
+ ### Layer Separation
45
+
46
+ ```
47
+ src/vim-web/
48
+ ├── core-viewers/ # Framework-agnostic (no React)
49
+ │ ├── webgl/ # Local Three.js rendering
50
+ │ │ ├── loader/ # VIM parsing, mesh building, scene, data model
51
+ │ │ │ ├── progressive/ # Geometry loading & mesh construction
52
+ │ │ │ └── materials/ # Shader materials
53
+ │ │ └── viewer/ # Camera, raycaster, rendering, gizmos
54
+ │ ├── ultra/ # RPC client for streaming server
55
+ │ └── shared/ # Common interfaces (IVim, Selection, Input)
56
+ └── react-viewers/ # React UI layer
57
+ ├── webgl/ # Full UI (BIM tree, context menu, gizmos)
58
+ ├── ultra/ # Minimal UI
59
+ └── helpers/ # StateRef, hooks, utilities
60
+ ```
61
+
62
+ ### Import Discipline
63
+
64
+ - **Core files** (`core-viewers/`): Import directly from source files, never through barrel files
65
+ - **React layer** (`react-viewers/`): Import through barrel files (`import * as Core from '../../core-viewers'`)
66
+
67
+ ## Key Concepts
68
+
69
+ - **Element3D**: Primary object representing a BIM element. Controls visibility, color, outline, and provides access to BIM metadata.
70
+ - **Selection**: Observable selection state with multi-select, events, and bounding box queries.
71
+ - **Camera**: Fluent API with `snap()` (instant) and `lerp(duration)` (animated) for framing, orbiting, and zooming.
72
+ - **Gizmos**: Section box, measurement tool, and markers.
73
+ - **StateRef/FuncRef**: Observable state and callable function references used in the React layer for customization.
74
+ - **ViewerApi**: The root API handle returned by `createViewer()`. Provides `load()`, `open()`, `unload()`, and access to all subsystems (isolation, sectionBox, controlBar, etc.).
75
+
76
+ ## Customization
77
+
78
+ The React viewer exposes customization points for:
79
+ - **Control bar**: Add/replace toolbar buttons via `viewer.controlBar.customize()`
80
+ - **Context menu**: Add custom menu items via `viewer.contextMenu.customize()`
81
+ - **BIM info panel**: Modify displayed data or override rendering at any level
82
+ - **Settings panel**: Add/remove settings items via `viewer.settings.customize()`
83
+ - **Floating panels**: Modify section box offset and isolation render settings fields
84
+
85
+ ## Documentation
86
+
87
+ - **[CLAUDE.md](./CLAUDE.md)** — Detailed API reference, code examples, architecture details, and patterns. This is the primary reference for both developers and AI tools.
88
+ - **[.claude/docs/INPUT.md](./.claude/docs/INPUT.md)** — Input system architecture, coordinate systems, override patterns
89
+ - **[.claude/docs/optimization.md](./.claude/docs/optimization.md)** — Loading pipeline performance and profiling
90
+ - **[.claude/docs/RENDERING_OPTIMIZATIONS.md](./.claude/docs/RENDERING_OPTIMIZATIONS.md)** — Shader material architecture and rendering patterns
91
+
92
+ ## Tech Stack
93
+
94
+ - **TypeScript 5.7**, **React 18.3**, **Vite 6**
95
+ - **Three.js 0.171**, **Tailwind CSS 3.4** (`vc-` prefix)
96
+ - **ste-events/ste-signals** for typed events, **vim-format** for BIM data
97
+ - **Rollup** + **rollup-plugin-dts** for type bundle generation
98
+
99
+ ## Code Style
100
+
101
+ - Prettier: no semicolons, trailing commas, single quotes
102
+ - Index files control module exports
103
+ - No test framework — build pass is the verification
104
+ - No deprecated code or backwards-compatibility shims
package/dist/style.css CHANGED
@@ -947,6 +947,9 @@ video:where(.vim-component,.vim-component *) {
947
947
  .vc-cursor-pointer {
948
948
  cursor: pointer;
949
949
  }
950
+ .vc-touch-none {
951
+ touch-action: none;
952
+ }
950
953
  .vc-select-none {
951
954
  -webkit-user-select: none;
952
955
  -moz-user-select: none;