@x-viewer/core 0.9.0

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 (238) hide show
  1. package/README.md +2 -0
  2. package/dist/index.esm.js +11790 -0
  3. package/dist/types/Locale.d.ts +23 -0
  4. package/dist/types/components/dxf-layout-bar/DxfLayoutBar.d.ts +26 -0
  5. package/dist/types/components/dxf-layout-bar/index.d.ts +1 -0
  6. package/dist/types/components/tool-tip/Tooltip.d.ts +20 -0
  7. package/dist/types/components/tool-tip/index.d.ts +1 -0
  8. package/dist/types/core/Configs.d.ts +288 -0
  9. package/dist/types/core/Constants.d.ts +81 -0
  10. package/dist/types/core/Units.d.ts +16 -0
  11. package/dist/types/core/VersionManager.d.ts +14 -0
  12. package/dist/types/core/camera/CameraManager.d.ts +80 -0
  13. package/dist/types/core/camera/index.d.ts +1 -0
  14. package/dist/types/core/camera-controls/CameraControls.d.ts +744 -0
  15. package/dist/types/core/camera-controls/Constants.d.ts +2 -0
  16. package/dist/types/core/camera-controls/EventDispatcher.d.ts +41 -0
  17. package/dist/types/core/camera-controls/index.d.ts +3 -0
  18. package/dist/types/core/camera-controls/types.d.ts +112 -0
  19. package/dist/types/core/camera-controls/utils/extractClientCoordFromEvent.d.ts +3 -0
  20. package/dist/types/core/camera-controls/utils/math-utils.d.ts +14 -0
  21. package/dist/types/core/camera-controls/utils/notSupportedInOrthographicCamera.d.ts +2 -0
  22. package/dist/types/core/canvas/CanvasRender.d.ts +52 -0
  23. package/dist/types/core/canvas/Constants.d.ts +31 -0
  24. package/dist/types/core/canvas/Drawable.d.ts +98 -0
  25. package/dist/types/core/canvas/DrawableList.d.ts +40 -0
  26. package/dist/types/core/canvas/MarkerDrawable.d.ts +30 -0
  27. package/dist/types/core/canvas/PathDrawable.d.ts +39 -0
  28. package/dist/types/core/canvas/index.d.ts +6 -0
  29. package/dist/types/core/compare/BaseDxfCompareHelper.d.ts +104 -0
  30. package/dist/types/core/compare/CompareDrawable.d.ts +18 -0
  31. package/dist/types/core/compare/DxfCompareHelper.d.ts +69 -0
  32. package/dist/types/core/compare/DxfCompareMarkupManager.d.ts +11 -0
  33. package/dist/types/core/compare/index.d.ts +4 -0
  34. package/dist/types/core/components/Container.d.ts +38 -0
  35. package/dist/types/core/components/ProgressBar.d.ts +31 -0
  36. package/dist/types/core/components/Spinner.d.ts +16 -0
  37. package/dist/types/core/components/index.d.ts +3 -0
  38. package/dist/types/core/controls/CameraControlsEx.d.ts +37 -0
  39. package/dist/types/core/controls/Control.d.ts +17 -0
  40. package/dist/types/core/controls/OrbitControls.d.ts +13 -0
  41. package/dist/types/core/controls/PlanControls.d.ts +13 -0
  42. package/dist/types/core/controls/index.d.ts +4 -0
  43. package/dist/types/core/dxf/DxfCompare.d.ts +151 -0
  44. package/dist/types/core/dxf/DxfConstants.d.ts +33 -0
  45. package/dist/types/core/dxf/DxfLoader.d.ts +557 -0
  46. package/dist/types/core/dxf/DxfObject.d.ts +33 -0
  47. package/dist/types/core/dxf/DxfUtils.d.ts +45 -0
  48. package/dist/types/core/dxf/HatchPatternShaders.d.ts +12 -0
  49. package/dist/types/core/dxf/LinePatternShaders.d.ts +12 -0
  50. package/dist/types/core/dxf/bspline.d.ts +7 -0
  51. package/dist/types/core/dxf/dxfom-mtext.d.ts +46 -0
  52. package/dist/types/core/dxf/dxfom-text.d.ts +16 -0
  53. package/dist/types/core/dxf/index.d.ts +10 -0
  54. package/dist/types/core/dxf/round10.d.ts +1 -0
  55. package/dist/types/core/dxf-parser/AutoCadColorIndex.d.ts +8 -0
  56. package/dist/types/core/dxf-parser/DxfBaseReader.d.ts +12 -0
  57. package/dist/types/core/dxf-parser/DxfBinaryReader.d.ts +14 -0
  58. package/dist/types/core/dxf-parser/DxfParser.d.ts +324 -0
  59. package/dist/types/core/dxf-parser/DxfTextReader.d.ts +31 -0
  60. package/dist/types/core/dxf-parser/ParseHelpers.d.ts +45 -0
  61. package/dist/types/core/dxf-parser/entities/3dface.d.ts +13 -0
  62. package/dist/types/core/dxf-parser/entities/arc.d.ts +18 -0
  63. package/dist/types/core/dxf-parser/entities/attdef.d.ts +33 -0
  64. package/dist/types/core/dxf-parser/entities/attrib.d.ts +33 -0
  65. package/dist/types/core/dxf-parser/entities/circle.d.ts +15 -0
  66. package/dist/types/core/dxf-parser/entities/dimension.d.ts +24 -0
  67. package/dist/types/core/dxf-parser/entities/ellipse.d.ts +17 -0
  68. package/dist/types/core/dxf-parser/entities/geomtry.d.ts +42 -0
  69. package/dist/types/core/dxf-parser/entities/hatch.d.ts +110 -0
  70. package/dist/types/core/dxf-parser/entities/image.d.ts +39 -0
  71. package/dist/types/core/dxf-parser/entities/insert.d.ts +22 -0
  72. package/dist/types/core/dxf-parser/entities/leader.d.ts +23 -0
  73. package/dist/types/core/dxf-parser/entities/line.d.ts +12 -0
  74. package/dist/types/core/dxf-parser/entities/lwpolyline.d.ts +23 -0
  75. package/dist/types/core/dxf-parser/entities/mleader.d.ts +103 -0
  76. package/dist/types/core/dxf-parser/entities/mtext.d.ts +20 -0
  77. package/dist/types/core/dxf-parser/entities/ole2frame.d.ts +22 -0
  78. package/dist/types/core/dxf-parser/entities/point.d.ts +13 -0
  79. package/dist/types/core/dxf-parser/entities/polyline.d.ts +22 -0
  80. package/dist/types/core/dxf-parser/entities/ray.d.ts +12 -0
  81. package/dist/types/core/dxf-parser/entities/region.d.ts +12 -0
  82. package/dist/types/core/dxf-parser/entities/seqend.d.ts +10 -0
  83. package/dist/types/core/dxf-parser/entities/solid.d.ts +12 -0
  84. package/dist/types/core/dxf-parser/entities/spline.d.ts +25 -0
  85. package/dist/types/core/dxf-parser/entities/table.d.ts +44 -0
  86. package/dist/types/core/dxf-parser/entities/text.d.ts +20 -0
  87. package/dist/types/core/dxf-parser/entities/vertex.d.ts +22 -0
  88. package/dist/types/core/dxf-parser/entities/viewport.d.ts +56 -0
  89. package/dist/types/core/dxf-parser/entities/xline.d.ts +12 -0
  90. package/dist/types/core/dxf-parser/index.d.ts +27 -0
  91. package/dist/types/core/dxf-parser/objects/common.d.ts +26 -0
  92. package/dist/types/core/dxf-parser/objects/dictionary.d.ts +23 -0
  93. package/dist/types/core/dxf-parser/objects/imagedef.d.ts +24 -0
  94. package/dist/types/core/dxf-parser/objects/layout.d.ts +29 -0
  95. package/dist/types/core/dxf-parser/objects/sortentstable.d.ts +12 -0
  96. package/dist/types/core/dxf-parser/objects/spatialfilter.d.ts +22 -0
  97. package/dist/types/core/dxf-parser/objects/xrecord.d.ts +11 -0
  98. package/dist/types/core/effect/EffectManager.d.ts +43 -0
  99. package/dist/types/core/effect/index.d.ts +1 -0
  100. package/dist/types/core/font/BaseFont.d.ts +41 -0
  101. package/dist/types/core/font/FontManager.d.ts +52 -0
  102. package/dist/types/core/font/MeshFont.d.ts +14 -0
  103. package/dist/types/core/font/ShxFont.d.ts +49 -0
  104. package/dist/types/core/font/index.d.ts +1 -0
  105. package/dist/types/core/font/shx/ExtraLettersTemplate.d.ts +4 -0
  106. package/dist/types/core/font/shx/Shx.constants.d.ts +20 -0
  107. package/dist/types/core/font/shx/ShxParser.d.ts +18 -0
  108. package/dist/types/core/font/shx/TextShape.d.ts +24 -0
  109. package/dist/types/core/font/shx/gbk/index.d.ts +4 -0
  110. package/dist/types/core/font/shx/index.d.ts +1 -0
  111. package/dist/types/core/font/shx/util/BitConverter.d.ts +18 -0
  112. package/dist/types/core/geometry-offset/Edge.d.ts +27 -0
  113. package/dist/types/core/geometry-offset/Offset.d.ts +46 -0
  114. package/dist/types/core/geometry-offset/index.d.ts +1 -0
  115. package/dist/types/core/helpers/BinaryReader.d.ts +23 -0
  116. package/dist/types/core/helpers/BoxSelectHelper.d.ts +44 -0
  117. package/dist/types/core/helpers/InstantiateHelper.d.ts +26 -0
  118. package/dist/types/core/helpers/LoadingHelper.d.ts +65 -0
  119. package/dist/types/core/helpers/MeshBvhHelper.d.ts +15 -0
  120. package/dist/types/core/helpers/MobileTouchHelperDrawable.d.ts +26 -0
  121. package/dist/types/core/helpers/OSnapHelper.d.ts +159 -0
  122. package/dist/types/core/helpers/ObjectPixelSizeHelper.d.ts +13 -0
  123. package/dist/types/core/helpers/PickMarkupHelper.d.ts +29 -0
  124. package/dist/types/core/helpers/RafHelper.d.ts +18 -0
  125. package/dist/types/core/helpers/ZoomToRectHelper.d.ts +20 -0
  126. package/dist/types/core/helpers/index.d.ts +11 -0
  127. package/dist/types/core/index.d.ts +24 -0
  128. package/dist/types/core/indexeddb/BaseTable.d.ts +36 -0
  129. package/dist/types/core/indexeddb/DxfDataTable.d.ts +22 -0
  130. package/dist/types/core/indexeddb/FontDataTable.d.ts +32 -0
  131. package/dist/types/core/indexeddb/IndexedDbManager.d.ts +49 -0
  132. package/dist/types/core/indexeddb/index.d.ts +4 -0
  133. package/dist/types/core/input-manager/InputManager.d.ts +147 -0
  134. package/dist/types/core/input-manager/index.d.ts +1 -0
  135. package/dist/types/core/interactions/Interaction.d.ts +10 -0
  136. package/dist/types/core/interactions/Viewer2dInteraction.d.ts +17 -0
  137. package/dist/types/core/interactions/Viewer3dInteraction.d.ts +26 -0
  138. package/dist/types/core/interactions/index.d.ts +1 -0
  139. package/dist/types/core/materials/BimTilesHighlightMaterial.d.ts +21 -0
  140. package/dist/types/core/materials/BimTilesMaterial.d.ts +26 -0
  141. package/dist/types/core/materials/BimTilesPickMaterial.d.ts +9 -0
  142. package/dist/types/core/materials/BimTilesTransparentMaterial.d.ts +20 -0
  143. package/dist/types/core/materials/StandardMaterialEx.d.ts +16 -0
  144. package/dist/types/core/materials/constants.d.ts +0 -0
  145. package/dist/types/core/materials/index.d.ts +5 -0
  146. package/dist/types/core/model/Constants.d.ts +58 -0
  147. package/dist/types/core/model/Model.d.ts +18 -0
  148. package/dist/types/core/model/Model2d.d.ts +142 -0
  149. package/dist/types/core/model/Model3d.d.ts +137 -0
  150. package/dist/types/core/model/bimtiles/BatchedMeshesParser.d.ts +26 -0
  151. package/dist/types/core/model/bimtiles/BimTilesConfigParser.d.ts +43 -0
  152. package/dist/types/core/model/bimtiles/BimTilesData.d.ts +280 -0
  153. package/dist/types/core/model/bimtiles/BimTilesMaterialManager.d.ts +139 -0
  154. package/dist/types/core/model/bimtiles/BimTilesModel.d.ts +67 -0
  155. package/dist/types/core/model/bimtiles/BimTilesPropertyParser.d.ts +42 -0
  156. package/dist/types/core/model/bimtiles/BimTilesRenderer.d.ts +49 -0
  157. package/dist/types/core/model/bimtiles/InstancedMeshesParser.d.ts +37 -0
  158. package/dist/types/core/model/bimtiles/TileParser.d.ts +11 -0
  159. package/dist/types/core/model/bimtiles/Utils.d.ts +29 -0
  160. package/dist/types/core/model/index.d.ts +6 -0
  161. package/dist/types/core/patches/Constants.d.ts +6 -0
  162. package/dist/types/core/patches/Line.d.ts +2 -0
  163. package/dist/types/core/patches/Mesh.d.ts +2 -0
  164. package/dist/types/core/patches/Points.d.ts +2 -0
  165. package/dist/types/core/patches/index.d.ts +4 -0
  166. package/dist/types/core/patches/shaders/ShaderChunk.d.ts +2 -0
  167. package/dist/types/core/patches/shaders/shaderChunk/common_ex.glsl.d.ts +2 -0
  168. package/dist/types/core/patches/shaders/shaderChunk/id_pars_vertex.glsl.d.ts +2 -0
  169. package/dist/types/core/patches/shaders/shaderChunk/id_vertex.glsl.d.ts +2 -0
  170. package/dist/types/core/patches/shaders/shaderChunk/outine_bc_vertex.glsl.d.ts +2 -0
  171. package/dist/types/core/patches/shaders/shaderChunk/outline_bc_fragment.glsl.d.ts +2 -0
  172. package/dist/types/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts +2 -0
  173. package/dist/types/core/patches/shaders/shaderChunk/outline_bc_pars_vertex.glsl.d.ts +2 -0
  174. package/dist/types/core/patches/shaders/shaderChunk/state_fragment.glsl.d.ts +2 -0
  175. package/dist/types/core/patches/shaders/shaderChunk/state_highlight_fragment.glsl.d.ts +2 -0
  176. package/dist/types/core/patches/shaders/shaderChunk/state_pars_fragment.glsl.d.ts +2 -0
  177. package/dist/types/core/patches/shaders/shaderChunk/state_transparent_fragment.glsl.d.ts +2 -0
  178. package/dist/types/core/patches/shaders/shaderLib/pick_ex.glsl.d.ts +2 -0
  179. package/dist/types/core/patches/shaders/shaderLib/standard_ex.glsl.d.ts +2 -0
  180. package/dist/types/core/pick/PickManager.d.ts +52 -0
  181. package/dist/types/core/pick/index.d.ts +1 -0
  182. package/dist/types/core/scene/SceneManager.d.ts +48 -0
  183. package/dist/types/core/scene/index.d.ts +1 -0
  184. package/dist/types/core/shp-js/BitView.d.ts +12 -0
  185. package/dist/types/core/shp-js/SHPLoader.d.ts +12 -0
  186. package/dist/types/core/shp-js/Shp.d.ts +10 -0
  187. package/dist/types/core/shp-js/ShpThree.d.ts +23 -0
  188. package/dist/types/core/shp-js/index.d.ts +4 -0
  189. package/dist/types/core/text-texture/TextTexture.d.ts +45 -0
  190. package/dist/types/core/text-texture/index.d.ts +1 -0
  191. package/dist/types/core/undo/Command.d.ts +6 -0
  192. package/dist/types/core/undo/UndoManager.d.ts +24 -0
  193. package/dist/types/core/undo/index.d.ts +2 -0
  194. package/dist/types/core/utils/CSS2DObjectUtils.d.ts +14 -0
  195. package/dist/types/core/utils/CancelablePromise.d.ts +6 -0
  196. package/dist/types/core/utils/ColorUtils.d.ts +25 -0
  197. package/dist/types/core/utils/CommonUtils.d.ts +141 -0
  198. package/dist/types/core/utils/CoordinateUtils.d.ts +81 -0
  199. package/dist/types/core/utils/DecimalPrecisionUtils.d.ts +10 -0
  200. package/dist/types/core/utils/DeviceUtils.d.ts +15 -0
  201. package/dist/types/core/utils/EdgeUtils.d.ts +14 -0
  202. package/dist/types/core/utils/Event.d.ts +33 -0
  203. package/dist/types/core/utils/ExportUtils.d.ts +61 -0
  204. package/dist/types/core/utils/FpsUtils.d.ts +13 -0
  205. package/dist/types/core/utils/GeometryUtils.d.ts +78 -0
  206. package/dist/types/core/utils/LodashUtils.d.ts +208 -0
  207. package/dist/types/core/utils/LogUtils.d.ts +29 -0
  208. package/dist/types/core/utils/MaterialUtils.d.ts +40 -0
  209. package/dist/types/core/utils/MathUtils.d.ts +41 -0
  210. package/dist/types/core/utils/MergeUtils.d.ts +126 -0
  211. package/dist/types/core/utils/ObjectUtils.d.ts +216 -0
  212. package/dist/types/core/utils/PolygonUtils.d.ts +9 -0
  213. package/dist/types/core/utils/SVGObjectUtils.d.ts +22 -0
  214. package/dist/types/core/utils/SceneUtils.d.ts +26 -0
  215. package/dist/types/core/utils/SectionUtils.d.ts +11 -0
  216. package/dist/types/core/utils/SimplifyUtils.d.ts +15 -0
  217. package/dist/types/core/utils/TextureUtils.d.ts +16 -0
  218. package/dist/types/core/utils/UVUtils.d.ts +21 -0
  219. package/dist/types/core/utils/UnitConversionUtils.d.ts +31 -0
  220. package/dist/types/core/utils/index.d.ts +26 -0
  221. package/dist/types/core/viewers/BaseViewer.d.ts +253 -0
  222. package/dist/types/core/viewers/BimTilesViewer.d.ts +130 -0
  223. package/dist/types/core/viewers/Constants.d.ts +9 -0
  224. package/dist/types/core/viewers/Plugin.d.ts +30 -0
  225. package/dist/types/core/viewers/Viewer2d.d.ts +413 -0
  226. package/dist/types/core/viewers/Viewer3d.d.ts +136 -0
  227. package/dist/types/core/viewers/Viewer3dLite.d.ts +144 -0
  228. package/dist/types/core/viewers/ViewerEvent.d.ts +108 -0
  229. package/dist/types/core/viewers/index.d.ts +8 -0
  230. package/dist/types/core/webcam/WebCam.d.ts +28 -0
  231. package/dist/types/core/webcam/index.d.ts +1 -0
  232. package/dist/types/core/workers/CreateMeshBvh.worker.d.ts +1 -0
  233. package/dist/types/core/workers/GenerateMeshBvhWorker.d.ts +17 -0
  234. package/dist/types/core/workers/index.d.ts +1 -0
  235. package/dist/types/export.doc.d.ts +9 -0
  236. package/dist/types/index.d.ts +23 -0
  237. package/dist/types/version.d.ts +2 -0
  238. package/package.json +88 -0
