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,92 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import * as THREE from 'three';
5
+ import { Mesh, Submesh } from './mesh';
6
+ import { Vim } from './vim';
7
+ import { InsertableMesh } from './progressive/insertableMesh';
8
+ import { InstancedMesh } from './progressive/instancedMesh';
9
+ /**
10
+ * Interface for a renderer object, providing methods to add and remove objects from a scene, update bounding boxes, and notify scene updates.
11
+ */
12
+ export interface IRenderer {
13
+ add(scene: Scene | THREE.Object3D): any;
14
+ remove(scene: Scene): any;
15
+ updateBox(box: THREE.Box3): any;
16
+ notifySceneUpdate(): any;
17
+ }
18
+ /**
19
+ * Represents a scene that contains multiple meshes.
20
+ * It tracks the global bounding box as meshes are added and maintains a mapping between g3d instance indices and meshes.
21
+ */
22
+ export declare class Scene {
23
+ private _renderer;
24
+ private _vim;
25
+ private _matrix;
26
+ insertables: InsertableMesh[];
27
+ meshes: (Mesh | InsertableMesh | InstancedMesh)[];
28
+ private _outlineCount;
29
+ private _boundingBox;
30
+ private _averageBoundingBox;
31
+ private _instanceToMeshes;
32
+ private _material;
33
+ constructor(matrix: THREE.Matrix4);
34
+ setDirty(): void;
35
+ hasOutline(): boolean;
36
+ addOutline(): void;
37
+ removeOutline(): void;
38
+ clearUpdateFlag(): void;
39
+ /**
40
+ * Returns the scene bounding box. Returns undefined if scene is empty.
41
+ */
42
+ getBoundingBox(target?: THREE.Box3): THREE.Box3;
43
+ /**
44
+ * Returns the bounding box of the average center of all meshes.
45
+ * Less precise but is more stable against outliers.
46
+ */
47
+ getAverageBoundingBox(): THREE.Box3;
48
+ updateBox(box: THREE.Box3): void;
49
+ getMemory(): number;
50
+ /**
51
+ * Returns the THREE.Mesh in which this instance is represented along with index
52
+ * For merged mesh, index refers to submesh index
53
+ * For instanced mesh, index refers to instance index.
54
+ */
55
+ getMeshFromInstance(instance: number): Submesh[];
56
+ getMeshesFromInstances(instances: number[] | undefined): Submesh[];
57
+ get renderer(): IRenderer;
58
+ set renderer(value: IRenderer);
59
+ get vim(): Vim;
60
+ /**
61
+ * Sets vim index for this scene and all its THREE.Meshes.
62
+ */
63
+ set vim(value: Vim);
64
+ addSubmesh(submesh: Submesh): void;
65
+ /**
66
+ * Add an instanced mesh to the Scene and recomputes fields as needed.
67
+ * @param mesh Is expected to have:
68
+ * userData.instances = number[] (indices of the g3d instances that went into creating the mesh)
69
+ * userData.boxes = THREE.Box3[] (bounding box of each instance)
70
+ */
71
+ addMesh(mesh: Mesh | InsertableMesh | InstancedMesh): this;
72
+ /**
73
+ * Adds the content of other Scene to this Scene and recomputes fields as needed.
74
+ */
75
+ merge(other: Scene): this;
76
+ /**
77
+ * Gets the current material override or undefined if none.
78
+ */
79
+ get material(): THREE.Material | undefined;
80
+ /**
81
+ * Sets and apply a material override to the scene, set to undefined to remove override.
82
+ */
83
+ set material(value: THREE.Material | undefined);
84
+ /**
85
+ * Unloads and disposes all meshes and leaves the scene ready to add new ones.
86
+ */
87
+ clear(): void;
88
+ /**
89
+ * Disposes of all resources.
90
+ */
91
+ dispose(): void;
92
+ }
@@ -0,0 +1,157 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import * as THREE from 'three';
5
+ import { VimDocument, G3d, VimHeader, FilterMode } from 'vim-format';
6
+ import { Scene } from './scene';
7
+ import { VimSettings } from './vimSettings';
8
+ import { Object3D } from './object3D';
9
+ import { ElementMapping, ElementMapping2, ElementNoMapping } from './elementMapping';
10
+ import { ISignal } from 'ste-signals';
11
+ import { G3dSubset } from './progressive/g3dSubset';
12
+ import { SubsetBuilder } from './progressive/subsetBuilder';
13
+ import { LoadPartialSettings } from './progressive/subsetRequest';
14
+ type VimFormat = 'vim' | 'vimx';
15
+ /**
16
+ * Represents a container for the built three.js meshes and the vim data from which they were constructed.
17
+ * Facilitates high-level scene manipulation by providing access to objects.
18
+ */
19
+ export declare class Vim {
20
+ /**
21
+ * Indicates whether the vim was opened from a vim or vimx file.
22
+ */
23
+ readonly format: VimFormat;
24
+ /**
25
+ * Indicates the url this vim came from if applicable.
26
+ */
27
+ readonly source: string | undefined;
28
+ /**
29
+ * The header for this vim.
30
+ */
31
+ readonly header: VimHeader | undefined;
32
+ /**
33
+ * The interface to access bim data related to this vim if available.
34
+ */
35
+ readonly bim: VimDocument | undefined;
36
+ /**
37
+ * The raw g3d geometry scene definition.
38
+ */
39
+ readonly g3d: G3d | undefined;
40
+ /**
41
+ * The settings used when this vim was opened.
42
+ */
43
+ readonly settings: VimSettings;
44
+ /**
45
+ * Mostly Internal - The scene in which the vim geometry is added.
46
+ */
47
+ readonly scene: Scene;
48
+ /**
49
+ * The mapping from Bim to Geometry for this vim.
50
+ */
51
+ readonly map: ElementMapping | ElementNoMapping | ElementMapping2;
52
+ private readonly _builder;
53
+ private readonly _loadedInstances;
54
+ private readonly _elementToObject;
55
+ /**
56
+ * Getter for accessing the event dispatched whenever a subset begins or finishes loading.
57
+ * @returns {ISignal} The event dispatcher for loading updates.
58
+ */
59
+ get onLoadingUpdate(): ISignal;
60
+ /**
61
+ * Indicates whether there are subsets currently being loaded.
62
+ * @returns {boolean} True if subsets are being loaded; otherwise, false.
63
+ */
64
+ get isLoading(): boolean;
65
+ /**
66
+ * Getter for accessing the signal dispatched when the object is disposed.
67
+ * @returns {ISignal} The signal for disposal events.
68
+ */
69
+ get onDispose(): ISignal;
70
+ private _onDispose;
71
+ /**
72
+ * Constructs a new instance of a Vim object with the provided parameters.
73
+ * @param {VimHeader | undefined} header - The Vim header, if available.
74
+ * @param {VimDocument} document - The Vim document.
75
+ * @param {G3d | undefined} g3d - The G3d object, if available.
76
+ * @param {Scene} scene - The scene containing the vim's geometry.
77
+ * @param {VimSettings} settings - The settings used to open this vim.
78
+ * @param {ElementMapping | ElementNoMapping | ElementMapping2} map - The element mapping.
79
+ * @param {SubsetBuilder} builder - The subset builder for constructing subsets of the Vim object.
80
+ * @param {string} source - The source of the Vim object.
81
+ * @param {VimFormat} format - The format of the Vim object.
82
+ * @param {boolean} isLegacy - Indicates whether the Vim object uses a legacy loading pipeline.
83
+ */
84
+ constructor(header: VimHeader | undefined, document: VimDocument, g3d: G3d | undefined, scene: Scene, settings: VimSettings, map: ElementMapping | ElementNoMapping | ElementMapping2, builder: SubsetBuilder, source: string, format: VimFormat);
85
+ /**
86
+ * Retrieves the matrix representation of the Vim object's position, rotation, and scale.
87
+ * @returns {THREE.Matrix4} The matrix representing the Vim object's transformation.
88
+ */
89
+ getMatrix(): THREE.Matrix4;
90
+ /**
91
+ * Retrieves the object associated with the specified instance number.
92
+ * @param {number} instance - The instance number of the object.
93
+ * @returns {THREE.Object3D | undefined} The object corresponding to the instance, or undefined if not found.
94
+ */
95
+ getObjectFromInstance(instance: number): Object3D;
96
+ /**
97
+ * Retrieves the objects associated with the specified element ID.
98
+ * @param {number} id - The element ID to retrieve objects for.
99
+ * @returns {THREE.Object3D[]} An array of objects corresponding to the element ID, or an empty array if none are found.
100
+ */
101
+ getObjectsFromElementId(id: number): any;
102
+ /**
103
+ * Retrieves the Vim object associated with the given Vim element index.
104
+ * @param {number} element - The index of the Vim element.
105
+ * @returns {Object3D | undefined} The Vim object corresponding to the element index, or undefined if not found.
106
+ */
107
+ getObjectFromElement(element: number): Object3D | undefined;
108
+ /**
109
+ * Retrieves an array containing all Vim objects strictly contained within the specified bounding box.
110
+ * @param {THREE.Box3} box - The bounding box to search within.
111
+ * @returns {Object3D[]} An array of Vim objects strictly contained within the bounding box.
112
+ */
113
+ getObjectsInBox(box: THREE.Box3): Object3D[];
114
+ /**
115
+ * Retrieves an array of all objects within the Vim.
116
+ * @returns {Object3D[]} An array containing all objects within the Vim.
117
+ */
118
+ getObjects(): Object3D[];
119
+ /**
120
+ * Retrieves an array containing all objects within the specified subset.
121
+ * @param {G3dSubset} subset - The subset to retrieve objects from.
122
+ * @returns {Object3D[]} An array of objects within the specified subset.
123
+ */
124
+ getObjectsInSubset(subset: G3dSubset): Object3D[];
125
+ /**
126
+ * Retrieves all instances as a subset.
127
+ * @returns {G3dSubset} A subset containing all instances.
128
+ */
129
+ getFullSet(): G3dSubset;
130
+ /**
131
+ * Asynchronously loads all geometry according to the provided settings.
132
+ * @param {LoadPartialSettings} [settings] - Optional settings for the loading process.
133
+ */
134
+ loadAll(settings?: LoadPartialSettings): Promise<void>;
135
+ /**
136
+ * Asynchronously loads geometry for the specified subset according to the provided settings.
137
+ * @param {G3dSubset} subset - The subset to load resources for.
138
+ * @param {LoadPartialSettings} [settings] - Optional settings for the loading process.
139
+ */
140
+ loadSubset(subset: G3dSubset, settings?: LoadPartialSettings): Promise<void>;
141
+ /**
142
+ * Asynchronously loads geometry based on a specified filter mode and criteria.
143
+ * @param {FilterMode} filterMode - The mode of filtering to apply.
144
+ * @param {number[]} filter - The filter criteria.
145
+ * @param {LoadPartialSettings} [settings] - Optional settings for the loading process.
146
+ */
147
+ loadFilter(filterMode: FilterMode, filter: number[], settings?: LoadPartialSettings): Promise<void>;
148
+ /**
149
+ * Removes the current geometry from the renderer.
150
+ */
151
+ clear(): void;
152
+ /**
153
+ * Cleans up and releases resources associated with the vim.
154
+ */
155
+ dispose(): void;
156
+ }
157
+ export {};
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @module vim-loader
3
+ */
4
+ import { Transparency } from './geometry';
5
+ import * as THREE from 'three';
6
+ export type FileType = 'vim' | 'vimx' | undefined;
7
+ /**
8
+ * Represents settings for configuring the behavior and rendering of a vim object.
9
+ */
10
+ export type VimSettings = {
11
+ /**
12
+ * The positional offset for the vim object.
13
+ */
14
+ position: THREE.Vector3;
15
+ /**
16
+ * The XYZ rotation applied to the vim object.
17
+ */
18
+ rotation: THREE.Vector3;
19
+ /**
20
+ * The scaling factor applied to the vim object.
21
+ */
22
+ scale: number;
23
+ /**
24
+ * The matrix representation of the vim object's position, rotation, and scale.
25
+ * Setting this will override individual position, rotation, and scale properties.
26
+ */
27
+ matrix: THREE.Matrix4;
28
+ /**
29
+ * Determines whether objects are drawn based on their transparency.
30
+ */
31
+ transparency: Transparency.Mode;
32
+ /**
33
+ * Set to true to enable verbose HTTP logging.
34
+ */
35
+ verboseHttp: boolean;
36
+ /**
37
+ * Specifies the file type (vim or vimx) if it cannot or should not be inferred from the file extension.
38
+ */
39
+ fileType: FileType;
40
+ /**
41
+ * Set to true to stream geometry to the scene. Only supported with vimx files.
42
+ */
43
+ progressive: boolean;
44
+ /**
45
+ * The time in milliseconds between each scene refresh during progressive loading.
46
+ */
47
+ progressiveInterval: number;
48
+ };
49
+ /**
50
+ * Default configuration settings for a vim object.
51
+ */
52
+ export declare const defaultConfig: VimSettings;
53
+ /**
54
+ * Represents a partial configuration of settings for a vim object.
55
+ */
56
+ export type VimPartialSettings = Partial<VimSettings>;
57
+ /**
58
+ * Wraps Vim options, converting values to related THREE.js types and providing default values.
59
+ * @param {VimPartialSettings} [options] - Optional partial settings for the Vim object.
60
+ * @returns {VimSettings} The complete settings for the Vim object, including defaults.
61
+ */
62
+ export declare function getFullSettings(options?: VimPartialSettings): VimSettings;
@@ -0,0 +1,255 @@
1
+ /**
2
+ * @module viw-webgl-viewer/camera
3
+ */
4
+ import * as THREE from 'three';
5
+ import { Viewport } from '../viewport';
6
+ import { ViewerSettings } from '../settings/viewerSettings';
7
+ import { RenderScene } from '../rendering/renderScene';
8
+ import { ISignal } from 'ste-signals';
9
+ import { PerspectiveWrapper } from './perspective';
10
+ import { OrthographicWrapper } from './orthographic';
11
+ import { CameraMovement } from './cameraMovement';
12
+ /**
13
+ * Interface representing a camera with various properties and methods for controlling its behavior.
14
+ */
15
+ export interface ICamera {
16
+ /**
17
+ * A signal that is dispatched when camera settings change.
18
+ */
19
+ onSettingsChanged: ISignal;
20
+ /**
21
+ * A signal that is dispatched when camera moves.
22
+ */
23
+ onMoved: ISignal;
24
+ /**
25
+ * True if the camera has moved this frame.
26
+ */
27
+ get hasMoved(): boolean;
28
+ /**
29
+ * Represents allowed movement along each axis using a Vector3 object.
30
+ * Each component of the Vector3 should be either 0 or 1 to enable/disable movement along the corresponding axis.
31
+ */
32
+ allowedMovement: THREE.Vector3;
33
+ /**
34
+ * Represents allowed rotation using a Vector2 object.
35
+ * Each component of the Vector2 should be either 0 or 1 to enable/disable rotation around the corresponding axis.
36
+ */
37
+ allowedRotation: THREE.Vector2;
38
+ /**
39
+ * The default forward direction that can be used to initialize the camera.
40
+ */
41
+ defaultForward: THREE.Vector3;
42
+ /**
43
+ * Interface for instantaneously moving the camera.
44
+ * @param {boolean} [force=false] - Set to true to ignore locked axis and rotation.
45
+ * @returns {CameraMovement} The camera movement api.
46
+ */
47
+ snap(force?: boolean): CameraMovement;
48
+ /**
49
+ * Interface for smoothly moving the camera over time.
50
+ * @param {number} [duration=1] - The duration of the camera movement animation.
51
+ * @param {boolean} [force=false] - Set to true to ignore locked axis and rotation.
52
+ * @returns {CameraMovement} The camera movement api.
53
+ */
54
+ lerp(duration: number, force?: boolean): CameraMovement;
55
+ /**
56
+ * Calculates the frustum size at a given point in the scene.
57
+ * @param {THREE.Vector3} point - The point in the scene to calculate the frustum size at.
58
+ * @returns {number} The frustum size at the specified point.
59
+ */
60
+ frustrumSizeAt(point: THREE.Vector3): THREE.Vector2;
61
+ /**
62
+ * The current THREE Camera
63
+ */
64
+ get three(): THREE.Camera;
65
+ /**
66
+ * The quaternion representing the orientation of the object.
67
+ */
68
+ get quaternion(): THREE.Quaternion;
69
+ /**
70
+ * The position of the camera.
71
+ */
72
+ get position(): THREE.Vector3;
73
+ /**
74
+ * The matrix representing the transformation of the camera.
75
+ */
76
+ get matrix(): THREE.Matrix4;
77
+ /**
78
+ * The forward direction of the camera.
79
+ */
80
+ get forward(): THREE.Vector3;
81
+ get isLerping(): boolean;
82
+ /**
83
+ * The camera speed factor.
84
+ */
85
+ speed: number;
86
+ /**
87
+ * The current or target velocity of the camera.
88
+ */
89
+ localVelocity: THREE.Vector3;
90
+ /**
91
+ * Immediately stops the camera movement.
92
+ */
93
+ stop(): void;
94
+ /**
95
+ * The target at which the camera is looking at and around which it rotates.
96
+ */
97
+ get target(): THREE.Vector3;
98
+ /**
99
+ * The distance from the camera to the target.
100
+ */
101
+ get orbitDistance(): number;
102
+ /**
103
+ * Saves current camera orientation to restore on next reset.
104
+ */
105
+ save(): void;
106
+ /**
107
+ * Represents whether the camera projection is orthographic.
108
+ */
109
+ orthographic: boolean;
110
+ }
111
+ /**
112
+ * Manages viewer camera movement and position
113
+ */
114
+ export declare class Camera implements ICamera {
115
+ camPerspective: PerspectiveWrapper;
116
+ camOrthographic: OrthographicWrapper;
117
+ private _viewport;
118
+ _scene: RenderScene;
119
+ private _lerp;
120
+ private _movement;
121
+ private _inputVelocity;
122
+ private _velocity;
123
+ private _speed;
124
+ private _orthographic;
125
+ private _target;
126
+ private _lastPosition;
127
+ private _lastQuaternion;
128
+ private _lastTarget;
129
+ private _tmp1;
130
+ private _tmp2;
131
+ _savedPosition: THREE.Vector3;
132
+ _savedTarget: THREE.Vector3;
133
+ /**
134
+ * A signal that is dispatched when camera settings change.
135
+ */
136
+ get onSettingsChanged(): ISignal;
137
+ private _onValueChanged;
138
+ /**
139
+ * True if the camera has moved this frame.
140
+ */
141
+ get hasMoved(): boolean;
142
+ private _hasMoved;
143
+ get isLerping(): boolean;
144
+ /**
145
+ * A signal that is dispatched when the camera is moved.
146
+ */
147
+ get onMoved(): ISignal;
148
+ private _onMoved;
149
+ /** Ignore movement permissions when true */
150
+ private _force;
151
+ /**
152
+ * Represents allowed movement along each axis using a Vector3 object.
153
+ * Each component of the Vector3 should be either 0 or 1 to enable/disable movement along the corresponding axis.
154
+ */
155
+ private _allowedMovement;
156
+ get allowedMovement(): THREE.Vector3;
157
+ set allowedMovement(axes: THREE.Vector3);
158
+ /**
159
+ * Represents allowed rotation using a Vector2 object.
160
+ * Each component of the Vector2 should be either 0 or 1 to enable/disable rotation around the corresponding axis.
161
+ */
162
+ get allowedRotation(): THREE.Vector2;
163
+ set allowedRotation(axes: THREE.Vector2);
164
+ private _allowedRotation;
165
+ /**
166
+ * The default forward direction that can be used to initialize the camera.
167
+ */
168
+ private _defaultForward;
169
+ get defaultForward(): THREE.Vector3;
170
+ set defaultForward(value: THREE.Vector3);
171
+ private _velocityBlendFactor;
172
+ private _moveSpeed;
173
+ constructor(scene: RenderScene, viewport: Viewport, settings: ViewerSettings);
174
+ /**
175
+ * Interface for instantaneously moving the camera.
176
+ * @param {boolean} [force=false] - Set to true to ignore locked axis and rotation.
177
+ * @returns {CameraMovement} The camera movement api.
178
+ */
179
+ snap(force?: boolean): CameraMovement;
180
+ /**
181
+ * Interface for smoothly moving the camera over time.
182
+ * @param {number} [duration=1] - The duration of the camera movement animation.
183
+ * @param {boolean} [force=false] - Set to true to ignore locked axis and rotation.
184
+ * @returns {CameraMovement} The camera movement api.
185
+ */
186
+ lerp(duration?: number, force?: boolean): CameraMovement;
187
+ /**
188
+ * Calculates the frustum size at a given point in the scene.
189
+ * @param {THREE.Vector3} point - The point in the scene to calculate the frustum size at.
190
+ * @returns {number} The frustum size at the specified point.
191
+ */
192
+ frustrumSizeAt(point: THREE.Vector3): THREE.Vector2;
193
+ /**
194
+ * The current THREE Camera
195
+ */
196
+ get three(): THREE.PerspectiveCamera | THREE.OrthographicCamera;
197
+ /**
198
+ * The quaternion representing the orientation of the object.
199
+ */
200
+ get quaternion(): THREE.Quaternion;
201
+ /**
202
+ * The position of the camera.
203
+ */
204
+ get position(): THREE.Vector3;
205
+ /**
206
+ * The matrix representing the transformation of the camera.
207
+ */
208
+ get matrix(): THREE.Matrix4;
209
+ /**
210
+ * The forward direction of the camera.
211
+ */
212
+ get forward(): THREE.Vector3;
213
+ /**
214
+ * The camera speed factor.
215
+ */
216
+ get speed(): number;
217
+ set speed(value: number);
218
+ /**
219
+ * The current or target velocity of the camera.
220
+ */
221
+ get localVelocity(): THREE.Vector3;
222
+ /**
223
+ * The current or target velocity of the camera.
224
+ */
225
+ set localVelocity(vector: THREE.Vector3);
226
+ /**
227
+ * Immediately stops the camera movement.
228
+ */
229
+ stop(): void;
230
+ /**
231
+ * The target at which the camera is looking at and around which it rotates.
232
+ */
233
+ get target(): THREE.Vector3;
234
+ applySettings(settings: ViewerSettings): void;
235
+ /**
236
+ * The distance from the camera to the target.
237
+ */
238
+ get orbitDistance(): number;
239
+ /**
240
+ * Saves current camera orientation to restore on next reset.
241
+ */
242
+ save(): void;
243
+ /**
244
+ * Represents whether the camera projection is orthographic.
245
+ */
246
+ get orthographic(): boolean;
247
+ set orthographic(value: boolean);
248
+ update(deltaTime: number): boolean;
249
+ private updateProjection;
250
+ private updateOrthographic;
251
+ private applyVelocity;
252
+ private getVelocityMultiplier;
253
+ private checkForMovement;
254
+ private applyVelocityOrthographic;
255
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * @module viw-webgl-viewer/camera
3
+ */
4
+ import { Camera } from './camera';
5
+ import { Object3D } from '../../vim-loader/object3D';
6
+ import { SelectableObject } from '../selection';
7
+ import * as THREE from 'three';
8
+ import { Vim } from '../../vim-loader/vim';
9
+ export declare abstract class CameraMovement {
10
+ protected _camera: Camera;
11
+ constructor(camera: Camera);
12
+ /**
13
+ * Moves the camera by the specified 3D vector.
14
+ * @param {THREE.Vector3} vector - The 3D vector representing the direction and distance of movement.
15
+ */
16
+ abstract move3(vector: THREE.Vector3): void;
17
+ /**
18
+ * Moves the camera in a specified 2D direction within a plane defined by the given axes.
19
+ * @param {THREE.Vector2} vector - The 2D vector representing the direction of movement.
20
+ * @param {'XY' | 'XZ'} axes - The axes defining the plane of movement ('XY' or 'XZ').
21
+ */
22
+ move2(vector: THREE.Vector2, axes: 'XY' | 'XZ'): void;
23
+ /**
24
+ * Moves the camera along a specified axis by a given amount.
25
+ * @param {number} amount - The amount to move the camera.
26
+ * @param {'X' | 'Y' | 'Z'} axis - The axis along which to move the camera ('X', 'Y', or 'Z').
27
+ */
28
+ move1(amount: number, axis: 'X' | 'Y' | 'Z'): void;
29
+ /**
30
+ * Rotates the camera by the specified angles.
31
+ * @param {THREE.Vector2} angle - The 2D vector representing the rotation angles around the X and Y axes.
32
+ */
33
+ abstract rotate(angle: THREE.Vector2): void;
34
+ /**
35
+ * Changes the distance between the camera and its target by a specified factor.
36
+ * @param {number} amount - The factor by which to change the distance (e.g., 0.5 for halving the distance, 2 for doubling the distance).
37
+ */
38
+ abstract zoom(amount: number): void;
39
+ /**
40
+ * Sets the distance between the camera and its target to the specified value.
41
+ * @param {number} dist - The new distance between the camera and its target.
42
+ */
43
+ abstract setDistance(dist: number): void;
44
+ /**
45
+ * Orbits the camera around its target by the given angle while maintaining the distance.
46
+ * @param {THREE.Vector2} vector - The 2D vector representing the orbit angles around the X and Y axes.
47
+ */
48
+ abstract orbit(vector: THREE.Vector2): void;
49
+ /**
50
+ * Orbits the camera around its target to align with the given direction.
51
+ * @param {THREE.Vector3} direction - The direction towards which the camera should be oriented.
52
+ */
53
+ orbitTowards(direction: THREE.Vector3): void;
54
+ /**
55
+ * Rotates the camera without moving so that it looks at the specified target.
56
+ * @param {Object3D | THREE.Vector3} target - The target object or position to look at.
57
+ */
58
+ abstract target(target: Object3D | THREE.Vector3): void;
59
+ /**
60
+ * Resets the camera to its last saved position and orientation.
61
+ */
62
+ abstract reset(): void;
63
+ /**
64
+ * Moves both the camera and its target to the given positions.
65
+ * @param {THREE.Vector3} position - The new position of the camera.
66
+ * @param {THREE.Vector3 | undefined} [target] - The new position of the target (optional).
67
+ */
68
+ abstract set(position: THREE.Vector3, target?: THREE.Vector3): any;
69
+ /**
70
+ * Sets the camera's orientation and position to focus on the specified target.
71
+ * @param {IObject | Vim | THREE.Sphere | THREE.Box3 | 'all' | undefined} target - The target object, or 'all' to frame all objects.
72
+ * @param {THREE.Vector3} [forward] - Optional forward direction after framing.
73
+ */
74
+ frame(target: SelectableObject | Vim | THREE.Sphere | THREE.Box3 | 'all' | undefined, forward?: THREE.Vector3): void;
75
+ protected frameSphere(sphere: THREE.Sphere, forward?: THREE.Vector3): void;
76
+ private getNormalizedDirection;
77
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @module viw-webgl-viewer/camera
3
+ */
4
+ import * as THREE from 'three';
5
+ import { Camera } from './camera';
6
+ import { Object3D } from '../../vim-loader/object3D';
7
+ import { CameraMovementSnap } from './cameraMovementSnap';
8
+ import { CameraMovement } from './cameraMovement';
9
+ export declare class CameraLerp extends CameraMovement {
10
+ _movement: CameraMovementSnap;
11
+ _clock: THREE.Clock;
12
+ onProgress: ((progress: number) => void) | undefined;
13
+ _duration: number;
14
+ constructor(camera: Camera, movement: CameraMovementSnap);
15
+ get isLerping(): boolean;
16
+ init(duration: number): void;
17
+ cancel(): void;
18
+ easeOutCubic(x: number): number;
19
+ update(): void;
20
+ move3(vector: THREE.Vector3): void;
21
+ rotate(angle: THREE.Vector2): void;
22
+ zoom(amount: number): void;
23
+ setDistance(dist: number): void;
24
+ orbit(angle: THREE.Vector2): void;
25
+ target(target: Object3D | THREE.Vector3): void;
26
+ reset(): void;
27
+ set(position: THREE.Vector3, target?: THREE.Vector3): void;
28
+ }