@maqiuyao/dxf-viewer 0.1.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 (227) hide show
  1. package/README.md +79 -0
  2. package/dist/assets/vite-project.css +1 -0
  3. package/dist/dxf-viewer.cjs +1533 -0
  4. package/dist/dxf-viewer.js +33490 -0
  5. package/dist/src/dxfViewer/core/Configs.d.ts +250 -0
  6. package/dist/src/dxfViewer/core/Constants.d.ts +76 -0
  7. package/dist/src/dxfViewer/core/Units.d.ts +16 -0
  8. package/dist/src/dxfViewer/core/VersionManager.d.ts +14 -0
  9. package/dist/src/dxfViewer/core/camera/CameraManager.d.ts +81 -0
  10. package/dist/src/dxfViewer/core/camera/index.d.ts +1 -0
  11. package/dist/src/dxfViewer/core/camera-controls/CameraControls.d.ts +744 -0
  12. package/dist/src/dxfViewer/core/camera-controls/Constants.d.ts +2 -0
  13. package/dist/src/dxfViewer/core/camera-controls/EventDispatcher.d.ts +42 -0
  14. package/dist/src/dxfViewer/core/camera-controls/index.d.ts +2 -0
  15. package/dist/src/dxfViewer/core/camera-controls/types.d.ts +112 -0
  16. package/dist/src/dxfViewer/core/camera-controls/utils/extractClientCoordFromEvent.d.ts +7 -0
  17. package/dist/src/dxfViewer/core/camera-controls/utils/math-utils.d.ts +14 -0
  18. package/dist/src/dxfViewer/core/camera-controls/utils/notSupportedInOrthographicCamera.d.ts +2 -0
  19. package/dist/src/dxfViewer/core/canvas/CanvasRender.d.ts +49 -0
  20. package/dist/src/dxfViewer/core/canvas/Constants.d.ts +28 -0
  21. package/dist/src/dxfViewer/core/canvas/Drawable.d.ts +87 -0
  22. package/dist/src/dxfViewer/core/canvas/DrawableList.d.ts +40 -0
  23. package/dist/src/dxfViewer/core/canvas/index.d.ts +4 -0
  24. package/dist/src/dxfViewer/core/compare/BaseDxfCompareHelper.d.ts +104 -0
  25. package/dist/src/dxfViewer/core/compare/CompareDrawable.d.ts +30 -0
  26. package/dist/src/dxfViewer/core/compare/DxfCompareHelper.d.ts +76 -0
  27. package/dist/src/dxfViewer/core/compare/DxfCompareMarkupManager.d.ts +11 -0
  28. package/dist/src/dxfViewer/core/compare/index.d.ts +4 -0
  29. package/dist/src/dxfViewer/core/components/Container.d.ts +38 -0
  30. package/dist/src/dxfViewer/core/components/ProgressBar.d.ts +31 -0
  31. package/dist/src/dxfViewer/core/components/Spinner.d.ts +13 -0
  32. package/dist/src/dxfViewer/core/components/index.d.ts +3 -0
  33. package/dist/src/dxfViewer/core/controls/CameraControlsEx.d.ts +33 -0
  34. package/dist/src/dxfViewer/core/controls/Control.d.ts +17 -0
  35. package/dist/src/dxfViewer/core/controls/OrbitControls.d.ts +13 -0
  36. package/dist/src/dxfViewer/core/controls/PlanControls.d.ts +13 -0
  37. package/dist/src/dxfViewer/core/controls/index.d.ts +3 -0
  38. package/dist/src/dxfViewer/core/dxf/DxfCompare.d.ts +170 -0
  39. package/dist/src/dxfViewer/core/dxf/DxfConstants.d.ts +24 -0
  40. package/dist/src/dxfViewer/core/dxf/DxfLoader.d.ts +569 -0
  41. package/dist/src/dxfViewer/core/dxf/DxfObject.d.ts +44 -0
  42. package/dist/src/dxfViewer/core/dxf/DxfUtils.d.ts +79 -0
  43. package/dist/src/dxfViewer/core/dxf/HatchPatternShaders.d.ts +12 -0
  44. package/dist/src/dxfViewer/core/dxf/LinePatternShaders.d.ts +12 -0
  45. package/dist/src/dxfViewer/core/dxf/bspline.d.ts +7 -0
  46. package/dist/src/dxfViewer/core/dxf/dxfom-mtext.d.ts +46 -0
  47. package/dist/src/dxfViewer/core/dxf/dxfom-text.d.ts +16 -0
  48. package/dist/src/dxfViewer/core/dxf/index.d.ts +10 -0
  49. package/dist/src/dxfViewer/core/dxf/round10.d.ts +1 -0
  50. package/dist/src/dxfViewer/core/dxf-parser/AutoCadColorIndex.d.ts +8 -0
  51. package/dist/src/dxfViewer/core/dxf-parser/DxfBaseReader.d.ts +13 -0
  52. package/dist/src/dxfViewer/core/dxf-parser/DxfBinaryReader.d.ts +14 -0
  53. package/dist/src/dxfViewer/core/dxf-parser/DxfParser.d.ts +321 -0
  54. package/dist/src/dxfViewer/core/dxf-parser/DxfTextReader.d.ts +30 -0
  55. package/dist/src/dxfViewer/core/dxf-parser/ParseHelpers.d.ts +18 -0
  56. package/dist/src/dxfViewer/core/dxf-parser/entities/3dface.d.ts +11 -0
  57. package/dist/src/dxfViewer/core/dxf-parser/entities/arc.d.ts +16 -0
  58. package/dist/src/dxfViewer/core/dxf-parser/entities/attdef.d.ts +31 -0
  59. package/dist/src/dxfViewer/core/dxf-parser/entities/attrib.d.ts +31 -0
  60. package/dist/src/dxfViewer/core/dxf-parser/entities/circle.d.ts +13 -0
  61. package/dist/src/dxfViewer/core/dxf-parser/entities/dimension.d.ts +22 -0
  62. package/dist/src/dxfViewer/core/dxf-parser/entities/ellipse.d.ts +15 -0
  63. package/dist/src/dxfViewer/core/dxf-parser/entities/geomtry.d.ts +40 -0
  64. package/dist/src/dxfViewer/core/dxf-parser/entities/hatch.d.ts +104 -0
  65. package/dist/src/dxfViewer/core/dxf-parser/entities/image.d.ts +37 -0
  66. package/dist/src/dxfViewer/core/dxf-parser/entities/insert.d.ts +21 -0
  67. package/dist/src/dxfViewer/core/dxf-parser/entities/leader.d.ts +20 -0
  68. package/dist/src/dxfViewer/core/dxf-parser/entities/line.d.ts +10 -0
  69. package/dist/src/dxfViewer/core/dxf-parser/entities/lwpolyline.d.ts +17 -0
  70. package/dist/src/dxfViewer/core/dxf-parser/entities/mleader.d.ts +97 -0
  71. package/dist/src/dxfViewer/core/dxf-parser/entities/mtext.d.ts +18 -0
  72. package/dist/src/dxfViewer/core/dxf-parser/entities/ole2frame.d.ts +18 -0
  73. package/dist/src/dxfViewer/core/dxf-parser/entities/point.d.ts +11 -0
  74. package/dist/src/dxfViewer/core/dxf-parser/entities/polyline.d.ts +19 -0
  75. package/dist/src/dxfViewer/core/dxf-parser/entities/ray.d.ts +10 -0
  76. package/dist/src/dxfViewer/core/dxf-parser/entities/region.d.ts +10 -0
  77. package/dist/src/dxfViewer/core/dxf-parser/entities/seqend.d.ts +8 -0
  78. package/dist/src/dxfViewer/core/dxf-parser/entities/solid.d.ts +10 -0
  79. package/dist/src/dxfViewer/core/dxf-parser/entities/spline.d.ts +23 -0
  80. package/dist/src/dxfViewer/core/dxf-parser/entities/table.d.ts +44 -0
  81. package/dist/src/dxfViewer/core/dxf-parser/entities/text.d.ts +18 -0
  82. package/dist/src/dxfViewer/core/dxf-parser/entities/vertex.d.ts +23 -0
  83. package/dist/src/dxfViewer/core/dxf-parser/entities/viewport.d.ts +46 -0
  84. package/dist/src/dxfViewer/core/dxf-parser/entities/xline.d.ts +10 -0
  85. package/dist/src/dxfViewer/core/dxf-parser/index.d.ts +27 -0
  86. package/dist/src/dxfViewer/core/dxf-parser/objects/common.d.ts +15 -0
  87. package/dist/src/dxfViewer/core/dxf-parser/objects/dictionary.d.ts +19 -0
  88. package/dist/src/dxfViewer/core/dxf-parser/objects/imagedef.d.ts +24 -0
  89. package/dist/src/dxfViewer/core/dxf-parser/objects/layout.d.ts +26 -0
  90. package/dist/src/dxfViewer/core/dxf-parser/objects/sortentstable.d.ts +12 -0
  91. package/dist/src/dxfViewer/core/dxf-parser/objects/spatialfilter.d.ts +22 -0
  92. package/dist/src/dxfViewer/core/dxf-parser/objects/xrecord.d.ts +11 -0
  93. package/dist/src/dxfViewer/core/effect/EffectManager.d.ts +43 -0
  94. package/dist/src/dxfViewer/core/effect/index.d.ts +1 -0
  95. package/dist/src/dxfViewer/core/font/BaseFont.d.ts +41 -0
  96. package/dist/src/dxfViewer/core/font/FontManager.d.ts +52 -0
  97. package/dist/src/dxfViewer/core/font/MeshFont.d.ts +14 -0
  98. package/dist/src/dxfViewer/core/font/ShxFont.d.ts +49 -0
  99. package/dist/src/dxfViewer/core/font/index.d.ts +1 -0
  100. package/dist/src/dxfViewer/core/font/shx/ExtraLettersTemplate.d.ts +4 -0
  101. package/dist/src/dxfViewer/core/font/shx/Shx.constants.d.ts +20 -0
  102. package/dist/src/dxfViewer/core/font/shx/ShxParser.d.ts +18 -0
  103. package/dist/src/dxfViewer/core/font/shx/TextShape.d.ts +24 -0
  104. package/dist/src/dxfViewer/core/font/shx/gbk/index.d.ts +3 -0
  105. package/dist/src/dxfViewer/core/font/shx/index.d.ts +1 -0
  106. package/dist/src/dxfViewer/core/font/shx/util/BitConverter.d.ts +21 -0
  107. package/dist/src/dxfViewer/core/geometry-offset/Edge.d.ts +27 -0
  108. package/dist/src/dxfViewer/core/geometry-offset/Offset.d.ts +46 -0
  109. package/dist/src/dxfViewer/core/geometry-offset/index.d.ts +1 -0
  110. package/dist/src/dxfViewer/core/helpers/BinaryReader.d.ts +23 -0
  111. package/dist/src/dxfViewer/core/helpers/BoxSelectHelper.d.ts +44 -0
  112. package/dist/src/dxfViewer/core/helpers/InstantiateHelper.d.ts +26 -0
  113. package/dist/src/dxfViewer/core/helpers/LoadingHelper.d.ts +59 -0
  114. package/dist/src/dxfViewer/core/helpers/MeshBvhHelper.d.ts +15 -0
  115. package/dist/src/dxfViewer/core/helpers/MobileTouchHelperDrawable.d.ts +26 -0
  116. package/dist/src/dxfViewer/core/helpers/OSnapHelper.d.ts +158 -0
  117. package/dist/src/dxfViewer/core/helpers/ObjectPixelSizeHelper.d.ts +13 -0
  118. package/dist/src/dxfViewer/core/helpers/PickMarkupHelper.d.ts +29 -0
  119. package/dist/src/dxfViewer/core/helpers/RafHelper.d.ts +18 -0
  120. package/dist/src/dxfViewer/core/helpers/ZoomToRectHelper.d.ts +24 -0
  121. package/dist/src/dxfViewer/core/helpers/index.d.ts +11 -0
  122. package/dist/src/dxfViewer/core/index.d.ts +19 -0
  123. package/dist/src/dxfViewer/core/indexeddb/BaseTable.d.ts +36 -0
  124. package/dist/src/dxfViewer/core/indexeddb/DxfDataTable.d.ts +22 -0
  125. package/dist/src/dxfViewer/core/indexeddb/FontDataTable.d.ts +32 -0
  126. package/dist/src/dxfViewer/core/indexeddb/IndexedDbManager.d.ts +50 -0
  127. package/dist/src/dxfViewer/core/indexeddb/index.d.ts +4 -0
  128. package/dist/src/dxfViewer/core/input-manager/InputManager.d.ts +146 -0
  129. package/dist/src/dxfViewer/core/input-manager/index.d.ts +2 -0
  130. package/dist/src/dxfViewer/core/materials/BimTilesHighlightMaterial.d.ts +21 -0
  131. package/dist/src/dxfViewer/core/materials/BimTilesMaterial.d.ts +32 -0
  132. package/dist/src/dxfViewer/core/materials/BimTilesPickMaterial.d.ts +14 -0
  133. package/dist/src/dxfViewer/core/materials/BimTilesTransparentMaterial.d.ts +20 -0
  134. package/dist/src/dxfViewer/core/materials/StandardMaterialEx.d.ts +29 -0
  135. package/dist/src/dxfViewer/core/materials/constants.d.ts +4 -0
  136. package/dist/src/dxfViewer/core/materials/index.d.ts +5 -0
  137. package/dist/src/dxfViewer/core/model/Constants.d.ts +58 -0
  138. package/dist/src/dxfViewer/core/model/Model.d.ts +18 -0
  139. package/dist/src/dxfViewer/core/model/Model2d.d.ts +144 -0
  140. package/dist/src/dxfViewer/core/model/Model3d.d.ts +111 -0
  141. package/dist/src/dxfViewer/core/model/bimtiles/BatchedMeshesParser.d.ts +26 -0
  142. package/dist/src/dxfViewer/core/model/bimtiles/BimTilesConfigParser.d.ts +43 -0
  143. package/dist/src/dxfViewer/core/model/bimtiles/BimTilesData.d.ts +280 -0
  144. package/dist/src/dxfViewer/core/model/bimtiles/BimTilesMaterialManager.d.ts +139 -0
  145. package/dist/src/dxfViewer/core/model/bimtiles/BimTilesModel.d.ts +70 -0
  146. package/dist/src/dxfViewer/core/model/bimtiles/BimTilesPropertyParser.d.ts +45 -0
  147. package/dist/src/dxfViewer/core/model/bimtiles/BimTilesRenderer.d.ts +59 -0
  148. package/dist/src/dxfViewer/core/model/bimtiles/InstancedMeshesParser.d.ts +41 -0
  149. package/dist/src/dxfViewer/core/model/bimtiles/TileParser.d.ts +14 -0
  150. package/dist/src/dxfViewer/core/model/bimtiles/Utils.d.ts +29 -0
  151. package/dist/src/dxfViewer/core/model/index.d.ts +6 -0
  152. package/dist/src/dxfViewer/core/patches/Constants.d.ts +6 -0
  153. package/dist/src/dxfViewer/core/patches/Line.d.ts +3 -0
  154. package/dist/src/dxfViewer/core/patches/Mesh.d.ts +2 -0
  155. package/dist/src/dxfViewer/core/patches/Points.d.ts +3 -0
  156. package/dist/src/dxfViewer/core/patches/index.d.ts +4 -0
  157. package/dist/src/dxfViewer/core/patches/shaders/ShaderChunk.d.ts +143 -0
  158. package/dist/src/dxfViewer/core/patches/shaders/shaderChunk/common_ex.glsl.d.ts +2 -0
  159. package/dist/src/dxfViewer/core/patches/shaders/shaderChunk/id_pars_vertex.glsl.d.ts +2 -0
  160. package/dist/src/dxfViewer/core/patches/shaders/shaderChunk/id_vertex.glsl.d.ts +2 -0
  161. package/dist/src/dxfViewer/core/patches/shaders/shaderChunk/outine_bc_vertex.glsl.d.ts +2 -0
  162. package/dist/src/dxfViewer/core/patches/shaders/shaderChunk/outline_bc_fragment.glsl.d.ts +2 -0
  163. package/dist/src/dxfViewer/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts +2 -0
  164. package/dist/src/dxfViewer/core/patches/shaders/shaderChunk/outline_bc_pars_vertex.glsl.d.ts +2 -0
  165. package/dist/src/dxfViewer/core/patches/shaders/shaderChunk/state_fragment.glsl.d.ts +2 -0
  166. package/dist/src/dxfViewer/core/patches/shaders/shaderChunk/state_highlight_fragment.glsl.d.ts +2 -0
  167. package/dist/src/dxfViewer/core/patches/shaders/shaderChunk/state_pars_fragment.glsl.d.ts +2 -0
  168. package/dist/src/dxfViewer/core/patches/shaders/shaderChunk/state_transparent_fragment.glsl.d.ts +2 -0
  169. package/dist/src/dxfViewer/core/patches/shaders/shaderLib/pick_ex.glsl.d.ts +2 -0
  170. package/dist/src/dxfViewer/core/patches/shaders/shaderLib/standard_ex.glsl.d.ts +2 -0
  171. package/dist/src/dxfViewer/core/pick/PickManager.d.ts +54 -0
  172. package/dist/src/dxfViewer/core/pick/index.d.ts +1 -0
  173. package/dist/src/dxfViewer/core/scene/SceneManager.d.ts +43 -0
  174. package/dist/src/dxfViewer/core/scene/index.d.ts +1 -0
  175. package/dist/src/dxfViewer/core/shp-js/BitView.d.ts +12 -0
  176. package/dist/src/dxfViewer/core/shp-js/SHPLoader.d.ts +12 -0
  177. package/dist/src/dxfViewer/core/shp-js/Shp.d.ts +10 -0
  178. package/dist/src/dxfViewer/core/shp-js/ShpThree.d.ts +24 -0
  179. package/dist/src/dxfViewer/core/shp-js/index.d.ts +4 -0
  180. package/dist/src/dxfViewer/core/text-texture/TextTexture.d.ts +45 -0
  181. package/dist/src/dxfViewer/core/undo/Command.d.ts +6 -0
  182. package/dist/src/dxfViewer/core/undo/UndoManager.d.ts +24 -0
  183. package/dist/src/dxfViewer/core/undo/index.d.ts +2 -0
  184. package/dist/src/dxfViewer/core/utils/CSS2DObjectUtils.d.ts +14 -0
  185. package/dist/src/dxfViewer/core/utils/CancelablePromise.d.ts +6 -0
  186. package/dist/src/dxfViewer/core/utils/ColorUtils.d.ts +21 -0
  187. package/dist/src/dxfViewer/core/utils/CommonUtils.d.ts +129 -0
  188. package/dist/src/dxfViewer/core/utils/CoordinateUtils.d.ts +81 -0
  189. package/dist/src/dxfViewer/core/utils/DecimalPrecisionUtils.d.ts +10 -0
  190. package/dist/src/dxfViewer/core/utils/DeviceUtils.d.ts +15 -0
  191. package/dist/src/dxfViewer/core/utils/EdgeUtils.d.ts +14 -0
  192. package/dist/src/dxfViewer/core/utils/Event.d.ts +34 -0
  193. package/dist/src/dxfViewer/core/utils/ExportUtils.d.ts +61 -0
  194. package/dist/src/dxfViewer/core/utils/FpsUtils.d.ts +13 -0
  195. package/dist/src/dxfViewer/core/utils/GeometryUtils.d.ts +78 -0
  196. package/dist/src/dxfViewer/core/utils/Locale.d.ts +22 -0
  197. package/dist/src/dxfViewer/core/utils/LogUtils.d.ts +7 -0
  198. package/dist/src/dxfViewer/core/utils/MaterialUtils.d.ts +40 -0
  199. package/dist/src/dxfViewer/core/utils/MathUtils.d.ts +41 -0
  200. package/dist/src/dxfViewer/core/utils/MergeUtils.d.ts +120 -0
  201. package/dist/src/dxfViewer/core/utils/ObjectUtils.d.ts +215 -0
  202. package/dist/src/dxfViewer/core/utils/PolygonUtils.d.ts +9 -0
  203. package/dist/src/dxfViewer/core/utils/SVGObjectUtils.d.ts +22 -0
  204. package/dist/src/dxfViewer/core/utils/SceneUtils.d.ts +26 -0
  205. package/dist/src/dxfViewer/core/utils/SectionUtils.d.ts +11 -0
  206. package/dist/src/dxfViewer/core/utils/SimplifyUtils.d.ts +15 -0
  207. package/dist/src/dxfViewer/core/utils/TextUtils.d.ts +37 -0
  208. package/dist/src/dxfViewer/core/utils/TextureUtils.d.ts +16 -0
  209. package/dist/src/dxfViewer/core/utils/UnitConversionUtils.d.ts +31 -0
  210. package/dist/src/dxfViewer/core/utils/Viewer3dUtils.d.ts +25 -0
  211. package/dist/src/dxfViewer/core/utils/index.d.ts +26 -0
  212. package/dist/src/dxfViewer/core/viewers/BaseViewer.d.ts +248 -0
  213. package/dist/src/dxfViewer/core/viewers/BimTilesViewer.d.ts +126 -0
  214. package/dist/src/dxfViewer/core/viewers/Constants.d.ts +9 -0
  215. package/dist/src/dxfViewer/core/viewers/Plugin.d.ts +29 -0
  216. package/dist/src/dxfViewer/core/viewers/Viewer2d.d.ts +405 -0
  217. package/dist/src/dxfViewer/core/viewers/Viewer3d.d.ts +130 -0
  218. package/dist/src/dxfViewer/core/viewers/Viewer3dLite.d.ts +143 -0
  219. package/dist/src/dxfViewer/core/viewers/ViewerEvent.d.ts +96 -0
  220. package/dist/src/dxfViewer/core/viewers/index.d.ts +8 -0
  221. package/dist/src/dxfViewer/core/webcam/WebCam.d.ts +27 -0
  222. package/dist/src/dxfViewer/core/webcam/index.d.ts +1 -0
  223. package/dist/src/dxfViewer/core/workers/CreateMeshBvh.worker.d.ts +1 -0
  224. package/dist/src/dxfViewer/core/workers/GenerateMeshBvhWorker.d.ts +17 -0
  225. package/dist/src/dxfViewer/core/workers/index.d.ts +1 -0
  226. package/dist/src/dxfViewer/lib.d.ts +1 -0
  227. package/package.json +62 -0
