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,105 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import * as THREE from 'three';
5
+ import { G3d, MeshSection } from 'vim-format';
6
+ export type MergeArgs = {
7
+ matrix: THREE.Matrix4;
8
+ section: MeshSection;
9
+ legacyInstances: number[];
10
+ legacyLoadRooms: boolean;
11
+ transparent: boolean;
12
+ };
13
+ export declare namespace Transparency {
14
+ /**
15
+ * Determines how to draw (or not) transparent and opaque objects
16
+ */
17
+ type Mode = 'opaqueOnly' | 'transparentOnly' | 'allAsOpaque' | 'all';
18
+ /**
19
+ * Returns true if the transparency mode is one of the valid values
20
+ */
21
+ function isValid(value: string | undefined | null): value is Mode;
22
+ /**
23
+ * Returns true if the transparency mode requires to use RGBA colors
24
+ */
25
+ function requiresAlpha(mode: Mode): mode is "all" | "transparentOnly";
26
+ }
27
+ export declare namespace Geometry {
28
+ /**
29
+ * Creates a BufferGeometry with all given instances merged
30
+ * @param instances indices of the instances from the g3d to merge
31
+ * @returns a BufferGeometry
32
+ */
33
+ function createGeometryFromInstances(g3d: G3d, args: MergeArgs): THREE.BufferGeometry;
34
+ /**
35
+ * Creates a BufferGeometry from a given mesh index in the g3d
36
+ * @param mesh g3d mesh index
37
+ * @param transparent specify to use RGB or RGBA for colors
38
+ */
39
+ function createGeometryFromMesh(g3d: G3d, mesh: number, section: MeshSection, transparent: boolean): THREE.BufferGeometry;
40
+ /**
41
+ * Returns a THREE.Matrix4 from the g3d for given instance
42
+ * @param instance g3d instance index
43
+ * @param target matrix where the data will be copied, a new matrix will be created if none provided.
44
+ */
45
+ function getInstanceMatrix(g3d: G3d, instance: number, target?: THREE.Matrix4): THREE.Matrix4;
46
+ /**
47
+ * Creates a BufferGeometry from given geometry data arrays
48
+ * @param vertices vertex data with 3 number per vertex (XYZ)
49
+ * @param indices index data with 3 indices per face
50
+ * @param vertexColors color data with 3 or 4 number per vertex. RBG or RGBA
51
+ * @param colorSize specify whether to treat colors as RGB or RGBA
52
+ * @returns a BufferGeometry
53
+ */
54
+ function createGeometryFromArrays(vertices: Float32Array, indices: Uint32Array, vertexColors?: Float32Array | undefined, colorSize?: number): THREE.BufferGeometry;
55
+ /**
56
+ * Returns a merged mesh of all meshes related to given instances along with picking related metadata
57
+ * Returns undefined if mesh would be empty
58
+ * @param section mesh sections to include in the merged mesh.
59
+ * @param transparent true to use a transparent material.
60
+ * @param instances instances for which to merge meshes.
61
+ */
62
+ function mergeInstanceMeshes(g3d: G3d, mergeArgs: MergeArgs): MergeResult;
63
+ /**
64
+ * Returns a merged mesh of all unique meshes along with picking related metadata
65
+ * @param section mesh sections to include in the merged mesh.
66
+ * @param transparent true to use a transparent material.
67
+ * @param instances instances for which to merge meshes.
68
+ */
69
+ function mergeUniqueMeshes(g3d: G3d, args: MergeArgs): MergeResult;
70
+ /**
71
+ * Holds the info that needs to be precomputed for a merge.
72
+ */
73
+ class MergeInfo {
74
+ section: MeshSection;
75
+ transparent: boolean;
76
+ instances: number[];
77
+ indexCount: number;
78
+ vertexCount: number;
79
+ constructor(section: MeshSection, transparent: boolean, instance: number[], indexCount: number, vertexCount: number);
80
+ createBuffer(): MergeBuffer;
81
+ }
82
+ /**
83
+ * Allocates and holds all arrays needed to merge meshes.
84
+ */
85
+ class MergeBuffer {
86
+ indices: Uint32Array;
87
+ vertices: Float32Array;
88
+ colors: Float32Array;
89
+ groups: number[];
90
+ colorSize: number;
91
+ boxes: THREE.Box3[];
92
+ constructor(info: MergeInfo, positionSize: number, colorSize: number);
93
+ toBufferGeometry(): THREE.BufferGeometry;
94
+ }
95
+ /**
96
+ * Holds the result from a merge operation.
97
+ */
98
+ class MergeResult {
99
+ geometry: THREE.BufferGeometry;
100
+ instances: number[];
101
+ submeshes: number[];
102
+ boxes: THREE.Box3[];
103
+ constructor(geometry: THREE.BufferGeometry, instance: number[], submeshes: number[], boxes: THREE.Box3[]);
104
+ }
105
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @module vim-loader/materials
3
+ */
4
+ import * as THREE from 'three';
5
+ /**
6
+ * Material for isolation mode
7
+ * Non visible item appear as transparent.
8
+ * Visible items are flat shaded with a basic pseudo lighting.
9
+ * Supports object coloring for visible objects.
10
+ * Non-visible objects use fillColor.
11
+ */
12
+ export declare function createIsolationMaterial(): THREE.ShaderMaterial;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @module vim-loader/materials
3
+ */
4
+ import * as THREE from 'three';
5
+ /**
6
+ * Material used for selection outline it only renders selection in white and discards the rests.
7
+ */
8
+ export declare function createMaskMaterial(): THREE.ShaderMaterial;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @module vim-loader/materials
3
+ */
4
+ import * as THREE from 'three';
5
+ export declare class MergeMaterial {
6
+ material: THREE.ShaderMaterial;
7
+ constructor();
8
+ get color(): THREE.Color;
9
+ set color(value: THREE.Color);
10
+ get sourceA(): THREE.Texture;
11
+ set sourceA(value: THREE.Texture);
12
+ get sourceB(): THREE.Texture;
13
+ set sourceB(value: THREE.Texture);
14
+ }
15
+ /**
16
+ * Material that Merges current fragment with a source texture.
17
+ */
18
+ export declare function createMergeMaterial(): THREE.ShaderMaterial;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @module vim-loader/materials
3
+ */
4
+ import * as THREE from 'three';
5
+ /** Outline Material based on edge detection. */
6
+ export declare class OutlineMaterial {
7
+ material: THREE.ShaderMaterial;
8
+ private _camera;
9
+ private _resolution;
10
+ constructor(options?: Partial<{
11
+ sceneBuffer: THREE.Texture;
12
+ resolution: THREE.Vector2;
13
+ camera: THREE.PerspectiveCamera | THREE.OrthographicCamera;
14
+ }>);
15
+ get resolution(): THREE.Vector2;
16
+ set resolution(value: THREE.Vector2);
17
+ get camera(): THREE.PerspectiveCamera | THREE.OrthographicCamera | undefined;
18
+ set camera(value: THREE.PerspectiveCamera | THREE.OrthographicCamera | undefined);
19
+ get strokeBlur(): number;
20
+ set strokeBlur(value: number);
21
+ get strokeBias(): number;
22
+ set strokeBias(value: number);
23
+ get strokeMultiplier(): number;
24
+ set strokeMultiplier(value: number);
25
+ get color(): THREE.Color;
26
+ set color(value: THREE.Color);
27
+ get sceneBuffer(): THREE.Texture;
28
+ set sceneBuffer(value: THREE.Texture);
29
+ get depthBuffer(): THREE.Texture;
30
+ set depthBuffer(value: THREE.Texture);
31
+ dispose(): void;
32
+ }
33
+ /**
34
+ * This material =computes outline using the depth buffer and combines it with the scene buffer to create a final scene.
35
+ */
36
+ export declare function createOutlineMaterial(): THREE.ShaderMaterial;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @module vim-loader/materials
3
+ */
4
+ import * as THREE from 'three';
5
+ /**
6
+ * Material for isolation mode
7
+ * Non visible item appear as transparent.
8
+ * Visible items are flat shaded with a basic pseudo lighting.
9
+ * Supports object coloring for visible objects.
10
+ * Non-visible objects use fillColor.
11
+ */
12
+ export declare function createSimpleMaterial(): THREE.ShaderMaterial;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @module vim-loader/materials
3
+ */
4
+ import * as THREE from 'three';
5
+ /**
6
+ * Material for the skybox
7
+ */
8
+ export declare class SkyboxMaterial extends THREE.ShaderMaterial {
9
+ get skyColor(): THREE.Color;
10
+ set skyColor(value: THREE.Color);
11
+ get groundColor(): THREE.Color;
12
+ set groundColor(value: THREE.Color);
13
+ get sharpness(): number;
14
+ set sharpness(value: number);
15
+ constructor(skyColor?: THREE.Color, groundColor?: THREE.Color, sharpness?: number);
16
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @module vim-loader/materials
3
+ */
4
+ import * as THREE from 'three';
5
+ /**
6
+ * Type alias for THREE uniforms
7
+ */
8
+ export type ShaderUniforms = {
9
+ [uniform: string]: THREE.IUniform<any>;
10
+ };
11
+ export declare function createOpaque(): StandardMaterial;
12
+ export declare function createTransparent(): StandardMaterial;
13
+ /**
14
+ * Creates a new instance of the default loader opaque material.
15
+ * @returns {THREE.MeshPhongMaterial} A new instance of MeshPhongMaterial with transparency.
16
+ */
17
+ export declare function createBasicOpaque(): THREE.MeshPhongMaterial;
18
+ /**
19
+ * Creates a new instance of the default loader transparent material.
20
+ * @returns {THREE.MeshPhongMaterial} A new instance of MeshPhongMaterial with transparency.
21
+ */
22
+ export declare function createBasicTransparent(): THREE.MeshPhongMaterial;
23
+ /**
24
+ * Material used for both opaque and tranparent surfaces of a VIM model.
25
+ */
26
+ export declare class StandardMaterial {
27
+ material: THREE.MeshPhongMaterial;
28
+ uniforms: ShaderUniforms | undefined;
29
+ _focusIntensity: number;
30
+ _focusColor: THREE.Color;
31
+ _sectionStrokeWitdh: number;
32
+ _sectionStrokeFallof: number;
33
+ _sectionStrokeColor: THREE.Color;
34
+ constructor(material: THREE.MeshPhongMaterial);
35
+ get color(): THREE.Color;
36
+ set color(color: THREE.Color);
37
+ get focusIntensity(): number;
38
+ set focusIntensity(value: number);
39
+ get focusColor(): THREE.Color;
40
+ set focusColor(value: THREE.Color);
41
+ get sectionStrokeWitdh(): number;
42
+ set sectionStrokeWitdh(value: number);
43
+ get sectionStrokeFallof(): number;
44
+ set sectionStrokeFallof(value: number);
45
+ get sectionStrokeColor(): THREE.Color;
46
+ set sectionStrokeColor(value: THREE.Color);
47
+ get clippingPlanes(): THREE.Plane[] | null;
48
+ set clippingPlanes(value: THREE.Plane[] | null);
49
+ dispose(): void;
50
+ /**
51
+ * Patches phong shader to be able to control when lighting should be applied to resulting color.
52
+ * Instanced meshes ignore light when InstanceColor is defined
53
+ * Instanced meshes ignore vertex color when instance attribute useVertexColor is 0
54
+ * Regular meshes ignore light in favor of vertex color when uv.y = 0
55
+ */
56
+ patchShader(material: THREE.Material): void;
57
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @module vim-loader/materials
3
+ */
4
+ import * as THREE from 'three';
5
+ /**
6
+ * This material simply sample and returns the value at each texel position of the texture.
7
+ */
8
+ export declare function createTransferMaterial(): THREE.ShaderMaterial;
@@ -0,0 +1,158 @@
1
+ /**
2
+ * @module vim-loader/materials
3
+ */
4
+ import * as THREE from 'three';
5
+ import { StandardMaterial } from './standardMaterial';
6
+ import { OutlineMaterial } from './outlineMaterial';
7
+ import { ViewerSettings } from '../../vim-webgl-viewer/settings/viewerSettings';
8
+ import { MergeMaterial } from './mergeMaterial';
9
+ import { SkyboxMaterial } from './skyboxMaterial';
10
+ /**
11
+ * Defines the materials to be used by the vim loader and allows for material injection.
12
+ */
13
+ export declare class ViewerMaterials {
14
+ static instance: ViewerMaterials;
15
+ static createInstance(instance: ViewerMaterials): void;
16
+ static getInstance(): ViewerMaterials;
17
+ /**
18
+ * Material used for opaque model geometry.
19
+ */
20
+ readonly opaque: StandardMaterial;
21
+ /**
22
+ * Material used for transparent model geometry.
23
+ */
24
+ readonly transparent: StandardMaterial;
25
+ /**
26
+ * Material used for maximum performance.
27
+ */
28
+ readonly simple: THREE.Material;
29
+ /**
30
+ * Material used when creating wireframe geometry of the model.
31
+ */
32
+ readonly wireframe: THREE.LineBasicMaterial;
33
+ /**
34
+ * Material used to show traces of hidden objects.
35
+ */
36
+ readonly isolation: THREE.Material;
37
+ /**
38
+ * Material used to filter out what is not selected for selection outline effect.
39
+ */
40
+ readonly mask: THREE.ShaderMaterial;
41
+ /**
42
+ * Material used for selection outline effect.
43
+ */
44
+ readonly outline: OutlineMaterial;
45
+ /**
46
+ * Material used for the skybox effect.
47
+ */
48
+ readonly skyBox: SkyboxMaterial;
49
+ /**
50
+ * Material used to merge outline effect with scene render.
51
+ */
52
+ readonly merge: MergeMaterial;
53
+ private _clippingPlanes;
54
+ private _sectionStrokeWitdh;
55
+ private _sectionStrokeFallof;
56
+ private _sectionStrokeColor;
57
+ private _focusIntensity;
58
+ private _focusColor;
59
+ private _onUpdate;
60
+ constructor(opaque?: StandardMaterial, transparent?: StandardMaterial, simple?: THREE.Material, wireframe?: THREE.LineBasicMaterial, isolation?: THREE.Material, mask?: THREE.ShaderMaterial, outline?: OutlineMaterial, merge?: MergeMaterial, skyBox?: SkyboxMaterial);
61
+ /**
62
+ * Updates material settings based on the provided configuration.
63
+ * @param {ViewerSettings} settings - The settings to apply to the materials.
64
+ */
65
+ applySettings(settings: ViewerSettings): void;
66
+ /**
67
+ * A signal dispatched whenever a material is modified.
68
+ */
69
+ get onUpdate(): import("ste-signals").ISignal;
70
+ /**
71
+ * Determines the color of the model regular opaque and transparent materials.
72
+ */
73
+ get modelColor(): THREE.Color;
74
+ set modelColor(color: THREE.Color);
75
+ /**
76
+ * Determines the opacity of the isolation material.
77
+ */
78
+ get isolationOpacity(): number;
79
+ set isolationOpacity(opacity: number);
80
+ /**
81
+ * Determines the color of the isolation material.
82
+ */
83
+ get isolationColor(): THREE.Color;
84
+ set isolationColor(color: THREE.Color);
85
+ /**
86
+ * Determines the color intensity of the highlight effect on mouse hover.
87
+ */
88
+ get focusIntensity(): number;
89
+ set focusIntensity(value: number);
90
+ /**
91
+ * Determines the color of the highlight effect on mouse hover.
92
+ */
93
+ get focusColor(): THREE.Color;
94
+ set focusColor(value: THREE.Color);
95
+ /**
96
+ * Determines the color of wireframe meshes.
97
+ */
98
+ get wireframeColor(): THREE.Color;
99
+ set wireframeColor(value: THREE.Color);
100
+ /**
101
+ * Determines the opacity of wireframe meshes.
102
+ */
103
+ get wireframeOpacity(): number;
104
+ set wireframeOpacity(value: number);
105
+ /**
106
+ * The clipping planes applied to all relevent materials
107
+ */
108
+ get clippingPlanes(): THREE.Plane[] | undefined;
109
+ set clippingPlanes(value: THREE.Plane[] | undefined);
110
+ /**
111
+ * The width of the stroke effect where the section box intersects the model.
112
+ */
113
+ get sectionStrokeWitdh(): number;
114
+ set sectionStrokeWitdh(value: number);
115
+ /**
116
+ * Gradient of the stroke effect where the section box intersects the model.
117
+ */
118
+ get sectionStrokeFallof(): number;
119
+ set sectionStrokeFallof(value: number);
120
+ /**
121
+ * Color of the stroke effect where the section box intersects the model.
122
+ */
123
+ get sectionStrokeColor(): THREE.Color;
124
+ set sectionStrokeColor(value: THREE.Color);
125
+ /**
126
+ * Color of the selection outline effect.
127
+ */
128
+ get outlineColor(): THREE.Color;
129
+ set outlineColor(value: THREE.Color);
130
+ /**
131
+ * Size of the blur convolution on the selection outline effect.
132
+ */
133
+ get outlineBlur(): number;
134
+ set outlineBlur(value: number);
135
+ /**
136
+ * Gradient of the the selection outline effect.
137
+ */
138
+ get outlineFalloff(): number;
139
+ set outlineFalloff(value: number);
140
+ /**
141
+ * Intensity of the the selection outline effect.
142
+ */
143
+ get outlineIntensity(): number;
144
+ set outlineIntensity(value: number);
145
+ get skyboxSkyColor(): THREE.Color;
146
+ set skyboxSkyColor(value: THREE.Color);
147
+ get skyboxGroundColor(): THREE.Color;
148
+ set skyboxGroundColor(value: THREE.Color);
149
+ get skyboxSharpness(): number;
150
+ set skyboxSharpness(value: number);
151
+ /** dispose all materials. */
152
+ dispose(): void;
153
+ }
154
+ /**
155
+ * Creates a new instance of the default wireframe material.
156
+ * @returns {THREE.LineBasicMaterial} A new instance of LineBasicMaterial.
157
+ */
158
+ export declare function createWireframe(): THREE.LineBasicMaterial;
@@ -0,0 +1,115 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import * as THREE from 'three';
5
+ import { InsertableSubmesh } from './progressive/insertableSubmesh';
6
+ import { Vim } from './vim';
7
+ import { InstancedSubmesh } from './progressive/instancedSubmesh';
8
+ /**
9
+ * Wrapper around THREE.Mesh
10
+ * Keeps track of what VIM instances are part of this mesh.
11
+ * Is either merged on instanced.
12
+ */
13
+ export declare class Mesh {
14
+ /**
15
+ * the wrapped THREE mesh
16
+ */
17
+ mesh: THREE.Mesh;
18
+ /**
19
+ * Vim file from which this mesh was created.
20
+ */
21
+ vim: Vim | undefined;
22
+ /**
23
+ * Whether the mesh is merged or not.
24
+ */
25
+ merged: boolean;
26
+ /**
27
+ * Indices of the g3d instances that went into creating the mesh
28
+ */
29
+ instances: number[];
30
+ /**
31
+ * startPosition of each submesh on a merged mesh.
32
+ */
33
+ submeshes: number[];
34
+ /**
35
+ * bounding box of each instance
36
+ */
37
+ boxes: THREE.Box3[];
38
+ /**
39
+ * Set to true to ignore SetMaterial calls.
40
+ */
41
+ ignoreSceneMaterial: boolean;
42
+ /**
43
+ * Total bounding box for this mesh.
44
+ */
45
+ boundingBox: THREE.Box3;
46
+ /**
47
+ * initial material.
48
+ */
49
+ private _material;
50
+ private constructor();
51
+ static createMerged(mesh: THREE.Mesh, instances: number[], boxes: THREE.Box3[], submeshes: number[]): Mesh;
52
+ static createInstanced(mesh: THREE.Mesh, instances: number[], boxes: THREE.Box3[]): Mesh;
53
+ /**
54
+ * Overrides mesh material, set to undefine to restore initial material.
55
+ */
56
+ setMaterial(value: THREE.Material): void;
57
+ /**
58
+ * Returns submesh for given index.
59
+ */
60
+ getSubMesh(index: number): StandardSubmesh;
61
+ /**
62
+ * Returns submesh corresponding to given face on a merged mesh.
63
+ */
64
+ getSubmeshFromFace(faceIndex: number): StandardSubmesh;
65
+ /**
66
+ *
67
+ * @returns Returns all submeshes
68
+ */
69
+ getSubmeshes(): StandardSubmesh[];
70
+ private binarySearch;
71
+ private unionAllBox;
72
+ }
73
+ export type MergedSubmesh = StandardSubmesh | InsertableSubmesh;
74
+ export type Submesh = MergedSubmesh | InstancedSubmesh;
75
+ export declare class SimpleInstanceSubmesh {
76
+ mesh: THREE.InstancedMesh;
77
+ get three(): THREE.InstancedMesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>;
78
+ index: number;
79
+ readonly merged = false;
80
+ constructor(mesh: THREE.InstancedMesh, index: number);
81
+ }
82
+ export declare class StandardSubmesh {
83
+ mesh: Mesh;
84
+ index: number;
85
+ constructor(mesh: Mesh, index: number);
86
+ equals(other: Submesh): boolean;
87
+ /**
88
+ * Returns parent three mesh.
89
+ */
90
+ get three(): THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>;
91
+ /**
92
+ * True if parent mesh is merged.
93
+ */
94
+ get merged(): boolean;
95
+ /**
96
+ * Returns vim instance associated with this submesh.
97
+ */
98
+ get instance(): number;
99
+ /**
100
+ * Returns bounding box for this submesh.
101
+ */
102
+ get boundingBox(): THREE.Box3;
103
+ /**
104
+ * Returns starting position in parent mesh for merged mesh.
105
+ */
106
+ get meshStart(): number;
107
+ /**
108
+ * Returns ending position in parent mesh for merged mesh.
109
+ */
110
+ get meshEnd(): number;
111
+ /**
112
+ * Returns vim object for this submesh.
113
+ */
114
+ get object(): import("./object3D").Object3D;
115
+ }
@@ -0,0 +1,105 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import * as THREE from 'three';
5
+ import { Vim } from './vim';
6
+ import { IElement, VimHelpers } from 'vim-format';
7
+ import { Submesh } from './mesh';
8
+ /**
9
+ * High level api to interact with the loaded vim geometry and data.
10
+ */
11
+ export declare class Object3D {
12
+ private _color;
13
+ private _boundingBox;
14
+ private _meshes;
15
+ private _outlineAttribute;
16
+ private _visibleAttribute;
17
+ private _coloredAttribute;
18
+ private _focusedAttribute;
19
+ private _colorAttribute;
20
+ /**
21
+ * Indicate whether this object is architectural or markup.
22
+ */
23
+ readonly type = "Object3D";
24
+ /**
25
+ * The vim object from which this object came from.
26
+ */
27
+ readonly vim: Vim;
28
+ /**
29
+ * The bim element index associated with this object.
30
+ */
31
+ readonly element: number;
32
+ /**
33
+ * The ID of the element associated with this object.
34
+ */
35
+ get elementId(): bigint;
36
+ /**
37
+ * The geometry instances associated with this object.
38
+ */
39
+ readonly instances: number[] | undefined;
40
+ /**
41
+ * Checks if this object has associated geometry.
42
+ * @returns {boolean} True if this object has geometry, otherwise false.
43
+ */
44
+ get hasMesh(): boolean;
45
+ /**
46
+ * Determines whether to render selection outline for this object or not.
47
+ */
48
+ get outline(): boolean;
49
+ set outline(value: boolean);
50
+ /**
51
+ * Determines whether to render focus highlight for this object or not.
52
+ */
53
+ get focused(): boolean;
54
+ set focused(value: boolean);
55
+ /**
56
+ * Determines whether to render this object or not.
57
+ */
58
+ get visible(): boolean;
59
+ set visible(value: boolean);
60
+ /**
61
+ * Gets or sets the display color of this object.
62
+ * @param {THREE.Color | undefined} color The color to apply. Pass undefined to revert to the default color.
63
+ * @returns {THREE.Color} The current color of the object.
64
+ */
65
+ get color(): THREE.Color | undefined;
66
+ set color(color: THREE.Color | undefined);
67
+ /**
68
+ * Constructs a new instance of Object.
69
+ * @param {Vim} vim The Vim instance.
70
+ * @param {number} element The element index.
71
+ * @param {number[] | undefined} instances An optional array of instance numbers.
72
+ * @param {Submesh[] | undefined} meshes An optional array of submeshes.
73
+ */
74
+ constructor(vim: Vim, element: number, instances: number[] | undefined, meshes: Submesh[] | undefined);
75
+ /**
76
+ * Asynchronously retrieves Bim data for the element associated with this object.
77
+ * @returns {IElement} An object containing the bim data for this element.
78
+ */
79
+ getBimElement(): Promise<IElement>;
80
+ /**
81
+ * Asynchronously retrieves Bim parameters for the element associated with this object.
82
+ * @returns {VimHelpers.ElementParameter[]} An array of all bim parameters for this elements.
83
+ */
84
+ getBimParameters(): Promise<VimHelpers.ElementParameter[]>;
85
+ /**
86
+ * Retrieves the bounding box of the object from cache or computes it if needed.
87
+ * Returns undefined if the object has no geometry.
88
+ * @returns {THREE.Box3 | undefined} The bounding box of the object, or undefined if the object has no geometry.
89
+ */
90
+ getBoundingBox(): THREE.Box3;
91
+ /**
92
+ * Retrieves the center position of this object.
93
+ * @param {THREE.Vector3} [target=new THREE.Vector3()] Optional parameter specifying where to copy the center position data.
94
+ * A new instance is created if none is provided.
95
+ * @returns {THREE.Vector3 | undefined} The center position of the object, or undefined if the object has no geometry.
96
+ */
97
+ getCenter(target?: THREE.Vector3): THREE.Vector3;
98
+ /**
99
+ * Internal method used to replace this object's meshes and apply color as needed.
100
+ * @param {Submesh} mesh The new mesh to be added.
101
+ * @throws {Error} Throws an error if the provided mesh instance does not match any existing instances.
102
+ */
103
+ _addMesh(mesh: Submesh): void;
104
+ private updateMeshes;
105
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { SimpleInstanceSubmesh, Submesh } from './mesh';
5
+ export type AttributeTarget = Submesh | SimpleInstanceSubmesh;
6
+ export declare class ObjectAttribute<T> {
7
+ readonly vertexAttribute: string;
8
+ readonly instanceAttribute: string;
9
+ readonly defaultValue: T;
10
+ readonly toNumber: (value: T) => number;
11
+ private _value;
12
+ private _meshes;
13
+ constructor(value: T, vertexAttribute: string, instanceAttribute: string, meshes: AttributeTarget[] | undefined, toNumber: (value: T) => number);
14
+ updateMeshes(meshes: AttributeTarget[] | undefined): void;
15
+ get value(): T;
16
+ apply(value: T): boolean;
17
+ private applyInstanced;
18
+ private applyMerged;
19
+ }