@@ -0,0 +1,126 @@
1
+ import * as THREE from "three";
2
+ import { DxfObject } from "../dxf/DxfObject";
3
+ /**
4
+ * Used for merged mesh
5
+ * @internal
6
+ */
7
+ export interface Batch {
8
+ batchId: number;
9
+ name?: string;
10
+ id?: string;
11
+ positionStart: number;
12
+ positionCount: number;
13
+ indexStart: number;
14
+ indexCount: number;
15
+ boundingSphere?: THREE.Sphere;
16
+ userData?: object;
17
+ parentUserData?: object;
18
+ }
19
+ /**
20
+ * MergeHelper class is used to merge child objects for a given object
21
+ * @internal
22
+ */
23
+ export declare class MergeUtils {
24
+ static MergeInfo: {
25
+ removedObjects: number;
26
+ mergedMeshes: number;
27
+ mergedLines: number;
28
+ mergedPoints: number;
29
+ mergedUnknownTypeObjects: number;
30
+ elapsedTime: number;
31
+ };
32
+ static resetMergeInfo(): void;
33
+ /**
34
+ * Merges child objects for given object.
35
+ * it tries to merge objects in the same level and with the same parent;
36
+ * @param saveBatchInfo caller can set saveBatchInfo to true, so that s/he can
37
+ * get the object's original data before merged.
38
+ * While this takes some extra space, so, we'd like to add a flag here.
39
+ */
40
+ static merge(object: THREE.Object3D | DxfObject, saveBatchInfo?: boolean): void;
41
+ /**
42
+ * Merges child objects of given object.
43
+ * If objects' material are the same, they can be merged.
44
+ */
45
+ private static mergeInner;
46
+ /**
47
+ * @param object parent object or THREE.Object3D[]
48
+ * @param i index of for object.children[]
49
+ * @param k index of for object.children[]
50
+ * @param dict to store merge-able object
51
+ * @param nonMergeIndexes used in order to improve performance
52
+ */
53
+ static tryHandleMergeableObjects(object: THREE.Object3D | THREE.Object3D[] | DxfObject | DxfObject[], i: number, k: number, dict: {
54
+ [firstIndex: number]: {
55
+ indexes: number[];
56
+ };
57
+ }, nonMergeIndexes: number[]): boolean;
58
+ /**
59
+ * TODO: Filters XC etc.
60
+ * there are cases where entities with xc and without xc are merged together
61
+ */
62
+ static isFilteredByOtherFactors(object: THREE.Object3D | DxfObject, levelObject: THREE.Object3D | DxfObject | undefined): boolean;
63
+ /**
64
+ * Merges all objects of given object, just leaf children.
65
+ * If objects' material are the same, they can be merged.
66
+ * Better to call mergeInner first then deepMerge for a better performance.
67
+ * return \{ "added": THREE.Object3D[], "removed": THREE.Object3D[] \}
68
+ */
69
+ static deepMerge(objects: THREE.Object3D[] | DxfObject[], levelObject?: THREE.Object3D | DxfObject | undefined, bRemovedAndAddedAfterMerge?: boolean, bRemoveEmptyObjectsAfterMerge?: boolean, saveBatchInfo?: boolean): {
70
+ added: THREE.Object3D[] | DxfObject[];
71
+ removed: THREE.Object3D[] | DxfObject[];
72
+ };
73
+ /**
74
+ * since we'll move geometry to another merged mesh under a group, below is the structure:
75
+ - root object
76
+ - merged objects group
77
+ - merged object 1
78
+ * need to consider a geomery's matrix for each level of ancestor
79
+ */
80
+ static applyMatrix(copyGeometry: THREE.BufferGeometry, object: THREE.Object3D | DxfObject, levelObject?: THREE.Object3D | DxfObject): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>;
81
+ /**
82
+ * Merges geometries for lines
83
+ */
84
+ static mergeLineGeometries(geometries: THREE.BufferGeometry[], saveBatchInfo: boolean, isDashedMaterial: boolean, batches?: Batch[]): THREE.BufferGeometry | undefined;
85
+ private static mergeBufferGeometriesWithLinesToLineSegments;
86
+ private static mergeBufferAttributesWithLinesToLineSegments;
87
+ /**
88
+ * Removes a number from array
89
+ */
90
+ private static removeFromArray;
91
+ /**
92
+ * Removes object from objects
93
+ */
94
+ static removeObjectFromArray(arr: THREE.Object3D[], toBeDeleted: THREE.Object3D): void;
95
+ /**
96
+ * Checks if two geometries are mergable.
97
+ * It requires they have the same type and the same attributes.
98
+ */
99
+ static areGeometriesMergeable(g1: THREE.BufferGeometry, g2: THREE.BufferGeometry): boolean;
100
+ /**
101
+ * Checks if two objects are mergable.
102
+ * It requires
103
+ * - They are with the same masks.
104
+ * - Their userData.layerName must be the same if there is. This is useful for Dxf.
105
+ * - They have the same type or the same draw type( Mesh or Line or Point).
106
+ */
107
+ static areObjectsMergeable(o1: THREE.Object3D, o2: THREE.Object3D): boolean;
108
+ /**
109
+ * Checks if it is a merged object
110
+ */
111
+ static isMergedMesh(mesh: THREE.Mesh): boolean;
112
+ static isFaceIndexInBatch(geometry: THREE.BufferGeometry, batch: Batch, faceIndex: number): boolean;
113
+ static getBatchByFaceIndex(mesh: THREE.Mesh, faceIndex: number): Batch | undefined;
114
+ static getBatchByLineIndex(line: THREE.Line, index: number): Batch | undefined;
115
+ /**
116
+ * Gets batchId by faceIndex for a merged mesh
117
+ */
118
+ static getBatchIdByFaceIndex(mesh: THREE.Mesh, faceIndex: number): number;
119
+ static getBatchByBatchId(mesh: THREE.Mesh, batchId: number): Batch | undefined;
120
+ /**
121
+ * Clones corresponding geometry for given batch.
122
+ * To do this, we'll clone the geometry so the matrix, material, normal, uv, etc.
123
+ * will be correct, and we'll remove extra index and position.
124
+ */
125
+ static cloneGeometryForBatch(mesh: THREE.Mesh, batch: Batch): THREE.BufferGeometry | undefined;
126
+ }
@@ -0,0 +1,216 @@
1
+ import * as THREE from "three";
2
+ import { DxfObject } from "../dxf/DxfObject";
3
+ /**
4
+ * @internal
5
+ */
6
+ export interface MaterialInfo {
7
+ uuid: string;
8
+ material?: THREE.Material;
9
+ clonedMaterial?: THREE.Material;
10
+ opacity: number;
11
+ transparent: boolean;
12
+ side: THREE.Side;
13
+ }
14
+ /**
15
+ * Util class for Threejs Object
16
+ * @internal
17
+ */
18
+ export declare class ObjectUtils {
19
+ /**
20
+ * Clears any styles, including transparency, wireframe mode, filter by floor, etc.
21
+ * @param object
22
+ */
23
+ static resetObjectStyle(object: THREE.Object3D): void;
24
+ /**
25
+ * Clears any styles, including transparency, wireframe mode, filter by floor, etc.
26
+ */
27
+ static resetObjectStyleById(scene: THREE.Scene, id: number): void;
28
+ /**
29
+ * Sets an object's opacity
30
+ * @returns returns MaterialInfo list in case caller want to revert the opacity
31
+ */
32
+ static setObjectOpacity(object: THREE.Object3D, opacity?: number, includeObjectIds?: number[], excludeObjectIds?: number[]): MaterialInfo[];
33
+ /**
34
+ * Reverts an object's opacity
35
+ * @param object the root object
36
+ */
37
+ static revertObjectOpacity(object: THREE.Object3D, materialInfoList: MaterialInfo[], includeObjectIds?: number[], excludeObjectIds?: number[]): void;
38
+ /**
39
+ * Sets an object's opacity
40
+ */
41
+ static setObjectOpacityById(scene: THREE.Scene, id: number, opacity?: number, includeObjectIds?: number[], excludeObjectIds?: number[]): MaterialInfo[];
42
+ /**
43
+ * Reverts an object's opacity
44
+ */
45
+ static revertObjectOpacityById(scene: THREE.Scene, id: number, materialInfoList: MaterialInfo[], includeObjectIds?: number[], excludeObjectIds?: number[]): void;
46
+ /**
47
+ * Applies material to an object, including its children
48
+ * The originalMaterial will be saved to userData in case user want to revert it
49
+ */
50
+ static applyMaterialToObject(object: THREE.Object3D, material: THREE.Material | THREE.Material[], includeObjectIds?: number[], excludeObjectIds?: number[]): void;
51
+ /**
52
+ * Revert applied material to an object, including its children
53
+ */
54
+ static revertAppliedMaterialToObject(object: THREE.Object3D, includeObjectIds?: number[], excludeObjectIds?: number[]): void;
55
+ /**
56
+ * Sets an object's opacity
57
+ */
58
+ static applyMaterialToObjectById(scene: THREE.Scene, id: number, material: THREE.Material | THREE.Material[], includeObjectIds?: number[], excludeObjectIds?: number[]): void;
59
+ /**
60
+ * Reverts an object's opacity
61
+ */
62
+ static revertAppliedMaterialToObjectById(scene: THREE.Scene, id: number, includeObjectIds?: number[], excludeObjectIds?: number[]): void;
63
+ /**
64
+ * Applies a default opacity material to an object, including its children
65
+ */
66
+ static applyOpacityMaterialToObject(object: THREE.Object3D, includeObjectIds?: number[], excludeObjectIds?: number[]): void;
67
+ /**
68
+ * Sets double-sided material to an object, including its children
69
+ * The originalSide will be saved to userData in case user want to revert it
70
+ */
71
+ static setDoubleSidedMaterialToObject(object: THREE.Object3D): void;
72
+ /**
73
+ * Revert double-sided material to an object, including its children
74
+ */
75
+ static revertDoubleSidedMaterialToObject(object: THREE.Object3D): void;
76
+ /**
77
+ * Sets an object to be wireframe mode.
78
+ * In order to revert wireframe mode, we'll store original material in userData: \{
79
+ * materialForWireframe: THREE.Material
80
+ * \}
81
+ * It seems wireframe mode have performance degradation, look at here for more info:
82
+ * https://stackoverflow.com/questions/45917611/shader-wireframe-of-an-object
83
+ */
84
+ static setWireframeMode(object: THREE.Object3D): void;
85
+ /**
86
+ * Sets an object to be wireframe mode.
87
+ */
88
+ static setWireframeModeById(scene: THREE.Scene, id: number): void;
89
+ /**
90
+ * Reverts an object to be non-wireframe mode.
91
+ */
92
+ static revertWireframeMode(object: THREE.Object3D): void;
93
+ /**
94
+ * Reverts an object to be non-wireframe mode.
95
+ */
96
+ static revertWireframeModeById(scene: THREE.Scene, id: number): void;
97
+ /**
98
+ * Finds objects by name, id, userData, etc.
99
+ * @param scene
100
+ * @param targetIds target object ids to find from
101
+ * @param searchText search text
102
+ * @param findFirst only find the first
103
+ */
104
+ private static findInner;
105
+ /**
106
+ * Finds objects by given string
107
+ */
108
+ static find(scene: THREE.Scene, searchText: string, targetIds?: number[], findFirst?: boolean): THREE.Object3D[];
109
+ /**
110
+ * Finds the first object by given string
111
+ */
112
+ static findFirst(scene: THREE.Scene, searchText: string, targetIds?: number[], findFirst?: boolean): THREE.Object3D | undefined;
113
+ /**
114
+ * Checks if given string contains floor
115
+ * @param str string to match, e.g. '5F(xxx)'
116
+ */
117
+ private static getFloorsFromString;
118
+ /**
119
+ * Matches if a string contains floor string
120
+ * @param str string to match, e.g. '5F(xxx)'
121
+ * @param floor '5F', etc.
122
+ */
123
+ private static matchFloor;
124
+ /**
125
+ * Matches if a string contains one of floor string in floors
126
+ * @param str string to match, e.g. '5F(xxx)'
127
+ * @param floor '5F', etc.
128
+ */
129
+ private static matchFloors;
130
+ /**
131
+ * Distincts/find floors from models, by checking children object.name
132
+ */
133
+ static distinctFloors(scene: THREE.Scene, modelId: number[]): string[];
134
+ /**
135
+ * Sets object's visible to true if its name, etc. match one of given floor.
136
+ * This method won't affect other objects that don't match.
137
+ */
138
+ static traverseObjectByFloors(scene: THREE.Scene, objectId: number, floors: number[], matchCallback?: (object: THREE.Object3D) => void, unmatchCallback?: (object: THREE.Object3D) => void): never[] | undefined;
139
+ /**
140
+ * Sets object belong to given floors to be visible
141
+ * @param objectId root or parent object id
142
+ * @param makeUnmatchedInvisible if it should make unmatched object invisible
143
+ */
144
+ static setVisibleForFloors(scene: THREE.Scene, objectId: number, floors: number[], makeUnmatchedInvisible?: boolean): void;
145
+ static revertVisibleForFloors(object: THREE.Object3D): void;
146
+ static revertVisibleForFloorsById(scene: THREE.Scene, id: number): void;
147
+ private static getObjectById;
148
+ /**
149
+ * Outline default material
150
+ */
151
+ private static OUTLINE_MATERIAL;
152
+ /**
153
+ * Creates outlines for given object and children
154
+ */
155
+ static createOutlines(object: THREE.Object3D, options?: {
156
+ onlyVisible: boolean;
157
+ meshOnly: boolean;
158
+ }, onProgress?: (event: ProgressEvent) => void): Promise<THREE.LineSegments[]>;
159
+ /**
160
+ * Recursively removes outlines for given object and children
161
+ */
162
+ static removeOutlines(object: THREE.Object3D): void;
163
+ /**
164
+ * Checks if an object has outline already
165
+ * @param checkChildren If it checks children recursively.
166
+ */
167
+ static hasOutline(object: THREE.Object3D, checkChildren?: boolean): boolean;
168
+ /**
169
+ * Sets outline visiblility for given object and children
170
+ */
171
+ static setOutlinesVisibility(object: THREE.Object3D, visible: boolean): void;
172
+ /**
173
+ * Creates outline for given geometry
174
+ */
175
+ static createOutline(geometry: THREE.BufferGeometry, material?: THREE.LineBasicMaterial, matrix?: THREE.Matrix4): THREE.LineSegments;
176
+ /**
177
+ * Clones object
178
+ * @param object target object to be cloned
179
+ * @param cloneMaterial if it needs to clone material or not
180
+ * @returns cloned object
181
+ */
182
+ static cloneObject(object: THREE.Object3D, cloneMaterial?: boolean): THREE.Object3D;
183
+ private static BOX_FACE_MATERIAL;
184
+ /**
185
+ * Creates box mesh
186
+ */
187
+ static createBox(sizeX: number, sizeY: number, sizeZ: number, faceMaterial?: THREE.Material, withBottom?: boolean): THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material, THREE.Object3DEventMap>;
188
+ /**
189
+ * TODO: Relative to center
190
+ */
191
+ static rebaseObjectOnRTC(object: THREE.Object3D): THREE.Object3D;
192
+ static isEmptyObject(object: THREE.Object3D | DxfObject): boolean;
193
+ static removeEmptyObjects(object: THREE.Object3D | DxfObject): boolean;
194
+ /**
195
+ * From bottom to top, removes child objects first,
196
+ * and then removes empty parent objects
197
+ */
198
+ static removeEmptyObjectsFromRemovingObjects(removingObjects: THREE.Object3D[], levelObject: THREE.Object3D): void;
199
+ /**
200
+ * To save memory, object3d shares some variables
201
+ */
202
+ static setSharedVariablesOfObject(object: THREE.Object3D): void;
203
+ /**
204
+ * Checks if an object is a drawable leaf object
205
+ */
206
+ static isLeafObject(obj: THREE.Object3D): boolean;
207
+ /**
208
+ * object layers related setting functions
209
+ */
210
+ static enableLayerChannels(obj: THREE.Object3D, channels: number[], recursive?: boolean): void;
211
+ static disableLayerChannels(obj: THREE.Object3D, channels: number[], recursive?: boolean): void;
212
+ static setLayerChannels(obj: THREE.Object3D, channels: number[], recursive?: boolean): void;
213
+ static isObjectHittable(obj: THREE.Object3D): boolean;
214
+ static isObjectSnapable(obj: THREE.Object3D): boolean;
215
+ static isObjectSelectable(obj: THREE.Object3D): boolean;
216
+ }
@@ -0,0 +1,9 @@
1
+ import * as THREE from "three";
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare class PolygonUtils {
6
+ static getFaces(points: THREE.Vector3[]): number[];
7
+ static arePointsCoplanar(points: THREE.Vector3[]): boolean;
8
+ static isSelfIntersecting(points: THREE.Vector3[]): boolean;
9
+ }
@@ -0,0 +1,22 @@
1
+ import { SVGObject } from "three/examples/jsm/renderers/SVGRenderer.js";
2
+ /**
3
+ * Default osnap icon size in pixel.
4
+ */
5
+ export declare const OSnapIconSize = 10;
6
+ /**
7
+ * OSnap marker type.
8
+ */
9
+ export declare enum OSnapMarkerType {
10
+ TripleCross = "TripleCross",
11
+ Square = "Square",
12
+ Triangle = "Triangle",
13
+ CircleWithCross = "CircleWithCross",
14
+ Cross = "Cross",
15
+ Perpendicular = "Perpendicular"
16
+ }
17
+ /**
18
+ * @internal
19
+ */
20
+ export declare class SVGObjectUtils {
21
+ static createSVGObject(node: SVGPathElement | SVGTextElement | SVGLineElement): SVGObject;
22
+ }
@@ -0,0 +1,26 @@
1
+ import * as THREE from "three";
2
+ /**
3
+ * Util methods about Scene
4
+ * @internal
5
+ */
6
+ export declare class SceneUtils {
7
+ /**
8
+ * Get all visible objects' bounding box in a scene.
9
+ * @param scene
10
+ */
11
+ static getVisibleObjectBoundingBox(scene: THREE.Scene): THREE.Box3;
12
+ static getObjectsBoundingBox(scene: THREE.Scene, objectIds: number[], sampling?: boolean): THREE.Box3;
13
+ /**
14
+ * Box3.expandByObject() doesn't work well in some case.
15
+ * E.g. when object's position is far away from object's center?
16
+ * When objects are instanced?
17
+ * That's why we need a method to find bounding box by object's children!
18
+ * And, better to do sampling in case there are too many children.
19
+ */
20
+ static getBoundingBox(object: THREE.Object3D, sampling?: boolean): THREE.Box3;
21
+ /**
22
+ * InstancedMesh is different, we need to get its child meshes in order to get the bounding box
23
+ */
24
+ static getInstancedMeshBoundingBox(mesh: THREE.InstancedMesh): THREE.Box3;
25
+ static getObjectCenter(object: THREE.Object3D, center: THREE.Vector3): void;
26
+ }
@@ -0,0 +1,11 @@
1
+ import * as THREE from "three";
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare class SectionUtils {
6
+ static setMaterialSection(mat: THREE.Material, planes: THREE.Plane[], bAppend?: boolean, bClipIntersection?: boolean): void;
7
+ static removeSection(object: THREE.Object3D): void;
8
+ static addSection(object: THREE.Object3D, planes: THREE.Plane[], bAppend?: boolean, bClipIntersection?: boolean): void;
9
+ static generateSectionPlanesByBox(sectionBox: THREE.Box2): THREE.Plane[];
10
+ static generateSectionPlanesByPoints(points: THREE.Vector2[], bLeftSideOfForwadDirection?: boolean): THREE.Plane[] | undefined;
11
+ }
@@ -0,0 +1,15 @@
1
+ import * as THREE from "three";
2
+ /**
3
+ * SimplifyUtils class is used to simplify objects' geomery for a given object
4
+ * @internal
5
+ */
6
+ export declare class SimplifyUtils {
7
+ /**
8
+ * Gets simplified object.
9
+ */
10
+ static simplifyGeometry(geometry: THREE.BufferGeometry, simplifyRate: number): THREE.BufferGeometry;
11
+ /**
12
+ * Gets number of vertices to remove
13
+ */
14
+ private static getNumberOfVerticesToRemove;
15
+ }
@@ -0,0 +1,16 @@
1
+ import * as THREE from "three";
2
+ /**
3
+ * TextureUtils class
4
+ * @internal
5
+ */
6
+ export declare class TextureUtils {
7
+ /**
8
+ * Creates an environment texture
9
+ */
10
+ static createEnvTexture(pmremGenerator: THREE.PMREMGenerator | undefined, url: string): Promise<THREE.Texture>;
11
+ /**
12
+ * Creates default environment texture
13
+ */
14
+ static createEnvTextureFromDataArray(pmremGenerator: THREE.PMREMGenerator | undefined, data?: Uint16Array, width?: number, height?: number): Promise<THREE.Texture>;
15
+ private static readonly HDR_CITY_STREET_64x32;
16
+ }
@@ -0,0 +1,21 @@
1
+ import * as THREE from "three";
2
+ export declare class UVUtils {
3
+ /**
4
+ * Performs angle-based island detection + PCA projection + rectangle pack
5
+ * (mimics Blender's Smart UV Project).
6
+ * @param geometry Source THREE.BufferGeometry (must be indexed).
7
+ * @param attribute Target attribute to apply the generated uvs. E.g., "uv", "uv1".
8
+ * @param angleLimitDeg Max normal-angle difference to stay in one island.
9
+ * @param islandMargin Pixel gap between islands (0-1 UV space).
10
+ */
11
+ static generateSmartUv(geometry: THREE.BufferGeometry, attribute?: string, angleLimitDeg?: number, islandMargin?: number): void;
12
+ /**
13
+ * Performs angle-based island detection + PCA projection + rectangle pack
14
+ * (mimics Blender's Smart UV Project).
15
+ * @param geometry Source THREE.BufferGeometry (indexed or non-indexed).
16
+ * @param angleLimitDeg Max normal-angle difference to stay in one island.
17
+ * @param islandMargin Pixel gap between islands (0-1 UV space).
18
+ * @returns Float32Array(uv) same length as position count.
19
+ */
20
+ static smartUvProject(geometry: THREE.BufferGeometry, angleLimitDeg?: number, islandMargin?: number): Float32Array;
21
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare const UnitConversionByMeter: {
5
+ [key: string]: number;
6
+ };
7
+ /**
8
+ * @internal
9
+ */
10
+ export declare const UnitLabels: {
11
+ [key: string]: string;
12
+ };
13
+ /**
14
+ * @internal
15
+ */
16
+ export declare const getUnitStr: (unit: string, power?: number) => string;
17
+ /**
18
+ * Gets unit
19
+ * value
20
+ * sourceUnit
21
+ * targetUnit
22
+ * @internal
23
+ */
24
+ export interface ValueWithUnit {
25
+ value: number;
26
+ unit: string;
27
+ }
28
+ /**
29
+ * @internal
30
+ */
31
+ export declare const getLengthValueByUnit: (value: number, sourceUnit: string, targetUnit: string, power?: number) => ValueWithUnit;
@@ -0,0 +1,26 @@
1
+ export * from "./CancelablePromise";
2
+ export * from "./CommonUtils";
3
+ export * from "./ColorUtils";
4
+ export * from "./CoordinateUtils";
5
+ export * from "./CSS2DObjectUtils";
6
+ export * from "./DecimalPrecisionUtils";
7
+ export * from "./DeviceUtils";
8
+ export * from "./EdgeUtils";
9
+ export * from "./Event";
10
+ export * from "./ExportUtils";
11
+ export * from "./FpsUtils";
12
+ export * from "./GeometryUtils";
13
+ export * from "./LodashUtils";
14
+ export * from "./LogUtils";
15
+ export * from "./MaterialUtils";
16
+ export * from "./MathUtils";
17
+ export * from "./MergeUtils";
18
+ export * from "./ObjectUtils";
19
+ export * from "./PolygonUtils";
20
+ export * from "./SceneUtils";
21
+ export * from "./SectionUtils";
22
+ export * from "./SimplifyUtils";
23
+ export * from "./SVGObjectUtils";
24
+ export * from "./TextureUtils";
25
+ export * from "./UnitConversionUtils";
26
+ export * from "./UVUtils";