@@ -0,0 +1,405 @@
1
+ import { BaseViewer } from './BaseViewer';
2
+ import { ViewerName } from './Constants';
3
+ import { Model2dConfig, Viewer2dConfig } from '../../core/Configs';
4
+ import { Drawable } from '../../core/canvas';
5
+ import { DxfLayer } from '../../core/dxf';
6
+ import { EventInfo } from '../../core/input-manager/InputManager';
7
+ import { Model2d } from '../../core/model';
8
+ import * as THREE from "three";
9
+ export interface EntityData {
10
+ modelId: string;
11
+ layerName: string;
12
+ }
13
+ /**
14
+ * Item returned in the `llbMesh` array of {@link Viewer2d.loadModel}'s callback.
15
+ * Spread from a THREE.Mesh plus a computed bounding box.
16
+ */
17
+ export interface LlbMeshItem {
18
+ boundingBox: {
19
+ max: THREE.Vector3;
20
+ min: THREE.Vector3;
21
+ center: THREE.Vector3;
22
+ };
23
+ [key: string]: unknown;
24
+ }
25
+ /**
26
+ * A group of dxf/dwg layers for a drawing.
27
+ */
28
+ export interface DxfLayers {
29
+ modelId: string;
30
+ layers: Record<string, DxfLayer>;
31
+ }
32
+ export interface PdfLayers {
33
+ modelId: string;
34
+ layers: Record<string, PdfLayer>;
35
+ }
36
+ export interface PdfLayer {
37
+ name: string;
38
+ id: string;
39
+ index: string;
40
+ visible: boolean;
41
+ }
42
+ export interface PdfData {
43
+ threejsObject: THREE.Object3D;
44
+ layers: Record<string, PdfLayer>;
45
+ layersAndThreejsObjects?: Record<string, THREE.Object3D[]>;
46
+ loadedEntityCount: number;
47
+ }
48
+ /**
49
+ * @internal
50
+ */
51
+ export declare const GroundPlaneRenderOrder = -1000;
52
+ /**
53
+ * Threejs objects are organized in tree view as below:
54
+ *
55
+ * - modelLevelObject1 (THREE.Group, name = <modelId>)
56
+ * - layoutLevelObject1 (THREE.Group, name = <layout name>, used to control layout visibility)
57
+ * - entityLevelObject1 (THREE.Point/Line/Mesh/Group)
58
+ *
59
+ * - Layer threejs objects
60
+ * {
61
+ * layerName:[threejsObject1,threejsObject2,threejsObject3,...] (THREE.Point/Line/Mesh)
62
+ * }
63
+ */
64
+ /**
65
+ * "dwg" is short for "drawing", it is a file format saved by AutoCAD.
66
+ * And "dxf" is data exchange format, which can be converted from a dwg file.
67
+ * We cannot read dwg directly, and need to convert it to dxf first via ODA.
68
+ *
69
+ * Supported dxf version: AutoCAD 2018. Both binary and ascii are supported.
70
+ *
71
+ * Json Encoding: UTF-8 encoding without BOM
72
+ *
73
+ * Coordinate system: right-handed, y-up
74
+ *
75
+ * About units:
76
+ * - The unit of distance follows the master dxf file's unit
77
+ * - The unit of area follows the master dxf file's unit
78
+ * - The unit of angle is "degree", counterclockwise
79
+ * - The unit of time is "second"
80
+ *
81
+ * Color: use rgb/rgba, values between 0-1
82
+ *
83
+ * About Measurement in Viewer2d:
84
+ * - A measurement is generated by Viewer2d.
85
+ * - Measurements data should be stored by users, so users can restore measurements data into Viewer2d later.
86
+ * - Viewer2d manages measurements data, it can be created, removed, hidden, etc.
87
+ * - Viewer2d doesn't maintain the relationship between measurement and layout.
88
+ *
89
+ * About Markup in Viewer2d:
90
+ * Markup is pretty similar to measurement.
91
+ *
92
+ * About Hotpoint in Viewer2d:
93
+ * - A hotpoint is created and stored by user.
94
+ * - A hotpoint can be added to, and removed from Viewer2d.
95
+ * - Caller should set a hotpointId that is unique in the session of current Viewer2d.
96
+ * - Viewer2d doesn't hide a hotpoint, user is able to do it.
97
+ * - Viewer2d doesn't maintain the relationship between hotpoint and layout.
98
+ *
99
+ * About layouts
100
+ * - Each layout has its own home view.
101
+ * - When switching to another layout, it clears all measurements, markups and hotpoints.
102
+ * - When switching to another layout, it deactivates any in-progress operation like measurement, markup, etc.
103
+ *
104
+ * About overlay
105
+ * - It supports to add as many models as user want, as long as the browser has sufficient memory, cpu/gpu, etc.
106
+ * - The first model is called "master" model, others are called "overlay" models.
107
+ * - It ignores an overlay model's paper space.
108
+ * - An overlay model's unit should be converted to master model's unit if they are not the same.
109
+ * - We'll append modelId as prefix for getLayers()
110
+ *
111
+ * About comparision
112
+ * - It compares just "Model" spaces.
113
+ * - It compares entities with the same handles and types.
114
+ * - It compares entities' geometries, positions, scales, etc.
115
+ * - It ignores a layer's visibility, freeze settings.
116
+ * - It ignores an entity's properties, like linetype, line width, fill pattern, font, color, etc.
117
+ * - It ignores spatial filters (xclip) of block references.
118
+ * - It ignores layer relative operations, like moving an entity to another layer, changing a layer color, etc.
119
+ * - By default, an "Added" entity is rendered in green, a "Removed" entity is in red, a "Modified" entity is composed by two parts, one "Removed" and another "Added".
120
+ *
121
+ * About undo/redo
122
+ * - It supports undo/redo for measurement and markup operations. E.g., creating/deleting/moving a markup.
123
+ * - Setting/removing a batch of measurements or markups will be taken as one operation.
124
+ * - Switching to another layout clears all undo/redo history.
125
+ *
126
+ * About OSnap
127
+ * - It supports snapping to the end points and middle point of a line.
128
+ * - It supports snapping to the intersection point of two lines.
129
+ * - It supports snapping to the foot of perpendicular against a line.
130
+ * - It supports snapping to any point along a line.
131
+ *
132
+ * @example
133
+ * ``` typescript
134
+ * const viewerCfg = {
135
+ * containerId: "myCanvas",
136
+ * enableSpinner: true,
137
+ * enableLayoutBar: true,
138
+ * };
139
+ * const modelCfg = {
140
+ * modelId: "id_0",
141
+ * name: "sample",
142
+ * src: "http://www.abc.com/sample.dxf",
143
+ * }
144
+ * const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"];
145
+ *
146
+ * const viewer = new Viewer2d(viewerCfg);
147
+ * await viewer.setFont(fontFiles);
148
+ * await viewer.loadModel(modelCfg);
149
+ * ```
150
+ */
151
+ export declare class Viewer2d extends BaseViewer {
152
+ name: ViewerName;
153
+ loadedModels: Model2d[];
154
+ /**
155
+ * @internal
156
+ */
157
+ masterModelId: string;
158
+ private activeLayoutName;
159
+ private dxfLayoutBar?;
160
+ private layoutInfos;
161
+ private units?;
162
+ private enableHideVisuallySmallObjects;
163
+ private sortedHidableObjects;
164
+ private lastCameraZoom;
165
+ groundPlane?: THREE.Mesh;
166
+ raycastableObjects?: THREE.Object3D[];
167
+ selectedObject?: THREE.Object3D | Drawable;
168
+ /**
169
+ * Used to indicate how many dxf is loading
170
+ */
171
+ private loadingDxfCount;
172
+ constructor(viewerCfg: Viewer2dConfig);
173
+ get camera(): THREE.OrthographicCamera;
174
+ private setupDefaultEvents;
175
+ protected handleMouseClick(e: EventInfo): void;
176
+ private setDefaultBackground;
177
+ /**
178
+ * @description {en} Loads a dxf file.
179
+ * The first loaded file will be taken as a "master" model.
180
+ * Any other files are non-master, we call "overlay" model.
181
+ * We'll load everything of a master model, including model and paper space.
182
+ * For an overlay model, we'll only load its model space. And its model space can only
183
+ * overly to master model's model space.
184
+ * @description {zh} 加载 dxf 文件。
185
+ * 第一个加载的文件将被视为“主”模型。
186
+ * 任何其他文件都是非主文件,我们称之为“叠加”模型。
187
+ * 我们将加载主模型的所有内容,包括模型和图纸空间。
188
+ * 对于叠加模型,我们只会加载其模型空间。并且它的模型空间只能叠加到主模型的模型空间上。
189
+ * @param modelCfg
190
+ * - {en} The configuration of the model to be loaded.
191
+ * - {zh} 要加载的模型的配置。
192
+ * @param onProgress
193
+ * - {en} A callback function to indicate the loading progress.
194
+ * - {zh} 用于指示加载进度的回调函数。
195
+ * @example
196
+ * ``` typescript
197
+ * const viewerCfg = {
198
+ * containerId: "myCanvas",
199
+ * };
200
+ * const modelCfg = {
201
+ * modelId: "id_0",
202
+ * name: "dxf 0",
203
+ * src: "http://www.abc.com/sample.dxf",
204
+ * }
205
+ * const viewer = new Viewer2d(viewerCfg);
206
+ * await viewer.loadModel(modelCfg, (event) => {
207
+ * const progress = (event.loaded * 100) / event.total;
208
+ * console.log(`Loading progress: ${progress}%`);
209
+ * });
210
+ * console.log("Loaded");
211
+ * ```
212
+ */
213
+ loadModel(modelCfg: Model2dConfig, onProgress?: ((event: ProgressEvent<EventTarget>) => void) | undefined, callback?: (result: {
214
+ threejsObject: THREE.Object3D;
215
+ llbMesh?: LlbMeshItem[];
216
+ }) => void): Promise<void>;
217
+ addModel(model: Model2d): void;
218
+ private getDxfUnits;
219
+ private handleOverlayDxf;
220
+ setObjectHighlight(object: THREE.Object3D): void;
221
+ setObjectUnHighlight(object: THREE.Object3D): void;
222
+ clearHighlight(): void;
223
+ clearSelection(): void;
224
+ /**
225
+ * Gets if selection is enabled.
226
+ */
227
+ get enableSelection(): boolean;
228
+ /**
229
+ * Sets if selection is enabled.
230
+ */
231
+ set enableSelection(enable: boolean);
232
+ /**
233
+ * Creates a ground plane which is much bigger than bbox.
234
+ */
235
+ private updateGroundPlane;
236
+ getRaycastableObjects(): THREE.Object3D[];
237
+ /**
238
+ * Gets the corresponding viewport by judging that the point is in the viewport
239
+ */
240
+ private getViewportByPoint;
241
+ /**
242
+ * Gets the world position by the mouse's position.
243
+ */
244
+ getWorldPositionByMousePick(mousePosition: THREE.Vector2): THREE.Vector3 | undefined;
245
+ /**
246
+ * @description {en} Activates a layout.
247
+ * @description {zh} 激活布局。
248
+ * @param layoutName
249
+ * - {en} The name of the layout to be activated.
250
+ * - {zh} 要激活的布局名称。
251
+ * @example
252
+ * ```typescript
253
+ * viewer.activateLayout('Layout1');
254
+ * ```
255
+ */
256
+ activateLayout(layoutName?: string): void;
257
+ private getLayoutExtentEx;
258
+ private getActiveLayoutInfo;
259
+ private getLayoutByName;
260
+ /**
261
+ * Gets loaded entity count
262
+ * @internal
263
+ * @returns {number}
264
+ */
265
+ getEntityCount(): number;
266
+ /**
267
+ * @description Gets layout names of the master model.
268
+ * @returns Layout names of the master model.
269
+ * @example
270
+ * ``` typescript
271
+ * const layoutNames = viewer.getLayoutNames();
272
+ * console.log(layoutNames); // ['Model', 'Layout1', 'Layout2']
273
+ * ```
274
+ */
275
+ getLayoutNames(): string[];
276
+ /**
277
+ * Gets LayoutInfo by layoutName. It creats LayoutInfo if doesn't exist.
278
+ */
279
+ private getLayoutInfo;
280
+ goToHomeView(): void;
281
+ zoomToBBox(bbox: THREE.Box3): void;
282
+ /**
283
+ * @description {en} Gets current view extent.
284
+ * This is useful for user to save this value as a viewpoint, and jump to this viewpoint next time.
285
+ * @description {zh} 获取当前视图范围。
286
+ * 用户可使用该接口获取当前视口范围,并在适当的场景下跳转到该视口范围。
287
+ * @example
288
+ * ``` typescript
289
+ * const box = viewer.getCurrentViewExtent();
290
+ * console.log("Current view extent:", box);
291
+ * ```
292
+ */
293
+ getCurrentViewExtent(): THREE.Box2;
294
+ /**
295
+ * Gets hit result by Normalized Device Coordinates.
296
+ * Lower left coordinate: (-1, -1)
297
+ * Upper right coordinate: (1, 1)
298
+ */
299
+ protected getHitResultByNdcCoordinate(coord: THREE.Vector2): THREE.Vector2 | undefined;
300
+ /**
301
+ * Gets mouse hit result in world coordinate
302
+ * @example
303
+ * ``` typescript
304
+ * document.addEventListener("click", (event) => {
305
+ * const result = viewer.getHitResult(event);
306
+ * const loc = result?.location;
307
+ * if (loc) {
308
+ * console.log(`Clicked at x: ${loc[0]}, y: ${loc[1]}`);
309
+ * }
310
+ * });
311
+ * ```
312
+ * @internal
313
+ */
314
+ getHitResult(event: MouseEvent | PointerEvent | EventInfo): THREE.Vector2 | undefined;
315
+ /**
316
+ * @description {en} Gets active layout.
317
+ * @description {zh} 获取当前布局。
318
+ * @returns
319
+ * - {en} Active layout name or undefined.
320
+ * - {zh} 当前激活的布局名称或undefined。
321
+ * @example
322
+ * ``` typescript
323
+ * const activeLayout = viewer.getActiveLayoutName();
324
+ * console.log(activeLayout);
325
+ * ```
326
+ */
327
+ getActiveLayoutName(): string | undefined;
328
+ zoomIn(step?: number): void;
329
+ zoomOut(step?: number): void;
330
+ /**
331
+ * @description {en} Gets dxf layers.
332
+ * @description {zh} 获取dxf图层。
333
+ * @returns
334
+ * - {en} Dxf layers.
335
+ * - {zh} dxf图层。
336
+ * @example
337
+ * ``` typescript
338
+ * const dxfLayers = viewer.getLayers();
339
+ * for (let i = 0; i < dxfLayers.length; ++i) {
340
+ * const layers = dxfLayers[i].layers;
341
+ * const layerNames = Object.keys(layers).sort();
342
+ * console.log(layerNames);
343
+ * }
344
+ * ```
345
+ */
346
+ getLayers(): (DxfLayers | PdfLayers)[];
347
+ /**
348
+ * Sets model's (aka, a dxf file) visibility.
349
+ * @throws Throws exception if modelId doesn't exist.
350
+ * @internal
351
+ */
352
+ setModelVisibility(modelId: string, visible: boolean): void;
353
+ /**
354
+ * @description {en} Sets layer's visibility.
355
+ * @description {zh} 设置图层的可见性。
356
+ * @param layerName
357
+ * - {en} Layer's name to show or hide.
358
+ * - {zh} 要显示或隐藏的图层名称。
359
+ * @param visible
360
+ * - {en} Layer's target visibility.
361
+ * - {zh} 图层的目标可见性。
362
+ * @param modelId
363
+ * - {en} Useful when more than one model is loaded, if not specified, will use the master model.
364
+ * - {zh} 当加载了多个模型时有用,如果未指定,将使用主模型。
365
+ * @throws Error
366
+ * - {en}: Throws exception if given modelId doesn't exist.
367
+ * - {zh} 如果给定的modelId不存在,则抛出异常。
368
+ * @example
369
+ * ``` typescript
370
+ * // Hides layer "0"
371
+ * viewer.setLayerVisibility("0", false);
372
+ * ```
373
+ */
374
+ setLayerVisibility(layerName: string, visible: boolean, modelId?: string): void;
375
+ /**
376
+ * Sets layer's opacity
377
+ * @internal
378
+ */
379
+ setLayerOpacity(layerName: string, opacity: number, modelId?: string): void;
380
+ /**
381
+ * Sets layer's color
382
+ * @throws Throws exception if layer doesn't exist.
383
+ * @internal
384
+ */
385
+ setLayerColor(layerName: string, color: number, modelId?: string): void;
386
+ /**
387
+ * Resets a layer's color.
388
+ * @internal
389
+ */
390
+ resetLayerColor(layerName: string, modelId?: string): void;
391
+ private getVisiblePixelSize;
392
+ private setLayoutHidableObjectArray;
393
+ /**
394
+ * Updates raycaster threshold to a proper value, so user can easily pick points and lines
395
+ */
396
+ private updateRaycasterThreshold;
397
+ /**
398
+ * Updates hidable objects' visibility once camera.zoom changed.
399
+ */
400
+ private updateHidableObjectsVisibility;
401
+ /**
402
+ * Updates camera zoom value for shader materials, which are created in DxfLoader
403
+ */
404
+ private updateCameraZoomUniform;
405
+ }
@@ -0,0 +1,130 @@
1
+ import { EffectManager } from '../effect';
2
+ import { Model3d } from '../model';
3
+ import { BaseViewer } from './BaseViewer';
4
+ import { ViewerName } from './Constants';
5
+ import { ModelConfig, Viewer3dConfig, Viewpoint } from '../../core/Configs';
6
+ import * as THREE from "three";
7
+ export declare class Viewer3d extends BaseViewer {
8
+ name: ViewerName;
9
+ loadedModels: Model3d[];
10
+ distanceCullingFactor: number;
11
+ selectedObject?: THREE.Object3D;
12
+ protected effect: EffectManager;
13
+ constructor(viewerCfg: Viewer3dConfig, homeView?: Viewpoint);
14
+ protected setupDefaultEvents(): void;
15
+ protected setDefaultBackground(): void;
16
+ protected handleAnchorPoint(intersect?: THREE.Intersection): void;
17
+ protected handleClickObject(object: THREE.Object3D): void;
18
+ is3d(): boolean;
19
+ loadLocalModel(url: string, modelCfg: ModelConfig, manager?: THREE.LoadingManager, onProgress?: (event: ProgressEvent) => void): Promise<void>;
20
+ loadModel(modelCfg: ModelConfig, onProgress?: ((event: ProgressEvent<EventTarget>) => void) | undefined): Promise<void>;
21
+ private loadModelInternal;
22
+ /**
23
+ * Sets distance culling factor in order to improve performance.
24
+ * 0 means distance culling is disabled.
25
+ * 100 means a 1x1 squre mesh is visible within 100.
26
+ * @internal
27
+ */
28
+ setDistanceCullingFactor(val: number): void;
29
+ /**
30
+ * Gets distance culling factor.
31
+ * @internal
32
+ */
33
+ getDistanceCullingFactor(): number;
34
+ /**
35
+ * Sets an object's opacity.
36
+ */
37
+ setObjectOpacity(object: THREE.Object3D, opacity: number): void;
38
+ /**
39
+ * Sets an object's opacity.
40
+ */
41
+ setOtherObjectsOpacity(object: THREE.Object3D, opacity: number): void;
42
+ /**
43
+ * Clears an object's opacity.
44
+ */
45
+ clearObjectOpacity(object: THREE.Object3D): void;
46
+ /**
47
+ * Sets a model's opacity.
48
+ */
49
+ setModelOpacity(modelId: string): void;
50
+ /**
51
+ * Clears a model's opacity.
52
+ */
53
+ clearModelOpacity(modelId: string): void;
54
+ /**
55
+ * Sets all models' opacity.
56
+ */
57
+ setModelsOpacity(opacity: number): void;
58
+ /**
59
+ * Clears all models' opacity.
60
+ */
61
+ clearModelsOpacity(): void;
62
+ /**
63
+ * Sets an object's visibility.
64
+ */
65
+ setObjectVisible(object: THREE.Object3D, visible: boolean): void;
66
+ /**
67
+ * Hides all other objects except the given one.
68
+ */
69
+ hideOtherObjects(object: THREE.Object3D): void;
70
+ /**
71
+ * Sets a model's visibility.
72
+ */
73
+ setModelVisible(modelId: string, visible: boolean): void;
74
+ /**
75
+ * Sets all models' visibility.
76
+ */
77
+ setModelsVisible(visible: boolean): void;
78
+ /**
79
+ * Enables/disables outline for a model.
80
+ */
81
+ enableModelOutline(modelId: string, enable: boolean): void;
82
+ /**
83
+ * Enables/disables outline for all models.
84
+ */
85
+ enableModelsOutline(enable: boolean): void;
86
+ /**
87
+ * Highlights an object.
88
+ * TODO: support merged object and InstancedMesh
89
+ */
90
+ setObjectHighlight(object: THREE.Object3D): void;
91
+ clearHighlight(): void;
92
+ /**
93
+ * Sets all materials to double sided.
94
+ */
95
+ setDoubleSidedMaterials(): void;
96
+ /**
97
+ * Reverts all materials to their original side.
98
+ */
99
+ revertDoubleSidedMaterials(): void;
100
+ clearSelection(): void;
101
+ /**
102
+ * Gets if selection is enabled.
103
+ */
104
+ get enableSelection(): boolean;
105
+ /**
106
+ * Sets if selection is enabled.
107
+ */
108
+ set enableSelection(enable: boolean);
109
+ /**
110
+ * Checks if there is any visible object.
111
+ */
112
+ hasVisibleObject(): boolean;
113
+ /**
114
+ * Checks if there is any invisible object.
115
+ */
116
+ hasInvisibleObject(): boolean;
117
+ enableSsao(enable: boolean): void;
118
+ getSsaoEnabled(): boolean;
119
+ setEnvironmentData(data?: Uint16Array): Promise<void>;
120
+ setEnvironment(hdrUrl: string): Promise<void>;
121
+ showVertexNormals(show: boolean, size?: number): void;
122
+ getLights(): {
123
+ sun: THREE.DirectionalLight;
124
+ ambient: THREE.Object3D<THREE.Object3DEventMap> | undefined;
125
+ hemisphere: THREE.Object3D<THREE.Object3DEventMap> | undefined;
126
+ };
127
+ debugLights(enable: boolean): void;
128
+ setModelClipPlanes(modelId: number, planes: THREE.Plane[]): void;
129
+ setGlobalClipPlanes(planes: THREE.Plane[]): void;
130
+ }
@@ -0,0 +1,143 @@
1
+ import { IsolateObjectsParam, ModelConfig } from '../../core/Configs';
2
+ import { CameraControlsEx } from '../../core/controls/CameraControlsEx';
3
+ import { ModelData3d } from '../../core/model';
4
+ import * as THREE from "three";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare enum ViewerMode {
9
+ Browser = 0,
10
+ Browserless = 1,
11
+ Headless = 2
12
+ }
13
+ /**
14
+ * @internal
15
+ */
16
+ export declare class Viewer3dLite {
17
+ containerOrCanvas: HTMLDivElement | any;
18
+ glContext?: WebGLRenderingContext | WebGL2RenderingContext;
19
+ camera?: THREE.PerspectiveCamera;
20
+ scene: THREE.Scene;
21
+ renderer?: THREE.WebGLRenderer;
22
+ renderTarget?: THREE.WebGLRenderTarget;
23
+ controls?: CameraControlsEx;
24
+ selectedObject: any | undefined;
25
+ loadedModels: ModelData3d[];
26
+ pmremGenerator?: THREE.PMREMGenerator;
27
+ private clock;
28
+ private viewerMode;
29
+ private raycaster?;
30
+ private savedMaterialsForOpacity?;
31
+ private jobCount;
32
+ private bbox;
33
+ private outlineMaterial;
34
+ private outlineRoot;
35
+ private transparentObjectIds;
36
+ private requestAnimationFrameHandle?;
37
+ constructor(containerOrCanvas: HTMLDivElement | any, viewerMode?: ViewerMode, glContext?: WebGLRenderingContext | WebGL2RenderingContext);
38
+ /**
39
+ * Initialize everything it needs
40
+ */
41
+ init(): void;
42
+ private initScene;
43
+ private isBrowserlessMode;
44
+ private isBrowserMode;
45
+ private initRenderer;
46
+ private initCamera;
47
+ private initControls;
48
+ private initLights;
49
+ /**
50
+ * Initialize mouse/pointer events
51
+ */
52
+ private initPointerEvents;
53
+ animate(): void;
54
+ destroy(): void;
55
+ loadLocalModel(url: string, modelCfg: ModelConfig, onProgress?: (event: ProgressEvent) => void): Promise<void>;
56
+ /**
57
+ * We don't plan to support onProgress really well in this class.
58
+ */
59
+ loadModel(modelCfg: ModelConfig, onProgress?: (event: ProgressEvent) => void): Promise<void>;
60
+ parseGltf(data: ArrayBuffer | string, modelCfg: ModelConfig, onSuccess: (object: THREE.Object3D) => void, onError?: (event: ErrorEvent) => void): void;
61
+ /**
62
+ * Applies options and add object to scene.
63
+ */
64
+ applyOptionsAndAddToScene: (url: string, object: THREE.Object3D, modelCfg: ModelConfig, onProgress?: ((event: ProgressEvent) => void) | undefined) => Promise<void>;
65
+ /**
66
+ *
67
+ * @param model
68
+ * @returns
69
+ * @description Add model data to viewer.
70
+ */
71
+ addModel(model: ModelData3d): void;
72
+ /**
73
+ * We won't set a opacity or highlight directly, because that way will lose model's original opacity or color value
74
+ * @param isAdd is add or remove the opacity we added
75
+ * @param opacity
76
+ */
77
+ addOrRemoveObjectOpacity(isAdd?: boolean, opacity?: number, includeObjectIds?: number[], excludeObjectIds?: number[]): void;
78
+ hasTransparentObject(): boolean;
79
+ /**
80
+ * Gets intersections by given mouse location.
81
+ * If no MouseEvent is passed in, use (0, 0) as the raycaster's origin.
82
+ */
83
+ private getIntersections;
84
+ /**
85
+ * Handles mouse click event
86
+ */
87
+ private handleMouseClick;
88
+ selectObject(object?: THREE.Object3D): void;
89
+ /**
90
+ * Clears the current selection
91
+ */
92
+ clearSelection(): void;
93
+ /**
94
+ * Make camera fly to objects
95
+ */
96
+ flyToObjects(objects: THREE.Object3D[]): void;
97
+ /**
98
+ * Make camera fly to an object
99
+ */
100
+ flyToObject(object: THREE.Object3D): void;
101
+ /**
102
+ * Flies to current selected object if any
103
+ */
104
+ flyToSelectedObject(): void;
105
+ /**
106
+ * Make camera fly to target position with given lookAt position
107
+ * @param position camera's target position
108
+ * @param lookAt camera's new lookAt position
109
+ */
110
+ flyTo(position: THREE.Vector3 | number[], lookAt: THREE.Vector3 | number[], onCompleteCallback?: () => void): void;
111
+ goToHomeView(): void;
112
+ /**
113
+ * Sets environment for the scene.
114
+ * @param data Uint16Array of the hdr content
115
+ */
116
+ setEnvironmentFromDataArray(data?: Uint16Array): void;
117
+ /**
118
+ * Tries to adjust camera near/far clip plane according to objects size in scene.
119
+ * Do this to avoid the case when objects are too small or big thus clipped!
120
+ */
121
+ private tryAdjustCameraNearAndFar;
122
+ isolateObjects(params: IsolateObjectsParam[]): void;
123
+ private getMeshes;
124
+ /**
125
+ * Increases job count, and show spinner accordingly
126
+ */
127
+ increaseJobCount(): void;
128
+ /**
129
+ * Decreases job count, and hide spinner accordingly
130
+ */
131
+ decreaseJobCount(): void;
132
+ /**
133
+ * Compute bounding box of loaded models
134
+ */
135
+ computeBoundingBox(): THREE.Box3;
136
+ getContext(): WebGLRenderingContext | WebGL2RenderingContext | undefined;
137
+ getCameraDirection(): {
138
+ x: number;
139
+ y: number;
140
+ z: number;
141
+ };
142
+ setFov(fov: number): void;
143
+ }