vim-web 0.3.23 → 0.3.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/dist/types/react-viewer/bim/bimInfoBody.d.ts +9 -0
  2. package/dist/types/react-viewer/bim/bimInfoData.d.ts +77 -0
  3. package/dist/types/react-viewer/bim/bimInfoHeader.d.ts +6 -0
  4. package/dist/types/react-viewer/bim/bimInfoObject.d.ts +12 -0
  5. package/dist/types/react-viewer/bim/bimInfoPanel.d.ts +10 -0
  6. package/dist/types/react-viewer/bim/bimInfoVim.d.ts +5 -0
  7. package/dist/types/react-viewer/bim/bimPanel.d.ts +40 -0
  8. package/dist/types/react-viewer/bim/bimSearch.d.ts +17 -0
  9. package/dist/types/react-viewer/bim/bimTree.d.ts +31 -0
  10. package/dist/types/react-viewer/bim/bimTreeData.d.ts +43 -0
  11. package/dist/types/react-viewer/bim/bimUtils.d.ts +13 -0
  12. package/dist/types/react-viewer/bim/openState.d.ts +5 -0
  13. package/dist/types/react-viewer/container.d.ts +27 -0
  14. package/dist/types/react-viewer/controlbar/controlBar.d.ts +57 -0
  15. package/dist/types/react-viewer/controlbar/controlBarButton.d.ts +17 -0
  16. package/dist/types/react-viewer/controlbar/controlBarCommands.d.ts +4 -0
  17. package/dist/types/react-viewer/controlbar/controlBarSection.d.ts +10 -0
  18. package/dist/types/react-viewer/controlbar/fullScreenState.d.ts +4 -0
  19. package/dist/types/react-viewer/controlbar/measureState.d.ts +7 -0
  20. package/dist/types/react-viewer/controlbar/pointerState.d.ts +6 -0
  21. package/dist/types/react-viewer/controlbar/restOfScreen.d.ts +5 -0
  22. package/dist/types/react-viewer/controlbar/sectionBoxState.d.ts +15 -0
  23. package/dist/types/react-viewer/errors/errorStyle.d.ts +15 -0
  24. package/dist/types/react-viewer/errors/errorUtils.d.ts +2 -0
  25. package/dist/types/react-viewer/errors/errors.d.ts +5 -0
  26. package/dist/types/react-viewer/errors/fileDownloadingError.d.ts +2 -0
  27. package/dist/types/react-viewer/errors/fileLoadingError.d.ts +2 -0
  28. package/dist/types/react-viewer/errors/fileOpeningError.d.ts +2 -0
  29. package/dist/types/react-viewer/errors/serverCompatibilityError.d.ts +2 -0
  30. package/dist/types/react-viewer/errors/serverConnectionError.d.ts +2 -0
  31. package/dist/types/react-viewer/helpers/camera.d.ts +37 -0
  32. package/dist/types/react-viewer/helpers/cameraObserver.d.ts +8 -0
  33. package/dist/types/react-viewer/helpers/cursor.d.ts +35 -0
  34. package/dist/types/react-viewer/helpers/data.d.ts +27 -0
  35. package/dist/types/react-viewer/helpers/deferredPromise.d.ts +8 -0
  36. package/dist/types/react-viewer/helpers/element.d.ts +13 -0
  37. package/dist/types/react-viewer/helpers/fullScreenObserver.d.ts +9 -0
  38. package/dist/types/react-viewer/helpers/inputs.d.ts +23 -0
  39. package/dist/types/react-viewer/helpers/isolation.d.ts +87 -0
  40. package/dist/types/react-viewer/helpers/loadRequest.d.ts +29 -0
  41. package/dist/types/react-viewer/helpers/requestResult.d.ts +13 -0
  42. package/dist/types/react-viewer/helpers/utils.d.ts +7 -0
  43. package/dist/types/react-viewer/panels/axesPanel.d.ts +20 -0
  44. package/dist/types/react-viewer/panels/contextMenu.d.ts +75 -0
  45. package/dist/types/react-viewer/panels/help.d.ts +15 -0
  46. package/dist/types/react-viewer/panels/icons.d.ts +46 -0
  47. package/dist/types/react-viewer/panels/loadingBox.d.ts +26 -0
  48. package/dist/types/react-viewer/panels/logo.d.ts +5 -0
  49. package/dist/types/react-viewer/panels/messageBox.d.ts +14 -0
  50. package/dist/types/react-viewer/panels/modal.d.ts +18 -0
  51. package/dist/types/react-viewer/panels/overlay.d.ts +10 -0
  52. package/dist/types/react-viewer/panels/performance.d.ts +7 -0
  53. package/dist/types/react-viewer/panels/toast.d.ts +22 -0
  54. package/dist/types/react-viewer/reactViewerIndex.d.ts +8 -0
  55. package/dist/types/react-viewer/settings/menuSettings.d.ts +17 -0
  56. package/dist/types/react-viewer/settings/settings.d.ts +65 -0
  57. package/dist/types/react-viewer/settings/settingsState.d.ts +18 -0
  58. package/dist/types/react-viewer/settings/settingsStorage.d.ts +6 -0
  59. package/dist/types/react-viewer/sidePanel/sidePanel.d.ts +20 -0
  60. package/dist/types/react-viewer/sidePanel/sideState.d.ts +22 -0
  61. package/dist/types/react-viewer/ultra/ultraComponent.d.ts +30 -0
  62. package/dist/types/react-viewer/ultra/ultraErrors.d.ts +3 -0
  63. package/dist/types/react-viewer/urls.d.ts +2 -0
  64. package/dist/types/react-viewer/webgl/viewerState.d.ts +11 -0
  65. package/dist/types/react-viewer/webgl/webglComponent.d.ts +41 -0
  66. package/dist/types/react-viewer/webgl/webglComponentRef.d.ts +99 -0
  67. package/dist/types/react-viewer/webgl/webglLoading.d.ts +67 -0
  68. package/dist/types/ultra-viewer/ultraViewerIndex.d.ts +8 -0
  69. package/dist/types/ultra-viewer/utils/array.d.ts +18 -0
  70. package/dist/types/ultra-viewer/utils/debounce.d.ts +1 -0
  71. package/dist/types/ultra-viewer/utils/deferredPromise.d.ts +8 -0
  72. package/dist/types/ultra-viewer/utils/math3d.d.ts +106 -0
  73. package/dist/types/ultra-viewer/utils/promise.d.ts +21 -0
  74. package/dist/types/ultra-viewer/utils/result.d.ts +11 -0
  75. package/dist/types/ultra-viewer/utils/url.d.ts +8 -0
  76. package/dist/types/ultra-viewer/utils/validation.d.ts +28 -0
  77. package/dist/types/ultra-viewer/viewer/camera.d.ts +118 -0
  78. package/dist/types/ultra-viewer/viewer/color.d.ts +57 -0
  79. package/dist/types/ultra-viewer/viewer/colorManager.d.ts +73 -0
  80. package/dist/types/ultra-viewer/viewer/decoder.d.ts +116 -0
  81. package/dist/types/ultra-viewer/viewer/decoderWithWorker.d.ts +80 -0
  82. package/dist/types/ultra-viewer/viewer/inputs/InputTouch.d.ts +25 -0
  83. package/dist/types/ultra-viewer/viewer/inputs/inputHandler.d.ts +7 -0
  84. package/dist/types/ultra-viewer/viewer/inputs/inputKeyboard.d.ts +20 -0
  85. package/dist/types/ultra-viewer/viewer/inputs/inputMouse.d.ts +21 -0
  86. package/dist/types/ultra-viewer/viewer/inputs/inputs.d.ts +27 -0
  87. package/dist/types/ultra-viewer/viewer/loadRequest.d.ts +36 -0
  88. package/dist/types/ultra-viewer/viewer/logger.d.ts +9 -0
  89. package/dist/types/ultra-viewer/viewer/marshal.d.ts +72 -0
  90. package/dist/types/ultra-viewer/viewer/protocol.d.ts +13 -0
  91. package/dist/types/ultra-viewer/viewer/renderer.d.ts +142 -0
  92. package/dist/types/ultra-viewer/viewer/rpcClient.d.ts +72 -0
  93. package/dist/types/ultra-viewer/viewer/rpcSafeClient.d.ts +382 -0
  94. package/dist/types/ultra-viewer/viewer/selection.d.ts +94 -0
  95. package/dist/types/ultra-viewer/viewer/socketClient.d.ts +141 -0
  96. package/dist/types/ultra-viewer/viewer/streamLogger.d.ts +19 -0
  97. package/dist/types/ultra-viewer/viewer/streamRenderer.d.ts +7 -0
  98. package/dist/types/ultra-viewer/viewer/viewer.d.ts +123 -0
  99. package/dist/types/ultra-viewer/viewer/viewport.d.ts +39 -0
  100. package/dist/types/ultra-viewer/viewer/vim.d.ts +111 -0
  101. package/dist/types/ultra-viewer/viewer/vimCollection.d.ts +43 -0
  102. package/dist/types/vimWebIndex.d.ts +4 -0
  103. package/dist/types/webgl-viewer/images.d.ts +4 -0
  104. package/dist/types/webgl-viewer/index.d.ts +26 -0
  105. package/dist/types/webgl-viewer/utils/boxes.d.ts +5 -0
  106. package/dist/types/webgl-viewer/utils/deferredPromise.d.ts +8 -0
  107. package/dist/types/webgl-viewer/utils/requestResult.d.ts +13 -0
  108. package/dist/types/webgl-viewer/vim-loader/averageBoundingBox.d.ts +6 -0
  109. package/dist/types/webgl-viewer/vim-loader/colorAttributes.d.ts +34 -0
  110. package/dist/types/webgl-viewer/vim-loader/elementMapping.d.ts +113 -0
  111. package/dist/types/webgl-viewer/vim-loader/geometry.d.ts +105 -0
  112. package/dist/types/webgl-viewer/vim-loader/materials/isolationMaterial.d.ts +12 -0
  113. package/dist/types/webgl-viewer/vim-loader/materials/maskMaterial.d.ts +8 -0
  114. package/dist/types/webgl-viewer/vim-loader/materials/mergeMaterial.d.ts +18 -0
  115. package/dist/types/webgl-viewer/vim-loader/materials/outlineMaterial.d.ts +36 -0
  116. package/dist/types/webgl-viewer/vim-loader/materials/simpleMaterial.d.ts +12 -0
  117. package/dist/types/webgl-viewer/vim-loader/materials/skyboxMaterial.d.ts +16 -0
  118. package/dist/types/webgl-viewer/vim-loader/materials/standardMaterial.d.ts +57 -0
  119. package/dist/types/webgl-viewer/vim-loader/materials/transferMaterial.d.ts +8 -0
  120. package/dist/types/webgl-viewer/vim-loader/materials/viewerMaterials.d.ts +158 -0
  121. package/dist/types/webgl-viewer/vim-loader/mesh.d.ts +115 -0
  122. package/dist/types/webgl-viewer/vim-loader/object3D.d.ts +105 -0
  123. package/dist/types/webgl-viewer/vim-loader/objectAttributes.d.ts +19 -0
  124. package/dist/types/webgl-viewer/vim-loader/progressive/g3dOffsets.d.ts +53 -0
  125. package/dist/types/webgl-viewer/vim-loader/progressive/g3dSubset.d.ts +115 -0
  126. package/dist/types/webgl-viewer/vim-loader/progressive/insertableGeometry.d.ts +40 -0
  127. package/dist/types/webgl-viewer/vim-loader/progressive/insertableMesh.d.ts +59 -0
  128. package/dist/types/webgl-viewer/vim-loader/progressive/insertableSubmesh.d.ts +43 -0
  129. package/dist/types/webgl-viewer/vim-loader/progressive/instancedMesh.d.ts +32 -0
  130. package/dist/types/webgl-viewer/vim-loader/progressive/instancedMeshFactory.d.ts +20 -0
  131. package/dist/types/webgl-viewer/vim-loader/progressive/instancedSubmesh.d.ts +31 -0
  132. package/dist/types/webgl-viewer/vim-loader/progressive/legacyMeshFactory.d.ts +23 -0
  133. package/dist/types/webgl-viewer/vim-loader/progressive/loadingSynchronizer.d.ts +27 -0
  134. package/dist/types/webgl-viewer/vim-loader/progressive/open.d.ts +12 -0
  135. package/dist/types/webgl-viewer/vim-loader/progressive/subsetBuilder.d.ts +73 -0
  136. package/dist/types/webgl-viewer/vim-loader/progressive/subsetRequest.d.ts +37 -0
  137. package/dist/types/webgl-viewer/vim-loader/progressive/vimRequest.d.ts +44 -0
  138. package/dist/types/webgl-viewer/vim-loader/progressive/vimx.d.ts +17 -0
  139. package/dist/types/webgl-viewer/vim-loader/scene.d.ts +92 -0
  140. package/dist/types/webgl-viewer/vim-loader/vim.d.ts +157 -0
  141. package/dist/types/webgl-viewer/vim-loader/vimSettings.d.ts +62 -0
  142. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/camera.d.ts +255 -0
  143. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/cameraMovement.d.ts +77 -0
  144. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/cameraMovementLerp.d.ts +28 -0
  145. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/cameraMovementSnap.d.ts +24 -0
  146. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/orthographic.d.ts +12 -0
  147. package/dist/types/webgl-viewer/vim-webgl-viewer/camera/perspective.d.ts +12 -0
  148. package/dist/types/webgl-viewer/vim-webgl-viewer/environment/cameraLight.d.ts +43 -0
  149. package/dist/types/webgl-viewer/vim-webgl-viewer/environment/environment.d.ts +44 -0
  150. package/dist/types/webgl-viewer/vim-webgl-viewer/environment/groundPlane.d.ts +25 -0
  151. package/dist/types/webgl-viewer/vim-webgl-viewer/environment/skybox.d.ts +39 -0
  152. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/axes/axes.d.ts +14 -0
  153. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/axes/axesSettings.d.ts +19 -0
  154. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/axes/gizmoAxes.d.ts +60 -0
  155. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/gizmoLoading.d.ts +23 -0
  156. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/gizmoOrbit.d.ts +71 -0
  157. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/gizmoRectangle.d.ts +51 -0
  158. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/gizmos.d.ts +50 -0
  159. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/markers/gizmoMarker.d.ts +64 -0
  160. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/markers/gizmoMarkers.d.ts +29 -0
  161. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/measure/measure.d.ts +103 -0
  162. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/measure/measureFlow.d.ts +36 -0
  163. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/measure/measureGizmo.d.ts +44 -0
  164. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/measure/measureHtml.d.ts +26 -0
  165. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/sectionBox/sectionBox.d.ts +70 -0
  166. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/sectionBox/sectionBoxGizmo.d.ts +47 -0
  167. package/dist/types/webgl-viewer/vim-webgl-viewer/gizmos/sectionBox/sectionBoxInputs.d.ts +39 -0
  168. package/dist/types/webgl-viewer/vim-webgl-viewer/inputs/input.d.ts +128 -0
  169. package/dist/types/webgl-viewer/vim-webgl-viewer/inputs/inputHandler.d.ts +29 -0
  170. package/dist/types/webgl-viewer/vim-webgl-viewer/inputs/keyboard.d.ts +113 -0
  171. package/dist/types/webgl-viewer/vim-webgl-viewer/inputs/mouse.d.ts +66 -0
  172. package/dist/types/webgl-viewer/vim-webgl-viewer/inputs/touch.d.ts +45 -0
  173. package/dist/types/webgl-viewer/vim-webgl-viewer/raycaster.d.ts +89 -0
  174. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/mergePass.d.ts +16 -0
  175. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/outlinePass.d.ts +19 -0
  176. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/renderScene.d.ts +49 -0
  177. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/renderer.d.ts +125 -0
  178. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/renderingComposer.d.ts +46 -0
  179. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/renderingSection.d.ts +36 -0
  180. package/dist/types/webgl-viewer/vim-webgl-viewer/rendering/transferPass.d.ts +15 -0
  181. package/dist/types/webgl-viewer/vim-webgl-viewer/selection.d.ts +90 -0
  182. package/dist/types/webgl-viewer/vim-webgl-viewer/settings/defaultViewerSettings.d.ts +5 -0
  183. package/dist/types/webgl-viewer/vim-webgl-viewer/settings/viewerSettings.d.ts +342 -0
  184. package/dist/types/webgl-viewer/vim-webgl-viewer/settings/viewerSettingsParsing.d.ts +9 -0
  185. package/dist/types/webgl-viewer/vim-webgl-viewer/viewer.d.ts +100 -0
  186. package/dist/types/webgl-viewer/vim-webgl-viewer/viewport.d.ts +73 -0
  187. package/dist/vim-web.css +2029 -0
  188. package/dist/vim-web.iife.js +72763 -0
  189. package/dist/vim-web.iife.js.map +1 -0
  190. package/dist/vim-web.mjs +72746 -0
  191. package/dist/vim-web.mjs.map +1 -0
  192. package/package.json +1 -1
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { MeshSection } from 'vim-format';
5
+ import { G3dSubset } from './g3dSubset';
6
+ export declare class G3dMeshCounts {
7
+ instances: number;
8
+ meshes: number;
9
+ indices: number;
10
+ vertices: number;
11
+ }
12
+ /**
13
+ * Holds the offsets needed to preallocate geometry for a given meshIndexSubset
14
+ */
15
+ export declare class G3dMeshOffsets {
16
+ readonly subset: G3dSubset;
17
+ readonly section: MeshSection;
18
+ readonly counts: G3dMeshCounts;
19
+ private readonly _indexOffsets;
20
+ private readonly _vertexOffsets;
21
+ /**
22
+ * Computes geometry offsets for given subset and section
23
+ * @param subset subset for which to compute offsets
24
+ * @param section 'opaque' | 'transparent' | 'all'
25
+ */
26
+ constructor(subset: G3dSubset, section: MeshSection);
27
+ private computeOffsets;
28
+ /**
29
+ * Returns the index offset for given mesh and its instances.
30
+ * @param mesh subset-based mesh index
31
+ */
32
+ getIndexOffset(mesh: number): number;
33
+ /**
34
+ * Returns the vertex offset for given mesh and its instances.
35
+ * @param mesh subset-based mesh index
36
+ */
37
+ getVertexOffset(mesh: number): number;
38
+ /**
39
+ * Returns instance counts of given mesh.
40
+ * @param mesh subset-based mesh index
41
+ */
42
+ getMeshInstanceCount(mesh: number): number;
43
+ /**
44
+ * Returns source-based instance for given mesh and index.
45
+ * @mesh subset-based mesh index
46
+ * @index mesh-based instance index
47
+ */
48
+ getMeshInstance(mesh: number, index: number): number;
49
+ /**
50
+ * Returns the source-based mesh index at given index
51
+ */
52
+ getSourceMesh(index: number): number;
53
+ }
@@ -0,0 +1,115 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { G3d, MeshSection, G3dScene, FilterMode } from 'vim-format';
5
+ import { G3dMeshOffsets, G3dMeshCounts } from './g3dOffsets';
6
+ import * as THREE from 'three';
7
+ /**
8
+ * Represents a subset of a complete scene definition.
9
+ * Allows for further filtering or to get offsets needed to build the scene.
10
+ */
11
+ export declare class G3dSubset {
12
+ private _source;
13
+ private _instances;
14
+ /** Source-based mesh indices */
15
+ private _meshes;
16
+ /** Source-based instances aligned with corresponding mesh */
17
+ private _meshInstances;
18
+ /**
19
+ * @param source Underlying data source for the subset
20
+ * @param instances source-based instance indices of included instances.
21
+ */
22
+ constructor(source: G3dScene | G3d, instances?: number[]);
23
+ /**
24
+ * Returns total instance count in subset.
25
+ */
26
+ getInstanceCount(): number;
27
+ /**
28
+ * Returns the vim-based instance (node) for given subset-based instance.
29
+ */
30
+ getVimInstance(subsetIndex: number): number;
31
+ /**
32
+ * Returns the vim-based instances (nodes) for current subset.
33
+ */
34
+ getVimInstances(): number[];
35
+ /**
36
+ * Returns source-based mesh index.
37
+ * @param index subset-based mesh index
38
+ */
39
+ getSourceMesh(index: number): number;
40
+ /**
41
+ * Returns total mesh count in subset.
42
+ */
43
+ getMeshCount(): number;
44
+ /**
45
+ * Returns total index count for given mesh and section.
46
+ * @param mesh subset-based mesh index
47
+ * @param section sections to include based on opacity
48
+ */
49
+ getMeshIndexCount(mesh: number, section: MeshSection): number;
50
+ /**
51
+ * Returns total vertex count for given mesh and section.
52
+ * @param mesh subset-based mesh index
53
+ * @param section sections to include based on opacity
54
+ */
55
+ getMeshVertexCount(mesh: number, section: MeshSection): number;
56
+ /**
57
+ * Returns instance count for given mesh.
58
+ * @param mesh subset-based mesh index.
59
+ */
60
+ getMeshInstanceCount(mesh: number): number;
61
+ /**
62
+ * Returns a list of source-based instance indices for given mesh.
63
+ * @param mesh subset-based mesh index.
64
+ */
65
+ getMeshInstances(mesh: number): number[];
66
+ /**
67
+ * Returns the source-based instance index for given mesh and index.
68
+ * @param mesh subset-based mesh index.
69
+ * @param index mesh-based instance index
70
+ */
71
+ getMeshInstance(mesh: number, index: number): number;
72
+ /**
73
+ * Returns a new subset that only contains unique meshes.
74
+ */
75
+ filterUniqueMeshes(): G3dSubset;
76
+ /**
77
+ * Returns a new subset that contains only the N largest meshes sorted by largest
78
+ */
79
+ filterLargests(count: number): G3dSubset;
80
+ /**
81
+ * Returns a new subset that only contains non-unique meshes.
82
+ */
83
+ filterNonUniqueMeshes(): G3dSubset;
84
+ private filterByCount;
85
+ /**
86
+ * Returns offsets needed to build geometry.
87
+ */
88
+ getOffsets(section: MeshSection): G3dMeshOffsets;
89
+ /**
90
+ * Returns the count of each mesh attribute.
91
+ */
92
+ getAttributeCounts(section?: MeshSection): G3dMeshCounts;
93
+ /**
94
+ * Returns a new subset where the order of meshes is inverted.
95
+ */
96
+ reverse(): G3dSubset;
97
+ /**
98
+ * Returns a new subset with instances not included in given filter.
99
+ * @param mode Defines which field the filter will be applied to.
100
+ * @param filter Array of all values to match for.
101
+ */
102
+ except(mode: FilterMode, filter: number[] | Set<number>): G3dSubset;
103
+ /**
104
+ * Returns a new subset with instances matching given filter.
105
+ * @param mode Defines which field the filter will be applied to.
106
+ * @param filter Array of all values to match for.
107
+ */
108
+ filter(mode: FilterMode, filter: number[] | Set<number>): G3dSubset;
109
+ private _filter;
110
+ private filterOnArray;
111
+ /**
112
+ * Return the bounding box of the current subset or undefined if subset is empty.
113
+ */
114
+ getBoundingBox(): THREE.Box3;
115
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import * as THREE from 'three';
5
+ import { G3d, G3dMesh, G3dMaterial } from 'vim-format';
6
+ import { Scene } from '../scene';
7
+ import { G3dMeshOffsets } from './g3dOffsets';
8
+ export declare class GeometrySubmesh {
9
+ instance: number;
10
+ start: number;
11
+ end: number;
12
+ boundingBox: THREE.Box3;
13
+ expandBox(point: THREE.Vector3): void;
14
+ }
15
+ export declare class InsertableGeometry {
16
+ _scene: Scene;
17
+ materials: G3dMaterial;
18
+ offsets: G3dMeshOffsets;
19
+ geometry: THREE.BufferGeometry;
20
+ submeshes: GeometrySubmesh[];
21
+ boundingBox: THREE.Box3;
22
+ private _computeBoundingBox;
23
+ private _indexAttribute;
24
+ private _vertexAttribute;
25
+ private _colorAttribute;
26
+ private _updateStartMesh;
27
+ private _updateEndMesh;
28
+ private _meshToUpdate;
29
+ constructor(offsets: G3dMeshOffsets, materials: G3dMaterial, transparent: boolean);
30
+ get progress(): number;
31
+ insert(mesh: G3dMesh, at: number): number[];
32
+ float32ArraysAreEqual(array1: Float32Array, array2: Float32Array): boolean;
33
+ insertFromG3d(g3d: G3d, mesh: number): number[];
34
+ private setIndex;
35
+ private setVertex;
36
+ private setColor;
37
+ private expandBox;
38
+ flushUpdate(): void;
39
+ update(): void;
40
+ }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import * as THREE from 'three';
5
+ import { G3d, G3dMesh, G3dMaterial } from 'vim-format';
6
+ import { InsertableGeometry } from './insertableGeometry';
7
+ import { InsertableSubmesh } from './insertableSubmesh';
8
+ import { G3dMeshOffsets } from './g3dOffsets';
9
+ import { Vim } from '../vim';
10
+ export declare class InsertableMesh {
11
+ offsets: G3dMeshOffsets;
12
+ mesh: THREE.Mesh;
13
+ vim: Vim;
14
+ /**
15
+ * Whether the mesh is merged or not.
16
+ */
17
+ get merged(): boolean;
18
+ /**
19
+ * Whether the mesh is transparent or not.
20
+ */
21
+ transparent: boolean;
22
+ /**
23
+ * Total bounding box for this mesh.
24
+ */
25
+ get boundingBox(): THREE.Box3;
26
+ /**
27
+ * Set to true to ignore SetMaterial calls.
28
+ */
29
+ ignoreSceneMaterial: boolean;
30
+ /**
31
+ * initial material.
32
+ */
33
+ private _material;
34
+ geometry: InsertableGeometry;
35
+ constructor(offsets: G3dMeshOffsets, materials: G3dMaterial, transparent: boolean);
36
+ get progress(): number;
37
+ insert(g3d: G3dMesh, mesh: number): void;
38
+ insertFromVim(g3d: G3d, mesh: number): void;
39
+ update(): void;
40
+ clearUpdate(): void;
41
+ /**
42
+ * Returns submesh corresponding to given face on a merged mesh.
43
+ */
44
+ getSubmeshFromFace(faceIndex: number): InsertableSubmesh;
45
+ /**
46
+ *
47
+ * @returns Returns all submeshes
48
+ */
49
+ getSubmeshes(): InsertableSubmesh[];
50
+ /**
51
+ *
52
+ * @returns Returns submesh for given index.
53
+ */
54
+ getSubmesh(index: number): InsertableSubmesh;
55
+ /**
56
+ * Overrides mesh material, set to undefine to restore initial material.
57
+ */
58
+ setMaterial(value: THREE.Material): void;
59
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { Submesh } from '../mesh';
5
+ import { InsertableMesh } from './insertableMesh';
6
+ export declare class InsertableSubmesh {
7
+ mesh: InsertableMesh;
8
+ index: number;
9
+ private _colors;
10
+ constructor(mesh: InsertableMesh, index: number);
11
+ equals(other: Submesh): boolean;
12
+ /**
13
+ * Returns parent three mesh.
14
+ */
15
+ get three(): import("three").Mesh<import("three").BufferGeometry, import("three").Material | import("three").Material[]>;
16
+ /**
17
+ * True if parent mesh is merged.
18
+ */
19
+ get merged(): boolean;
20
+ private get submesh();
21
+ /**
22
+ * Returns vim instance associated with this submesh.
23
+ */
24
+ get instance(): number;
25
+ /**
26
+ * Returns bounding box for this submesh.
27
+ */
28
+ get boundingBox(): import("three").Box3;
29
+ /**
30
+ * Returns starting position in parent mesh for merged mesh.
31
+ */
32
+ get meshStart(): number;
33
+ /**
34
+ * Returns ending position in parent mesh for merged mesh.
35
+ */
36
+ get meshEnd(): number;
37
+ /**
38
+ * Returns vim object for this submesh.
39
+ */
40
+ get object(): import("../object3D").Object3D;
41
+ saveColors(colors: Float32Array): void;
42
+ popColors(): Float32Array<ArrayBufferLike>;
43
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import * as THREE from 'three';
5
+ import { Vim } from '../vim';
6
+ import { InstancedSubmesh } from './instancedSubmesh';
7
+ import { G3d, G3dMesh } from 'vim-format';
8
+ export declare class InstancedMesh {
9
+ g3dMesh: G3dMesh | G3d;
10
+ vim: Vim;
11
+ mesh: THREE.InstancedMesh;
12
+ bimInstances: ArrayLike<number>;
13
+ meshInstances: ArrayLike<number>;
14
+ boundingBox: THREE.Box3;
15
+ boxes: THREE.Box3[];
16
+ ignoreSceneMaterial: boolean;
17
+ private _material;
18
+ constructor(g3d: G3dMesh | G3d, mesh: THREE.InstancedMesh, instances: Array<number>);
19
+ get merged(): boolean;
20
+ /**
21
+ * Returns submesh for given index.
22
+ */
23
+ getSubMesh(index: number): InstancedSubmesh;
24
+ /**
25
+ * Returns all submeshes for given index.
26
+ */
27
+ getSubmeshes(): InstancedSubmesh[];
28
+ setMaterial(value: THREE.Material): void;
29
+ private computeBoundingBoxes;
30
+ private importBoundingBoxes;
31
+ computeBoundingBox(boxes: THREE.Box3[]): THREE.Box3;
32
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { G3d, G3dMesh, G3dMaterial, MeshSection } from 'vim-format';
5
+ import { InstancedMesh } from './instancedMesh';
6
+ export declare class InstancedMeshFactory {
7
+ materials: G3dMaterial;
8
+ constructor(materials: G3dMaterial);
9
+ createTransparent(mesh: G3dMesh, instances: number[]): InstancedMesh;
10
+ createOpaque(mesh: G3dMesh, instances: number[]): InstancedMesh;
11
+ createOpaqueFromVim(g3d: G3d, mesh: number, instances: number[]): InstancedMesh;
12
+ createTransparentFromVim(g3d: G3d, mesh: number, instances: number[]): InstancedMesh;
13
+ createFromVimx(mesh: G3dMesh, instances: number[], section: MeshSection, transparent: boolean): InstancedMesh;
14
+ createFromVim(g3d: G3d, mesh: number, instances: number[] | undefined, section: MeshSection, transparent: boolean): InstancedMesh;
15
+ private createGeometry;
16
+ private computeIndices;
17
+ private computeVertices;
18
+ private computeColors;
19
+ private setMatricesFromVimx;
20
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { Submesh } from '../mesh';
5
+ import { InstancedMesh } from './instancedMesh';
6
+ export declare class InstancedSubmesh {
7
+ mesh: InstancedMesh;
8
+ index: number;
9
+ constructor(mesh: InstancedMesh, index: number);
10
+ equals(other: Submesh): boolean;
11
+ /**
12
+ * Returns parent three mesh.
13
+ */
14
+ get three(): import("three").InstancedMesh<import("three").BufferGeometry, import("three").Material | import("three").Material[]>;
15
+ /**
16
+ * True if parent mesh is merged.
17
+ */
18
+ get merged(): boolean;
19
+ /**
20
+ * Returns vim instance associated with this submesh.
21
+ */
22
+ get instance(): number;
23
+ /**
24
+ * Returns bounding box for this submesh.
25
+ */
26
+ get boundingBox(): import("three").Box3;
27
+ /**
28
+ * Returns vim object for this submesh.
29
+ */
30
+ get object(): import("../object3D").Object3D;
31
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { Scene } from '../scene';
5
+ import { G3dMaterial, G3d } from 'vim-format';
6
+ import { G3dSubset } from './g3dSubset';
7
+ /**
8
+ * Mesh factory to load a standard vim using the progressive pipeline.
9
+ */
10
+ export declare class VimMeshFactory {
11
+ readonly g3d: G3d;
12
+ private _materials;
13
+ private _instancedFactory;
14
+ private _scene;
15
+ constructor(g3d: G3d, materials: G3dMaterial, scene: Scene);
16
+ /**
17
+ * Adds all instances from subset to the scene
18
+ */
19
+ add(subset: G3dSubset): void;
20
+ private addMergedMesh;
21
+ private createMergedMesh;
22
+ private addInstancedMeshes;
23
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { G3dMesh } from 'vim-format';
5
+ import { G3dSubset } from './g3dSubset';
6
+ /**
7
+ * Makes sure both instanced meshes and merged meshes are requested in the right order
8
+ * Also decouples downloads and processing.
9
+ */
10
+ export declare class LoadingSynchronizer {
11
+ done: boolean;
12
+ uniques: G3dSubset;
13
+ nonUniques: G3dSubset;
14
+ getMesh: (mesh: number) => Promise<G3dMesh>;
15
+ mergeAction: (mesh: G3dMesh, index: number) => void;
16
+ instanceAction: (mesh: G3dMesh, index: number) => void;
17
+ mergeQueue: (() => void)[];
18
+ instanceQueue: (() => void)[];
19
+ constructor(uniques: G3dSubset, nonUniques: G3dSubset, getMesh: (mesh: number) => Promise<G3dMesh>, mergeAction: (mesh: G3dMesh, index: number) => void, instanceAction: (mesh: G3dMesh, index: number) => void);
20
+ get isDone(): boolean;
21
+ abort(): void;
22
+ loadAll(): Promise<void>;
23
+ private consumeQueues;
24
+ private getSortedPromises;
25
+ merge(mesh: number, index: number): Promise<void>;
26
+ instance(mesh: number, index: number): Promise<void>;
27
+ }
@@ -0,0 +1,12 @@
1
+ import { VimPartialSettings } from '../vimSettings';
2
+ import { Vim } from '../vim';
3
+ import { VimSource } from '../../index';
4
+ import { BFast, IProgressLogs } from 'vim-format';
5
+ /**
6
+ * Asynchronously opens a vim object from a given source with the provided settings.
7
+ * @param {string | BFast} source - The source of the vim object, either a string or a BFast.
8
+ * @param {VimPartialSettings} settings - The settings to configure the behavior of the vim object.
9
+ * @param {(p: IProgressLogs) => void} [onProgress] - Optional callback function to track progress logs.
10
+ * @returns {Promise<void>} A Promise that resolves when the vim object is successfully opened.
11
+ */
12
+ export declare function open(source: VimSource | BFast, settings: VimPartialSettings, onProgress?: (p: IProgressLogs) => void): Promise<Vim>;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { VimMeshFactory } from './legacyMeshFactory';
5
+ import { LoadPartialSettings, LoadSettings } from './subsetRequest';
6
+ import { G3dSubset } from './g3dSubset';
7
+ import { ISignal, ISignalHandler } from 'ste-signals';
8
+ import { ISubscribable, SubscriptionChangeEventHandler } from 'ste-core';
9
+ import { Vimx } from './vimx';
10
+ import { Scene } from '../scene';
11
+ export interface SubsetBuilder {
12
+ /** Dispatched whenever a subset begins or finishes loading. */
13
+ onUpdate: ISignal;
14
+ /** Returns true when some subset is being loaded. */
15
+ isLoading: boolean;
16
+ /** Returns all instances as a subset */
17
+ getFullSet(): G3dSubset;
18
+ /** Loads given subset with given options */
19
+ loadSubset(subset: G3dSubset, settings?: LoadPartialSettings): any;
20
+ /** Stops and clears all loading processes */
21
+ clear(): any;
22
+ dispose(): any;
23
+ }
24
+ /**
25
+ * Loads and builds subsets from a Vim file.
26
+ */
27
+ export declare class VimSubsetBuilder implements SubsetBuilder {
28
+ factory: VimMeshFactory;
29
+ private _onUpdate;
30
+ get onUpdate(): ISignal;
31
+ get isLoading(): boolean;
32
+ constructor(factory: VimMeshFactory);
33
+ getFullSet(): G3dSubset;
34
+ loadSubset(subset: G3dSubset, settings?: LoadPartialSettings): void;
35
+ clear(): void;
36
+ dispose(): void;
37
+ }
38
+ /**
39
+ * Loads and builds subsets from a VimX file.
40
+ */
41
+ export declare class VimxSubsetBuilder {
42
+ private _localVimx;
43
+ private _scene;
44
+ private _set;
45
+ private _onUpdate;
46
+ get onUpdate(): ISignal;
47
+ get isLoading(): boolean;
48
+ constructor(localVimx: Vimx, scene: Scene);
49
+ getFullSet(): G3dSubset;
50
+ loadSubset(subset: G3dSubset, settings?: LoadPartialSettings): Promise<void>;
51
+ clear(): void;
52
+ dispose(): void;
53
+ }
54
+ export declare class DummySubsetBuilder implements SubsetBuilder {
55
+ get onUpdate(): AlwaysTrueSignal;
56
+ get isLoading(): boolean;
57
+ getFullSet(): G3dSubset;
58
+ loadSubset(subset: G3dSubset, settings?: Partial<LoadSettings>): void;
59
+ clear(): void;
60
+ dispose(): void;
61
+ }
62
+ declare class AlwaysTrueSignal implements ISignal {
63
+ count: number;
64
+ subscribe(fn: ISignalHandler): () => void;
65
+ sub(fn: ISignalHandler): () => void;
66
+ unsubscribe(fn: ISignalHandler): void;
67
+ unsub(fn: ISignalHandler): void;
68
+ one(fn: ISignalHandler): () => void;
69
+ has(fn: ISignalHandler): boolean;
70
+ clear(): void;
71
+ onSubscriptionChange: ISubscribable<SubscriptionChangeEventHandler>;
72
+ }
73
+ export {};
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { Vimx, Scene } from '../..';
5
+ import { G3dSubset } from './g3dSubset';
6
+ export type LoadSettings = {
7
+ /** Delay in ms between each rendering list update. @default: 400ms */
8
+ updateDelayMs: number;
9
+ /** If true, will wait for geometry to be ready before it is added to the renderer. @default: false */
10
+ delayRender: boolean;
11
+ };
12
+ export type LoadPartialSettings = Partial<LoadSettings>;
13
+ /**
14
+ * Manages geometry downloads and loads it into a scene for rendering.
15
+ */
16
+ export declare class SubsetRequest {
17
+ private _subset;
18
+ private _uniques;
19
+ private _nonUniques;
20
+ private _opaqueMesh;
21
+ private _transparentMesh;
22
+ private _synchronizer;
23
+ private _meshFactory;
24
+ private _meshes;
25
+ private _pushedMesh;
26
+ private _disposed;
27
+ private _started;
28
+ private _scene;
29
+ getBoundingBox(): import("three").Box3;
30
+ constructor(scene: Scene, localVimx: Vimx, subset: G3dSubset);
31
+ dispose(): void;
32
+ start(settings: LoadPartialSettings): Promise<void>;
33
+ private nextFrame;
34
+ private mergeMesh;
35
+ private instanceMesh;
36
+ private updateMeshes;
37
+ }
@@ -0,0 +1,44 @@
1
+ import { VimPartialSettings } from '../vimSettings';
2
+ import { Vim } from '../vim';
3
+ import { RequestResult } from '../../utils/requestResult';
4
+ import { VimSource } from '../../index';
5
+ import { IProgressLogs } from 'vim-format';
6
+ export type RequestSource = {
7
+ url?: string;
8
+ buffer?: ArrayBuffer;
9
+ headers?: Record<string, string>;
10
+ };
11
+ /**
12
+ * Initiates a request to load a VIM object from a given source.
13
+ * @param options a url where to find the vim file or a buffer of a vim file.
14
+ * @param settings the settings to configure how the vim will be loaded.
15
+ * @returns a request object that can be used to track progress and get the result.
16
+ */
17
+ export declare function request(options: RequestSource, settings?: VimPartialSettings): VimRequest;
18
+ /**
19
+ * A class that represents a request to load a VIM object from a given source.
20
+ */
21
+ export declare class VimRequest {
22
+ private _source;
23
+ private _settings;
24
+ private _bfast;
25
+ private _isDone;
26
+ private _vimResult?;
27
+ private _error?;
28
+ private _progress;
29
+ private _progressPromise;
30
+ private _completionPromise;
31
+ constructor(source: VimSource, settings: VimPartialSettings);
32
+ /**
33
+ * Initiates the asynchronous request and handles progress updates.
34
+ */
35
+ private startRequest;
36
+ private end;
37
+ getResult(): Promise<RequestResult<Vim>>;
38
+ /**
39
+ * Async generator that yields progress updates.
40
+ * @returns An AsyncGenerator yielding IProgressLogs.
41
+ */
42
+ getProgress(): AsyncGenerator<IProgressLogs, void, void>;
43
+ abort(): void;
44
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { G3dMaterial, RemoteVimx, VimHeader, G3dScene } from 'vim-format';
5
+ /**
6
+ * Interface to interact with a vimx
7
+ */
8
+ export declare class Vimx {
9
+ private readonly vimx;
10
+ readonly scene: G3dScene;
11
+ readonly materials: G3dMaterial;
12
+ readonly header: VimHeader;
13
+ static fromRemote(vimx: RemoteVimx, downloadMeshes: boolean): Promise<Vimx>;
14
+ private constructor();
15
+ getMesh(mesh: number): Promise<import("vim-format").G3dMesh>;
16
+ abort(): void;
17
+ }