@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,23 @@
1
+ export declare class BinaryReader {
2
+ private endian;
3
+ private position;
4
+ private data;
5
+ private decoder;
6
+ constructor(arraybuffer: ArrayBuffer, endian?: string);
7
+ readAsciiString(length: number): string;
8
+ readUtf8String(length: number): string;
9
+ readBytes(length?: number): Uint8Array;
10
+ readUint8(): number;
11
+ readInt8(): number;
12
+ readUint16(): number;
13
+ readInt16(): number;
14
+ readUint32(): number;
15
+ readInt32(): number;
16
+ readFloat32(): number;
17
+ readFloat64(): number;
18
+ readInt64(): number;
19
+ readUint64(): number;
20
+ getPosition(): number;
21
+ setPosition(position: number): void;
22
+ isEnd(): boolean;
23
+ }
@@ -0,0 +1,44 @@
1
+ import * as THREE from "three";
2
+ import { Tooltip } from "../../components/tool-tip";
3
+ import { mouseButtonAction, singleTouchAction } from "../../core/camera-controls/types";
4
+ import type { EventInfo, InputManager } from "../../core/input-manager/InputManager";
5
+ import type { BaseViewer } from "../../core/viewers";
6
+ /**
7
+ * Box select an area in screen coordinate.
8
+ * @internal
9
+ */
10
+ export declare class BoxSelectHelper {
11
+ static readonly BORDER_COLOR = "#fff000";
12
+ static readonly BORDER_WIDTH = "2px";
13
+ protected viewer: BaseViewer;
14
+ protected input: InputManager;
15
+ protected mouseDown: boolean;
16
+ protected mouseMove: boolean;
17
+ protected mouseDownPositionX: number;
18
+ protected mouseDownPositionY: number;
19
+ protected tempKey?: mouseButtonAction;
20
+ protected tempTouch?: singleTouchAction;
21
+ protected tempEnableRotate: boolean;
22
+ protected rectDom?: HTMLDivElement;
23
+ protected tooltip?: Tooltip;
24
+ private active;
25
+ protected resolve?: (value: THREE.Box2 | PromiseLike<THREE.Box2> | undefined) => void;
26
+ protected reject?: (reason: any) => void;
27
+ protected isResolvedOrRejected: boolean;
28
+ constructor(viewer: BaseViewer);
29
+ private get viewerContainer();
30
+ isActive(): boolean;
31
+ activate(): void;
32
+ deactivate(): void;
33
+ private mousedown;
34
+ private mousemove;
35
+ private mouseup;
36
+ keydown: (e: EventInfo) => void;
37
+ private drawRect;
38
+ private setRectDomVisible;
39
+ /**
40
+ * Starts to select a box area
41
+ */
42
+ select(): Promise<THREE.Box2 | undefined>;
43
+ destroy(): void;
44
+ }
@@ -0,0 +1,26 @@
1
+ import * as THREE from "three";
2
+ /**
3
+ * InstantiateHelper class is used to instantiate child objects for a given object
4
+ * @internal
5
+ */
6
+ export declare class InstantiateHelper {
7
+ object: THREE.Object3D;
8
+ constructor(object: THREE.Object3D);
9
+ /**
10
+ * Instatiates child objects for given object.
11
+ */
12
+ instantiate(): void;
13
+ /**
14
+ * Instatiates child objects of given object.
15
+ * If objects' geometry and material are the same, they can be instanced.
16
+ */
17
+ private instantiateInner;
18
+ /**
19
+ * Removes a number from array
20
+ */
21
+ removeFromArray(arr: number[], toBeRemoved: number): void;
22
+ /**
23
+ * Checks if two geometries equal
24
+ */
25
+ private geometryEquals;
26
+ }
@@ -0,0 +1,65 @@
1
+ import * as THREE from "three";
2
+ import type { DxfData, DxfLoaderConfig } from "../../core/dxf";
3
+ import type { FontManager } from "../../core/font";
4
+ export declare class LoadingHelper {
5
+ private static DecoderPath;
6
+ private static Rhino3dmLibraryPath;
7
+ private gltfLoader?;
8
+ private font?;
9
+ private manager?;
10
+ constructor(manager?: THREE.LoadingManager);
11
+ setLoadManager(manager?: THREE.LoadingManager): void;
12
+ /**
13
+ * Loads a model from local
14
+ * @param url Created by URL.createObjectURL(file)
15
+ * @param src Source filename, used to find out format
16
+ * @param onProgress On progress callback
17
+ * @returns Loaded object
18
+ */
19
+ loadLocalModel(url: string, src: string, onProgress?: (event: ProgressEvent) => void, mtlUrls?: string[]): Promise<THREE.Object3D>;
20
+ loadModel(src: string, fileFormat?: string, onProgress?: (event: ProgressEvent) => void): Promise<THREE.Object3D | void>;
21
+ loadGltf(url: string, onProgress?: (event: ProgressEvent) => void): Promise<THREE.Object3D>;
22
+ parseGltf(data: ArrayBuffer | string, path: string, onLoad: (object: THREE.Object3D) => void, onError?: (event: ErrorEvent) => void): void;
23
+ loadFbx(url: string, onProgress?: (event: ProgressEvent) => void): Promise<THREE.Object3D>;
24
+ /**
25
+ *
26
+ * @param mtlUrls This is only useful when loading obj from local.
27
+ */
28
+ loadObj(url: string, onProgress?: (event: ProgressEvent) => void, mtlUrls?: string[]): Promise<THREE.Object3D>;
29
+ loadStl(url: string, onProgress?: (event: ProgressEvent) => void): Promise<THREE.Object3D>;
30
+ loadShp(url: string, onProgress?: (event: ProgressEvent) => void): Promise<THREE.Object3D>;
31
+ loadDae(url: string, onProgress?: (event: ProgressEvent) => void): Promise<THREE.Object3D>;
32
+ /**
33
+ * Loads rhino 3dm file.
34
+ */
35
+ load3dm(url: string, onProgress?: (event: ProgressEvent) => void): Promise<THREE.Object3D>;
36
+ loadDxf(url: string, onProgress?: (event: ProgressEvent) => void): Promise<THREE.Object3D>;
37
+ /**
38
+ * Loads dxf data, including entities, tables(layers, blocks), etc.
39
+ * The difference from loadDxf includes
40
+ * - It can pass in DxfLoaderConfig.
41
+ * - It can read from localCache in case dxfDataId is passed in and enableLocalCache is true.
42
+ */
43
+ loadDxfEx(url: string, dxfDataId?: string, onProgress?: (event: ProgressEvent) => void, onLoad?: () => void, cfg?: DxfLoaderConfig): Promise<DxfData>;
44
+ loadPly(url: string, onProgress?: (event: ProgressEvent) => void): Promise<THREE.Object3D>;
45
+ /**
46
+ * It is kind of tricky to load image into scene, but we'll do this by creating a sprite.
47
+ */
48
+ loadImage(url: string, onProgress?: (event: ProgressEvent) => void): Promise<THREE.Object3D>;
49
+ /**
50
+ * Sets font.
51
+ * Font is required for Viewer2d to view Chinese, etc.
52
+ */
53
+ setFont(font: FontManager): void;
54
+ /**
55
+ * Sets decoder path for draco loader.
56
+ * @param path e.g., "libs/draco/gltf/"
57
+ */
58
+ static setDracoDecoderPath(path: string): void;
59
+ /**
60
+ * Sets decoder path for draco loader.
61
+ * @param path e.g., "libs/rhino3dm/"
62
+ */
63
+ static setRhino3dmLibraryPath(path: string): void;
64
+ private getGltfLoader;
65
+ }
@@ -0,0 +1,15 @@
1
+ import * as THREE from "three";
2
+ import { BvhParameter } from "../../core/workers";
3
+ /**
4
+ * Bvh: Bounding volume hierarchy
5
+ */
6
+ export declare class MeshBvhHelper {
7
+ private running;
8
+ private workers;
9
+ constructor(workerCount?: number);
10
+ isRunning(): boolean;
11
+ generate(geometries: THREE.BufferGeometry[], params?: BvhParameter): Promise<void>;
12
+ dispose(): void;
13
+ static createMeshBvhSync(objects: THREE.Object3D[], params?: BvhParameter): void;
14
+ static createMeshBvhAsync(objects: THREE.Object3D[], params?: BvhParameter): Promise<void>;
15
+ }
@@ -0,0 +1,26 @@
1
+ import * as THREE from "three";
2
+ import { Drawable } from "../../core/canvas";
3
+ import { EventInfo } from "../../core/input-manager/InputManager";
4
+ /**
5
+ * Touch helper for mobile
6
+ */
7
+ export declare class MobileTouchHelperDrawable extends Drawable {
8
+ private position;
9
+ needsFrustumCulled: boolean;
10
+ renderOrder: number;
11
+ constructor(position: THREE.Vector2);
12
+ setPosition(position: THREE.Vector2): void;
13
+ isPointInPath(p: THREE.Vector3, raycaster?: THREE.Raycaster | undefined): boolean;
14
+ draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
15
+ drawInnerCircle(ctx: CanvasRenderingContext2D): void;
16
+ drawOuterRing(ctx: CanvasRenderingContext2D): void;
17
+ drawSnapTriangle(ctx: CanvasRenderingContext2D): void;
18
+ translate(tx: number, ty: number): void;
19
+ getTouchPoint(): {
20
+ x: number;
21
+ y: number;
22
+ };
23
+ isIntersect(e: EventInfo): boolean;
24
+ drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
25
+ getClassType(): string;
26
+ }
@@ -0,0 +1,159 @@
1
+ import * as THREE from "three";
2
+ import { CanvasRender, Drawable, DrawableList } from "../../core/canvas";
3
+ import { ILine, OSnapMarkerType } from "../../core/utils";
4
+ export declare class SnapDrawable extends Drawable {
5
+ static lineColor: string;
6
+ static readonly FILL_COLOR_NONE = "rgba(0, 0, 0, 0)";
7
+ static readonly SNAP_LINE_COLOR = "rgba(255, 240, 0, 0.3)";
8
+ static lineWidth: number;
9
+ static iconSize: number;
10
+ needsFrustumCulled: boolean;
11
+ renderOrder: number;
12
+ snapType: OSnapMarkerType;
13
+ private osnapInfo?;
14
+ private drawSnapFunctions;
15
+ private snapLineVisible;
16
+ constructor(type: OSnapMarkerType);
17
+ setSnapLineVisible(visible: boolean): void;
18
+ draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
19
+ drawDebug(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
20
+ drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
21
+ isPointInPath(p: THREE.Vector3): boolean;
22
+ getVertexes(): THREE.Vector3[];
23
+ drawSnapLine(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
24
+ /**
25
+ * p1
26
+ * |
27
+ * | point (origin)
28
+ * / \
29
+ * / \
30
+ * p2 p3
31
+ */
32
+ drawTripleCorss(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
33
+ drawSquare(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
34
+ drawTriangle(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
35
+ /**
36
+ * Snap marker for circle center.
37
+ */
38
+ drawCircleWithCross(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
39
+ drawCross(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
40
+ /**
41
+ * p4|\
42
+ * | \
43
+ * p2|____\ p1 (origin)
44
+ * | | \
45
+ * |____|___\
46
+ * P5 p3 P6
47
+ */
48
+ drawPerpendicular(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
49
+ update(osnapInfo: OSnapInfo): void;
50
+ getClassType(): string;
51
+ }
52
+ export declare enum OSnapType {
53
+ None = 0,
54
+ Vertex = 1,
55
+ MiddlePoint = 2,
56
+ Edge = 4,
57
+ Face = 8,
58
+ FootOfPerpendicular = 16,
59
+ Intersection = 32,
60
+ CircleCenter = 64
61
+ }
62
+ interface OSnapInfo {
63
+ point: THREE.Vector3;
64
+ distance: number;
65
+ type: OSnapType;
66
+ line?: ILine;
67
+ }
68
+ export declare class OSnapHelper {
69
+ protected drawableList: DrawableList;
70
+ protected overlayRender?: CanvasRender;
71
+ protected markers: Record<number, SnapDrawable>;
72
+ protected activeOSnapType: OSnapType;
73
+ protected snapToleranceInWorldCoord: number;
74
+ protected intersectionLimit: number;
75
+ /**
76
+ * OSnapType priority. Lower value has a higher priority.
77
+ */
78
+ osnapTypePriorities: Record<OSnapType, number>;
79
+ protected enabledOSnapTypes: number;
80
+ constructor(overlayRender: CanvasRender);
81
+ private initOSnapMarkers;
82
+ /**
83
+ * If a specific OSnapType is enabled.
84
+ */
85
+ isOSnapTypeEnabled(type: OSnapType): boolean;
86
+ /**
87
+ * Enables a specific OSnapType.
88
+ */
89
+ setOSnapTypeEnabled(type: OSnapType, enabled: boolean): void;
90
+ /**
91
+ * Sets snap tolerance in world coordinate.
92
+ */
93
+ setSnapTolerance(toleranceInWorldCoord: number): void;
94
+ /**
95
+ * Gets snap tolerance in world coordinate.
96
+ */
97
+ getSnapTolerance(): number;
98
+ setIntersectionLimit(val: number): void;
99
+ getIntersectionLimit(): number;
100
+ /**
101
+ * Gets osnap marker line color.
102
+ * @returns rgb/rgba number array, each value is between 0 and 1. e.g. [0.92, 0.95, 0.96].
103
+ */
104
+ getMarkerLineColor(): number[];
105
+ /**
106
+ * Sets osnap marker line color.
107
+ * @param color rgb/rgba number array, each value is between 0 and 1. e.g. [0.92, 0.95, 0.96].
108
+ */
109
+ setMarkerLineColor(color: number[]): void;
110
+ /**
111
+ * Gets osnap marker line width.
112
+ */
113
+ getMarkerLineWidth(): number;
114
+ /**
115
+ * Sets osnap marker line width.
116
+ */
117
+ setMarkerLineWidth(width: number): void;
118
+ /**
119
+ * Gets osnap marker icon size in pixel.
120
+ */
121
+ getMarkerIconSize(): number;
122
+ /**
123
+ * Sets osnap marker icon size in pixel.
124
+ */
125
+ setMarkerIconSize(size: number): void;
126
+ getMarker(type: OSnapType): SnapDrawable;
127
+ setAllSnapLinesVisible(visible: boolean): void;
128
+ deactivate(): void;
129
+ destroy(): void;
130
+ /**
131
+ * Tries to find a proper snap point and display corresponding marker.
132
+ * @param intersections The raycaster intersections, must have been sorted by distance.
133
+ * @param is3d If it is a 3d or 2d viewer.
134
+ * @param lastMouseDownPosition Used in order to to get foot of perpendicular.
135
+ * @returns Target snap point if any
136
+ */
137
+ handleSnap(rayCasterResult: THREE.Intersection[], is3d: boolean, lastMouseDownPosition?: THREE.Vector3): THREE.Vector3 | undefined;
138
+ /**
139
+ * Tries to find a proper snap point and display corresponding marker.
140
+ * @param mousePosition Mouse position in world coordinate.
141
+ * @param intersections
142
+ * @param is3d If it is a 3d or 2d viewer.
143
+ * @param lastMouseDownPosition Used in order to to get foot of perpendicular.
144
+ * @returns Target snap point if any
145
+ */
146
+ protected getSnapPointAndUpdateMarker(mousePosition: THREE.Vector3, intersections: THREE.Intersection[], is3d: boolean, lastMouseDownPosition?: THREE.Vector3): THREE.Vector3 | undefined;
147
+ activateMarker(type: OSnapType, osnapInfo?: OSnapInfo): void;
148
+ private getFootOfPerpendicular;
149
+ private getSnapInfo;
150
+ private getOsnapInfoListFromMesh;
151
+ private getOsnapInfoFromSegment;
152
+ private getOsnapInfoListFromLine;
153
+ private getOsnapInfoListFromPoint;
154
+ /**
155
+ * Used for 3d scene to get outline info by faces.
156
+ */
157
+ private getIntersectsIncludeOutline;
158
+ }
159
+ export {};
@@ -0,0 +1,13 @@
1
+ import * as THREE from "three";
2
+ import CameraControls from "../../core/camera-controls";
3
+ /**
4
+ * Helper class to adjust object visual size
5
+ */
6
+ export declare class ObjectPixelSizeHelper {
7
+ private object;
8
+ private camera;
9
+ targetPixelHeight: number;
10
+ canvasHeight: number;
11
+ constructor(camera: THREE.Camera, controls: CameraControls, object: THREE.Object3D, targetPixelHeight: number, canvasHeight: number);
12
+ adjustSize(): void;
13
+ }
@@ -0,0 +1,29 @@
1
+ import * as THREE from "three";
2
+ import { Tooltip } from "../../components/tool-tip";
3
+ import { EventInfo } from "../../core/input-manager/InputManager";
4
+ import type { BaseViewer } from "../../core/viewers";
5
+ /**
6
+ * Box select an area in screen coordinate.
7
+ * @internal
8
+ */
9
+ export declare class PickMarkupHelper {
10
+ protected viewer: BaseViewer;
11
+ private active;
12
+ protected tooltip?: Tooltip;
13
+ protected resolve?: (value: THREE.Box2 | PromiseLike<THREE.Box2> | undefined) => void;
14
+ protected reject?: (reason: any) => void;
15
+ protected isResolvedOrRejected: boolean;
16
+ constructor(viewer: BaseViewer);
17
+ private get viewerContainer();
18
+ private get camera();
19
+ isActive(): boolean;
20
+ private mouseClicked;
21
+ activate(): void;
22
+ deactivate(): void;
23
+ keydown: (e: EventInfo) => void;
24
+ /**
25
+ * Starts to pick a markup area.
26
+ */
27
+ pick(): Promise<THREE.Box2 | undefined>;
28
+ destroy(): void;
29
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * This class implemented setTimeout and setInterval using RequestAnimationFrame
3
+ * This code references to
4
+ * https://github.com/aisriver/myHome3D/blob/master/src/utils/RAF.ts
5
+ * @internal
6
+ */
7
+ export declare class RafHelper {
8
+ readonly TIMEOUT = "timeout";
9
+ readonly INTERVAL = "interval";
10
+ private timeoutMap;
11
+ private intervalMap;
12
+ private run;
13
+ private setIdMap;
14
+ setTimeout(cb: () => void, interval: number): symbol;
15
+ clearTimeout(timer: symbol): void;
16
+ setInterval(cb: () => void, interval: number): symbol;
17
+ clearInterval(timer: symbol): void;
18
+ }
@@ -0,0 +1,20 @@
1
+ import * as THREE from "three";
2
+ import type { BaseViewer } from "../../core/viewers";
3
+ export declare class ZoomToRectHelper {
4
+ protected viewer: BaseViewer;
5
+ private boxSelectHelper?;
6
+ private active;
7
+ constructor(viewer: BaseViewer);
8
+ private get viewerContainer();
9
+ get camera(): THREE.OrthographicCamera | THREE.PerspectiveCamera;
10
+ get raycaster(): THREE.Raycaster;
11
+ isActive(): boolean;
12
+ activate(): void;
13
+ deactivate(): void;
14
+ /**
15
+ * Picks and get world position by screen position.
16
+ */
17
+ protected pickPositionByScreenPoint(p: THREE.Vector2): THREE.Vector3 | undefined;
18
+ protected handleZoomToRect(leftTop: THREE.Vector2, rightBottom: THREE.Vector2): void;
19
+ destroy(): void;
20
+ }
@@ -0,0 +1,11 @@
1
+ export * from "./InstantiateHelper";
2
+ export * from "./RafHelper";
3
+ export * from "./BinaryReader";
4
+ export * from "./LoadingHelper";
5
+ export * from "./MeshBvhHelper";
6
+ export * from "./ObjectPixelSizeHelper";
7
+ export * from "./OSnapHelper";
8
+ export * from "./PickMarkupHelper";
9
+ export * from "./BoxSelectHelper";
10
+ export * from "./ZoomToRectHelper";
11
+ export * from "./MobileTouchHelperDrawable";
@@ -0,0 +1,24 @@
1
+ export * from "./patches";
2
+ export * from "./canvas";
3
+ export * from "./compare";
4
+ export * from "./components";
5
+ export * from "./controls";
6
+ export * from "./dxf";
7
+ export * from "./dxf-parser";
8
+ export * from "./effect";
9
+ export * from "./geometry-offset";
10
+ export * from "./helpers";
11
+ export * from "./input-manager";
12
+ export * from "./interactions";
13
+ export * from "./text-texture";
14
+ export * from "./font";
15
+ export * from "./pick";
16
+ export * from "./utils";
17
+ export * from "./model";
18
+ export * from "./viewers";
19
+ export * from "./workers";
20
+ export * from "./undo";
21
+ export * from "./Configs";
22
+ export * from "./Constants";
23
+ export * from "./Units";
24
+ export * from "./VersionManager";
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Table is known as ObjectStore in IndexedDb
3
+ */
4
+ export declare class BaseTable {
5
+ db?: IDBDatabase;
6
+ isCreatingTable: boolean;
7
+ constructor();
8
+ /**
9
+ * Derived class have to override this method and return a table name!
10
+ */
11
+ tableName(): string;
12
+ /**
13
+ * Adds a record to a table
14
+ */
15
+ add(record: any, successCallback?: any, errorCallback?: any): void;
16
+ /**
17
+ * Saves a record
18
+ */
19
+ save(record: any, successCallback?: any, errorCallback?: any): void;
20
+ /**
21
+ * Deletes a record
22
+ */
23
+ delete(key: string, successCallback?: any, errorCallback?: any): void;
24
+ /**
25
+ * Updates a record
26
+ */
27
+ update(): void;
28
+ /**
29
+ * Queries records in a table
30
+ * @param cursorHandler callback to handle records one by one
31
+ */
32
+ query(cursorHandler?: any, errorCallback?: any): void;
33
+ queryByIndex(indexName: any, indexValue: any, successCallback?: any, errorCallback?: any): void;
34
+ queryAll(successCallback?: any, errorCallback?: any): void;
35
+ clearAll(successCallback?: any, errorCallback?: any): void;
36
+ }
@@ -0,0 +1,22 @@
1
+ import { BaseTable } from "./BaseTable";
2
+ export interface DxfDataTableRecord {
3
+ dxfDataId: string;
4
+ dxf: object;
5
+ }
6
+ /**
7
+ * DxfDataTable in IndexedDb
8
+ * Table is known as ObjectStore in IndexedDb
9
+ */
10
+ export declare class DxfDataTable extends BaseTable {
11
+ tableName(): string;
12
+ /**
13
+ * Singleton design pattern
14
+ */
15
+ private static _instance;
16
+ static instance(): DxfDataTable;
17
+ /**
18
+ * Queires a dxf data
19
+ * @param dxfDataId should be a unique id to identify different dxf files
20
+ */
21
+ query(dxfDataId: string, successCallback?: any, errorCallback?: any): void;
22
+ }
@@ -0,0 +1,32 @@
1
+ import { BaseTable } from "./BaseTable";
2
+ import type { Orientation, ShxFontType } from "../../core/font/shx";
3
+ export interface FontDataTableRecord {
4
+ fontType?: ShxFontType;
5
+ order: number;
6
+ data: Record<number, Uint8Array>;
7
+ info: string;
8
+ orientation: Orientation;
9
+ baseUp: number;
10
+ baseDown: number;
11
+ fileName: string;
12
+ fileHeader: string;
13
+ fileVersion: string;
14
+ }
15
+ /**
16
+ * DxfDataTable in IndexedDb
17
+ * Table is known as ObjectStore in IndexedDb
18
+ */
19
+ export declare class FontDataTable extends BaseTable {
20
+ tableName(): string;
21
+ /**
22
+ * Singleton design pattern
23
+ */
24
+ private static _instance;
25
+ static instance(): FontDataTable;
26
+ /**
27
+ * Queires a dxf data
28
+ * @param fileId should be a unique id to identify different dxf files
29
+ */
30
+ query(fileName: string): Promise<FontDataTableRecord>;
31
+ queryAll(): Promise<FontDataTableRecord[]>;
32
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Definition of an indexeddb table
3
+ */
4
+ export interface IndexedDbTable {
5
+ name: string;
6
+ options?: IDBObjectStoreParameters;
7
+ indexArray?: {
8
+ name: string;
9
+ fields: string[];
10
+ unique: boolean;
11
+ }[];
12
+ }
13
+ /**
14
+ * IndexedDb manager.
15
+ */
16
+ export declare class IndexedDbManager {
17
+ private readonly DATABASE_NAME;
18
+ /**
19
+ * Default tables.
20
+ */
21
+ private readonly DEFAULT_TABLES;
22
+ private db?;
23
+ private tables;
24
+ /**
25
+ * Singleton design pattern
26
+ */
27
+ private static _instance;
28
+ static instance(): IndexedDbManager;
29
+ /**
30
+ * Sets indexeddb tables. This should be called before getDatabase() is called.
31
+ */
32
+ setTables(tables: IndexedDbTable[]): void;
33
+ /**
34
+ * Gets indexeddb tables.
35
+ */
36
+ getTables(): IndexedDbTable[];
37
+ /**
38
+ * Makes sure to open database, and the table is already created before add/put/delete, etc.
39
+ */
40
+ getDatabase(): Promise<IDBDatabase>;
41
+ /**
42
+ * Closes the database.
43
+ */
44
+ closeDatabase(): void;
45
+ private deleteDataBase;
46
+ private getDB;
47
+ private getUpgradedDB;
48
+ private createTable;
49
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./BaseTable";
2
+ export * from "./IndexedDbManager";
3
+ export * from "./DxfDataTable";
4
+ export * from "./FontDataTable";