vim-web 0.3.23 → 0.3.25

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,342 @@
1
+ /**
2
+ @module viw-webgl-viewer
3
+ */
4
+ import * as THREE from 'three';
5
+ import { AxesSettings } from '../gizmos/axes/axesSettings';
6
+ export type TextureEncoding = 'url' | 'base64' | undefined;
7
+ export { AxesSettings } from '../gizmos/axes/axesSettings';
8
+ /**
9
+ * Makes all field optional recursively
10
+ * https://stackoverflow.com/questions/41980195/recursive-partialt-in-typescript
11
+ */
12
+ export type RecursivePartial<T> = {
13
+ [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object ? RecursivePartial<T[P]> : T[P];
14
+ };
15
+ /** Viewer related options independant from vims */
16
+ export type ViewerSettings = {
17
+ /**
18
+ * Webgl canvas related options
19
+ */
20
+ canvas: {
21
+ /**
22
+ * Canvas dom model id. If none provided a new canvas will be created
23
+ * Default: undefined.
24
+ */
25
+ id: string | undefined;
26
+ /**
27
+ * Limits how often canvas will be resized if window is resized in ms.
28
+ * Default: 200
29
+ */
30
+ resizeDelay: number;
31
+ };
32
+ /**
33
+ * Three.js camera related options
34
+ */
35
+ camera: {
36
+ /**
37
+ * Start with orthographic camera
38
+ * Default: false
39
+ */
40
+ orthographic: boolean;
41
+ /**
42
+ * Vector3 of 0 or 1 to enable/disable movement along each axis
43
+ * Default: THREE.Vector3(1, 1, 1)
44
+ */
45
+ allowedMovement: THREE.Vector3;
46
+ /**
47
+ * Vector2 of 0 or 1 to enable/disable rotation around x or y.
48
+ * Default: THREE.Vector2(1, 1)
49
+ */
50
+ allowedRotation: THREE.Vector2;
51
+ /**
52
+ * Near clipping plane distance
53
+ * Default: 0.01
54
+ */
55
+ near: number;
56
+ /**
57
+ * Far clipping plane distance
58
+ * Default: 15000
59
+ */
60
+ far: number;
61
+ /**
62
+ * Fov angle in degrees
63
+ * Default: 50
64
+ */
65
+ fov: number;
66
+ /**
67
+ * Camera zoom level
68
+ * Default: 1
69
+ */
70
+ zoom: number;
71
+ /**
72
+ * Initial forward vector of the camera
73
+ * THREE.Vector3(1, -1, 1)
74
+ */
75
+ forward: THREE.Vector3;
76
+ /** Camera controls related options */
77
+ controls: {
78
+ /**
79
+ * <p>Set true to start in orbit mode.</p>
80
+ * <p>Camera has two modes: First person and orbit</p>
81
+ * <p>First person allows to moves the camera around freely</p>
82
+ * <p>Orbit rotates the camera around a focus point</p>
83
+ * Default: true
84
+ */
85
+ orbit: boolean;
86
+ /**
87
+ * Camera rotation speed factor
88
+ * Default: 1
89
+ */
90
+ rotateSpeed: number;
91
+ /**
92
+ * Camera orbit rotation speed factor.
93
+ * Default: 1
94
+ */
95
+ orbitSpeed: number;
96
+ /**
97
+ * Camera movement speed factor
98
+ * Default: 1
99
+ */
100
+ moveSpeed: number;
101
+ /**
102
+ * Camera movement speed factor on mouse scroll
103
+ * Default: 1
104
+ * Range: [0.1, 10]
105
+ */
106
+ scrollSpeed: number;
107
+ };
108
+ /** Camera gizmo related options */
109
+ gizmo: {
110
+ /**
111
+ * Enables/Disables camera gizmo.
112
+ * Default: true
113
+ */
114
+ enable: boolean;
115
+ /**
116
+ * Size of camera gizmo.
117
+ * Default: 0.01
118
+ */
119
+ size: number;
120
+ /**
121
+ * Color of camera gizmo.
122
+ * Default: THREE.Color(255, 255, 255)
123
+ */
124
+ color: THREE.Color;
125
+ /**
126
+ * Opacity of the camera gizmo.
127
+ * Default: 0.5
128
+ */
129
+ opacity: number;
130
+ /**
131
+ * Opacity of the camera gizmo when behind objects.
132
+ * Default: 0.125
133
+ */
134
+ opacityAlways: number;
135
+ };
136
+ };
137
+ /**
138
+ * Rendering background options
139
+ */
140
+ background: {
141
+ /**
142
+ * Color of the cavas background
143
+ * Default: THREE.Color('#96999f')
144
+ */
145
+ color: THREE.Color;
146
+ };
147
+ /**
148
+ * Skybox options
149
+ */
150
+ skybox: {
151
+ /**
152
+ * Enables/Disables skybox.
153
+ */
154
+ enable: boolean;
155
+ /**
156
+ * Color for the lower part of the skybox.
157
+ */
158
+ groundColor: THREE.Color;
159
+ /**
160
+ * Color for the upper part of the skybox.
161
+ */
162
+ skyColor: THREE.Color;
163
+ /**
164
+ * Controls the gradient transition between the sky and the ground.
165
+ */
166
+ sharpness: number;
167
+ };
168
+ /**
169
+ * Ground plane under the scene options.
170
+ */
171
+ groundPlane: {
172
+ /**
173
+ * Enables/Disables plane under scene
174
+ * Default: true
175
+ */
176
+ visible: boolean;
177
+ /**
178
+ * Controls how the texture will be retrieved using the texture field.
179
+ * Default: base64
180
+ */
181
+ encoding: TextureEncoding;
182
+ /**
183
+ * Local or remote texture url for plane
184
+ * Default: Vim halo ground provided with the viewer.
185
+ */
186
+ texture: string;
187
+ /**
188
+ * Opacity of the plane
189
+ * Default: 1
190
+ */
191
+ opacity: number;
192
+ /**
193
+ * Color of the plane
194
+ * Default: THREE.Color(0xff, 0xff, 0xff)
195
+ */
196
+ color: THREE.Color;
197
+ /**
198
+ * Size of the ground plane relative to the model
199
+ * Default: 5
200
+ */
201
+ size: number;
202
+ };
203
+ /**
204
+ * Object highlight on click options
205
+ */
206
+ materials: {
207
+ /**
208
+ * Default color of standard material
209
+ */
210
+ standard: {
211
+ color: THREE.Color;
212
+ };
213
+ /**
214
+ * Highlight on hover options
215
+ */
216
+ highlight: {
217
+ /**
218
+ * Highlight color
219
+ * Default: rgb(106, 210, 255)
220
+ */
221
+ color: THREE.Color;
222
+ /**
223
+ * Highlight opacity
224
+ * Default: 0.5
225
+ */
226
+ opacity: number;
227
+ };
228
+ /**
229
+ * Isolation material options
230
+ */
231
+ isolation: {
232
+ /**
233
+ * Isolation material color
234
+ * Default: rgb(78, 82, 92)
235
+ */
236
+ color: THREE.Color;
237
+ /**
238
+ * Isolation material opacity
239
+ * Default: 0.08
240
+ */
241
+ opacity: number;
242
+ };
243
+ /**
244
+ * Section box intersection highlight options
245
+ */
246
+ section: {
247
+ /**
248
+ * Intersection highlight stroke width.
249
+ * Default: 0.01
250
+ */
251
+ strokeWidth: number;
252
+ /**
253
+ * Intersection highlight stroke falloff.
254
+ * Default: 0.75
255
+ */
256
+ strokeFalloff: number;
257
+ /**
258
+ * Intersection highlight stroke color.
259
+ * Default: rgb(246, 246, 246)
260
+ */
261
+ strokeColor: THREE.Color;
262
+ };
263
+ /**
264
+ * Selection outline options
265
+ */
266
+ outline: {
267
+ /**
268
+ * Selection outline intensity.
269
+ * Default: 3
270
+ */
271
+ intensity: number;
272
+ /**
273
+ * Selection outline falloff.
274
+ * Default: 3
275
+ */
276
+ falloff: number;
277
+ /**
278
+ * Selection outline blur.
279
+ * Default: 2
280
+ */
281
+ blur: number;
282
+ /**
283
+ * Selection outline color.
284
+ * Default: rgb(0, 255, 255)
285
+ */
286
+ color: THREE.Color;
287
+ };
288
+ };
289
+ /**
290
+ * Axes gizmo options
291
+ */
292
+ axes: Partial<AxesSettings>;
293
+ /**
294
+ * Skylight (hemisphere light) options
295
+ */
296
+ skylight: {
297
+ /**
298
+ * Skylight sky Color.
299
+ * Default: THREE.Color(153, 204, 255)
300
+ */
301
+ skyColor: THREE.Color;
302
+ /**
303
+ * Skylight ground color.
304
+ * Default: THREE.Color(242, 213, 181)
305
+ */
306
+ groundColor: THREE.Color;
307
+ /**
308
+ * Skylight intensity.
309
+ * Default: 0.8
310
+ */
311
+ intensity: number;
312
+ };
313
+ /**
314
+ * Sunlight (directional light) options
315
+ * Two Blue-Green lights at odd angles. See defaultViewerSettings.
316
+ */
317
+ sunlights: {
318
+ followCamera: boolean;
319
+ /** Light position. */
320
+ position: THREE.Vector3;
321
+ /** Light color. */
322
+ color: THREE.Color;
323
+ /** Light intensity. */
324
+ intensity: number;
325
+ }[];
326
+ rendering: {
327
+ /**
328
+ * Enable on-demand rendering which wait for changes before rendering to the canvas.
329
+ * Default: true
330
+ */
331
+ onDemand: boolean;
332
+ };
333
+ };
334
+ /**
335
+ * Same as the Setting type but any field can be undefined.
336
+ */
337
+ export type PartialViewerSettings = RecursivePartial<ViewerSettings>;
338
+ /**
339
+ * Returns a full viewer settings where all unassigned values are replaced with the default values.
340
+ * @param settings optional values to use instead of default.
341
+ */
342
+ export declare function getViewerSettings(settings?: PartialViewerSettings): ViewerSettings;
@@ -0,0 +1,9 @@
1
+ import { PartialViewerSettings } from './viewerSettings';
2
+ /**
3
+ * Parses the url for settings and merges the result with the optional provided settings.
4
+ * URL settings have priority
5
+ * @param settings Settings to use if not defined in the url.
6
+ * @param url URL string with standard parameters.
7
+ * @returns A PartialSettings object that can further be merged with default values.
8
+ */
9
+ export declare function getViewerSettingsFromUrl(url?: string, settings?: PartialViewerSettings): PartialViewerSettings;
@@ -0,0 +1,100 @@
1
+ /**
2
+ @module viw-webgl-viewer
3
+ */
4
+ import { ViewerSettings, PartialViewerSettings } from './settings/viewerSettings';
5
+ import { ICamera } from './camera/camera';
6
+ import { Input } from './inputs/input';
7
+ import { Selection } from './selection';
8
+ import { Environment } from './environment/environment';
9
+ import { Raycaster } from './raycaster';
10
+ import { Viewport } from './viewport';
11
+ import { Gizmos } from './gizmos/gizmos';
12
+ import { Renderer } from './rendering/renderer';
13
+ import { ISignal } from 'ste-signals';
14
+ import { ViewerMaterials } from '../vim-loader/materials/viewerMaterials';
15
+ import { Vim } from '../vim-loader/vim';
16
+ /**
17
+ * Viewer and loader for vim files.
18
+ */
19
+ export declare class Viewer {
20
+ /**
21
+ * The settings configuration used by the viewer.
22
+ */
23
+ readonly settings: ViewerSettings;
24
+ /**
25
+ * The renderer used by the viewer for rendering scenes.
26
+ */
27
+ readonly renderer: Renderer;
28
+ /**
29
+ * The interface for managing the HTML canvas viewport.
30
+ */
31
+ readonly viewport: Viewport;
32
+ /**
33
+ * The interface for managing viewer selection.
34
+ */
35
+ readonly selection: Selection;
36
+ /**
37
+ * The interface for manipulating default viewer inputs.
38
+ */
39
+ readonly inputs: Input;
40
+ /**
41
+ * The interface for performing raycasting into the scene to find objects.
42
+ */
43
+ readonly raycaster: Raycaster;
44
+ /**
45
+ * The materials used by the viewer to render the vims.
46
+ */
47
+ readonly materials: ViewerMaterials;
48
+ /**
49
+ * The environment of the viewer, including the ground plane and lights.
50
+ */
51
+ readonly environment: Environment;
52
+ /**
53
+ * The interface for manipulating the viewer's camera.
54
+ */
55
+ get camera(): ICamera;
56
+ /**
57
+ * The collection of gizmos available for visualization and interaction within the viewer.
58
+ */
59
+ gizmos: Gizmos;
60
+ /**
61
+ * A signal that is dispatched when a new Vim object is loaded or unloaded.
62
+ */
63
+ get onVimLoaded(): ISignal;
64
+ private _camera;
65
+ private _clock;
66
+ private _vims;
67
+ private _onVimLoaded;
68
+ private _updateId;
69
+ constructor(settings?: PartialViewerSettings);
70
+ private animate;
71
+ /**
72
+ * Retrieves an array containing all currently loaded Vim objects.
73
+ * @returns {Vim[]} An array of all Vim objects currently loaded in the viewer.
74
+ */
75
+ get vims(): Vim[];
76
+ /**
77
+ * The number of Vim objects currently loaded in the viewer.
78
+ */
79
+ get vimCount(): number;
80
+ /**
81
+ * Adds a Vim object to the renderer, triggering the appropriate actions and dispatching events upon successful addition.
82
+ * @param {Vim} vim - The Vim object to add to the renderer.
83
+ * @throws {Error} If the Vim object is already added or if loading the Vim would exceed maximum geometry memory.
84
+ */
85
+ add(vim: Vim): void;
86
+ /**
87
+ * Unloads the given Vim object from the viewer, updating the scene and triggering necessary actions.
88
+ * @param {Vim} vim - The Vim object to remove from the viewer.
89
+ * @throws {Error} If attempting to remove a Vim object that is not present in the viewer.
90
+ */
91
+ remove(vim: Vim): void;
92
+ /**
93
+ * Removes all Vim objects from the viewer, clearing the scene.
94
+ */
95
+ clear(): void;
96
+ /**
97
+ * Cleans up and releases resources associated with the viewer.
98
+ */
99
+ dispose(): void;
100
+ }
@@ -0,0 +1,73 @@
1
+ /**
2
+ @module viw-webgl-viewer
3
+ */
4
+ import * as THREE from 'three';
5
+ import { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer';
6
+ import { ViewerSettings } from './settings/viewerSettings';
7
+ export declare class Viewport {
8
+ /**
9
+ * HTML Canvas on which the model is rendered
10
+ */
11
+ readonly canvas: HTMLCanvasElement;
12
+ /** HTML Element in which text is rendered */
13
+ readonly textRenderer: CSS2DRenderer;
14
+ get text(): HTMLElement;
15
+ private _unregisterResize;
16
+ private _ownedCanvas;
17
+ private _onResize;
18
+ private _onReparent;
19
+ /**
20
+ * Signal dispatched when the canvas reparented.
21
+ */
22
+ get onReparent(): import("ste-signals").ISignal;
23
+ /**
24
+ * Signal dispatched when the canvas is resized.
25
+ */
26
+ get onResize(): import("ste-signals").ISignal;
27
+ /**
28
+ * Constructs a new instance of the class with the provided settings.
29
+ * @param {ViewerSettings} settings The settings object defining viewer configurations.
30
+ */
31
+ constructor(settings: ViewerSettings);
32
+ /**
33
+ * Either returns html canvas at provided Id or creates a canvas at root level
34
+ */
35
+ private static getOrCreateCanvas;
36
+ private static createCanvas;
37
+ /** Returns a text renderer that will render html in an html element sibbling to canvas */
38
+ private createTextRenderer;
39
+ get parent(): HTMLElement;
40
+ reparent(parent: HTMLElement): void;
41
+ /**
42
+ * Removes the canvas if it's owned by the viewer.
43
+ */
44
+ dispose(): void;
45
+ /**
46
+ * Returns the pixel size of the parent element.
47
+ * @returns {THREE.Vector2} The pixel size of the parent element.
48
+ */
49
+ getParentSize(): THREE.Vector2;
50
+ private getParentWidth;
51
+ private getParentHeight;
52
+ /**
53
+ * Returns the pixel size of the canvas.
54
+ * @returns {THREE.Vector2} The pixel size of the canvas.
55
+ */
56
+ getSize(): THREE.Vector2;
57
+ /**
58
+ * Calculates and returns the aspect ratio of the parent element.
59
+ * @returns {number} The aspect ratio (width divided by height) of the parent element.
60
+ */
61
+ getAspectRatio(): number;
62
+ /**
63
+ * Resizes the canvas and updates the camera to match new parent dimensions.
64
+ */
65
+ ResizeToParent(): void;
66
+ /**
67
+ * Set a callback for canvas resize with debouncing
68
+ * https://stackoverflow.com/questions/5825447/javascript-event-for-canvas-resize/30688151
69
+ * @param callback code to be called
70
+ * @param timeout time after the last resize before code will be called
71
+ */
72
+ private watchResize;
73
+ }