dxfview 0.0.2

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 (258) hide show
  1. package/README.md +1 -0
  2. package/dist/dxfview.esm.min.js +7 -0
  3. package/dist/types/components/dxf-layout-bar/DxfLayoutBar.d.ts +26 -0
  4. package/dist/types/components/dxf-layout-bar/index.d.ts +1 -0
  5. package/dist/types/components/pop-panel/PopPanel.d.ts +14 -0
  6. package/dist/types/components/pop-panel/index.d.ts +1 -0
  7. package/dist/types/components/progress-bar/ProgressBar.d.ts +34 -0
  8. package/dist/types/components/progress-bar/index.d.ts +1 -0
  9. package/dist/types/components/settings/ProjectSettingsDef.d.ts +44 -0
  10. package/dist/types/components/settings/index.d.ts +1 -0
  11. package/dist/types/components/tool-tip/Tooltip.d.ts +20 -0
  12. package/dist/types/components/tool-tip/index.d.ts +1 -0
  13. package/dist/types/core/Configs.d.ts +238 -0
  14. package/dist/types/core/Constants.d.ts +164 -0
  15. package/dist/types/core/Units.d.ts +16 -0
  16. package/dist/types/core/VersionManager.d.ts +3 -0
  17. package/dist/types/core/camera-controls/CameraControls.d.ts +773 -0
  18. package/dist/types/core/camera-controls/Constants.d.ts +2 -0
  19. package/dist/types/core/camera-controls/EventDispatcher.d.ts +41 -0
  20. package/dist/types/core/camera-controls/index.d.ts +2 -0
  21. package/dist/types/core/camera-controls/types.d.ts +112 -0
  22. package/dist/types/core/camera-controls/utils/extractClientCoordFromEvent.d.ts +3 -0
  23. package/dist/types/core/camera-controls/utils/math-utils.d.ts +11 -0
  24. package/dist/types/core/camera-controls/utils/notSupportedInOrthographicCamera.d.ts +2 -0
  25. package/dist/types/core/canvas/CanvasRender.d.ts +52 -0
  26. package/dist/types/core/canvas/Constants.d.ts +28 -0
  27. package/dist/types/core/canvas/Drawable.d.ts +87 -0
  28. package/dist/types/core/canvas/DrawableList.d.ts +29 -0
  29. package/dist/types/core/canvas/index.d.ts +4 -0
  30. package/dist/types/core/compare/BaseDxfCompareHelper.d.ts +104 -0
  31. package/dist/types/core/compare/CompareDrawable.d.ts +17 -0
  32. package/dist/types/core/compare/DxfCompareHelper.d.ts +69 -0
  33. package/dist/types/core/compare/DxfCompareMarkupManager.d.ts +11 -0
  34. package/dist/types/core/compare/index.d.ts +4 -0
  35. package/dist/types/core/controls/CameraControlsEx.d.ts +34 -0
  36. package/dist/types/core/controls/index.d.ts +1 -0
  37. package/dist/types/core/dxf/DxfCompare.d.ts +151 -0
  38. package/dist/types/core/dxf/DxfConstants.d.ts +15 -0
  39. package/dist/types/core/dxf/DxfLoader.d.ts +526 -0
  40. package/dist/types/core/dxf/DxfObject.d.ts +32 -0
  41. package/dist/types/core/dxf/DxfUtils.d.ts +79 -0
  42. package/dist/types/core/dxf/HatchPatternShaders.d.ts +12 -0
  43. package/dist/types/core/dxf/LinePatternShaders.d.ts +12 -0
  44. package/dist/types/core/dxf/bspline.d.ts +8 -0
  45. package/dist/types/core/dxf/dxfom-mtext.d.ts +46 -0
  46. package/dist/types/core/dxf/dxfom-text.d.ts +16 -0
  47. package/dist/types/core/dxf/index.d.ts +10 -0
  48. package/dist/types/core/dxf/round10.d.ts +2 -0
  49. package/dist/types/core/dxf-parser/AutoCadColorIndex.d.ts +8 -0
  50. package/dist/types/core/dxf-parser/DxfBaseReader.d.ts +12 -0
  51. package/dist/types/core/dxf-parser/DxfBinaryReader.d.ts +14 -0
  52. package/dist/types/core/dxf-parser/DxfParser.d.ts +327 -0
  53. package/dist/types/core/dxf-parser/DxfTextReader.d.ts +31 -0
  54. package/dist/types/core/dxf-parser/ParseHelpers.d.ts +36 -0
  55. package/dist/types/core/dxf-parser/entities/3dface.d.ts +11 -0
  56. package/dist/types/core/dxf-parser/entities/arc.d.ts +16 -0
  57. package/dist/types/core/dxf-parser/entities/attdef.d.ts +31 -0
  58. package/dist/types/core/dxf-parser/entities/attrib.d.ts +31 -0
  59. package/dist/types/core/dxf-parser/entities/circle.d.ts +13 -0
  60. package/dist/types/core/dxf-parser/entities/dimension.d.ts +22 -0
  61. package/dist/types/core/dxf-parser/entities/ellipse.d.ts +15 -0
  62. package/dist/types/core/dxf-parser/entities/geomtry.d.ts +40 -0
  63. package/dist/types/core/dxf-parser/entities/hatch.d.ts +108 -0
  64. package/dist/types/core/dxf-parser/entities/image.d.ts +37 -0
  65. package/dist/types/core/dxf-parser/entities/insert.d.ts +20 -0
  66. package/dist/types/core/dxf-parser/entities/leader.d.ts +23 -0
  67. package/dist/types/core/dxf-parser/entities/line.d.ts +10 -0
  68. package/dist/types/core/dxf-parser/entities/lwpolyline.d.ts +21 -0
  69. package/dist/types/core/dxf-parser/entities/mleader.d.ts +101 -0
  70. package/dist/types/core/dxf-parser/entities/mtext.d.ts +18 -0
  71. package/dist/types/core/dxf-parser/entities/ole2frame.d.ts +20 -0
  72. package/dist/types/core/dxf-parser/entities/point.d.ts +11 -0
  73. package/dist/types/core/dxf-parser/entities/polyline.d.ts +20 -0
  74. package/dist/types/core/dxf-parser/entities/ray.d.ts +10 -0
  75. package/dist/types/core/dxf-parser/entities/region.d.ts +10 -0
  76. package/dist/types/core/dxf-parser/entities/seqend.d.ts +8 -0
  77. package/dist/types/core/dxf-parser/entities/solid.d.ts +10 -0
  78. package/dist/types/core/dxf-parser/entities/spline.d.ts +23 -0
  79. package/dist/types/core/dxf-parser/entities/table.d.ts +42 -0
  80. package/dist/types/core/dxf-parser/entities/text.d.ts +18 -0
  81. package/dist/types/core/dxf-parser/entities/vertex.d.ts +20 -0
  82. package/dist/types/core/dxf-parser/entities/viewport.d.ts +46 -0
  83. package/dist/types/core/dxf-parser/entities/xline.d.ts +10 -0
  84. package/dist/types/core/dxf-parser/index.d.ts +27 -0
  85. package/dist/types/core/dxf-parser/objects/common.d.ts +15 -0
  86. package/dist/types/core/dxf-parser/objects/dictionary.d.ts +19 -0
  87. package/dist/types/core/dxf-parser/objects/imagedef.d.ts +24 -0
  88. package/dist/types/core/dxf-parser/objects/layout.d.ts +29 -0
  89. package/dist/types/core/dxf-parser/objects/sortentstable.d.ts +12 -0
  90. package/dist/types/core/dxf-parser/objects/spatialfilter.d.ts +22 -0
  91. package/dist/types/core/dxf-parser/objects/xrecord.d.ts +11 -0
  92. package/dist/types/core/font/BaseFont.d.ts +88 -0
  93. package/dist/types/core/font/FontManager.d.ts +107 -0
  94. package/dist/types/core/font/MeshFont.d.ts +44 -0
  95. package/dist/types/core/font/ShxFont.d.ts +108 -0
  96. package/dist/types/core/font/index.d.ts +1 -0
  97. package/dist/types/core/font/shx/ExtraLettersTemplate.d.ts +1 -0
  98. package/dist/types/core/font/shx/Shx.constants.d.ts +11 -0
  99. package/dist/types/core/font/shx/ShxParser.d.ts +18 -0
  100. package/dist/types/core/font/shx/TextShape.d.ts +24 -0
  101. package/dist/types/core/font/shx/gbk/index.d.ts +4 -0
  102. package/dist/types/core/font/shx/index.d.ts +1 -0
  103. package/dist/types/core/font/shx/util/BitConverter.d.ts +18 -0
  104. package/dist/types/core/geometry-offset/Edge.d.ts +27 -0
  105. package/dist/types/core/geometry-offset/Offset.d.ts +46 -0
  106. package/dist/types/core/geometry-offset/index.d.ts +1 -0
  107. package/dist/types/core/helpers/BinaryReader.d.ts +24 -0
  108. package/dist/types/core/helpers/BoxSelectHelper.d.ts +44 -0
  109. package/dist/types/core/helpers/LoadingHelper.d.ts +46 -0
  110. package/dist/types/core/helpers/MobileTouchHelperDrawable.d.ts +26 -0
  111. package/dist/types/core/helpers/OSnapHelper.d.ts +167 -0
  112. package/dist/types/core/helpers/ObjectPixelSizeHelper.d.ts +13 -0
  113. package/dist/types/core/helpers/PickMarkupHelper.d.ts +29 -0
  114. package/dist/types/core/helpers/RafHelper.d.ts +18 -0
  115. package/dist/types/core/helpers/ZoomToRectHelper.d.ts +17 -0
  116. package/dist/types/core/helpers/index.d.ts +9 -0
  117. package/dist/types/core/index.d.ts +18 -0
  118. package/dist/types/core/indexeddb/AnnotationTable.d.ts +14 -0
  119. package/dist/types/core/indexeddb/BaseTable.d.ts +36 -0
  120. package/dist/types/core/indexeddb/DxfDataTable.d.ts +22 -0
  121. package/dist/types/core/indexeddb/FontDataTable.d.ts +32 -0
  122. package/dist/types/core/indexeddb/IndexedDbManager.d.ts +29 -0
  123. package/dist/types/core/indexeddb/ViewpointTable.d.ts +14 -0
  124. package/dist/types/core/indexeddb/index.d.ts +6 -0
  125. package/dist/types/core/input/InputManager.d.ts +161 -0
  126. package/dist/types/core/input/index.d.ts +1 -0
  127. package/dist/types/core/license/AutoConfig.d.ts +17 -0
  128. package/dist/types/core/license/LicenseManager.d.ts +107 -0
  129. package/dist/types/core/license/PublicKey.d.ts +1 -0
  130. package/dist/types/core/license/index.d.ts +1 -0
  131. package/dist/types/core/markup/ArrowMarkup.d.ts +14 -0
  132. package/dist/types/core/markup/BaseMarkup.d.ts +28 -0
  133. package/dist/types/core/markup/CircleMarkup.d.ts +12 -0
  134. package/dist/types/core/markup/CloudLineMarkup.d.ts +10 -0
  135. package/dist/types/core/markup/CloudRectMarkup.d.ts +11 -0
  136. package/dist/types/core/markup/CloudRectWithTextMarkup.d.ts +43 -0
  137. package/dist/types/core/markup/Constants.d.ts +17 -0
  138. package/dist/types/core/markup/DotMarkup.d.ts +9 -0
  139. package/dist/types/core/markup/EllipseMarkup.d.ts +12 -0
  140. package/dist/types/core/markup/LeaderLineMarkup.d.ts +25 -0
  141. package/dist/types/core/markup/MarkupManager.d.ts +91 -0
  142. package/dist/types/core/markup/PolylineMarkup.d.ts +11 -0
  143. package/dist/types/core/markup/RectMarkup.d.ts +10 -0
  144. package/dist/types/core/markup/TextMarkup.d.ts +40 -0
  145. package/dist/types/core/markup/XMarkup.d.ts +10 -0
  146. package/dist/types/core/markup/index.d.ts +13 -0
  147. package/dist/types/core/model/Constants.d.ts +51 -0
  148. package/dist/types/core/model/Model.d.ts +18 -0
  149. package/dist/types/core/model/Model2d.d.ts +115 -0
  150. package/dist/types/core/model/index.d.ts +3 -0
  151. package/dist/types/core/patches/Constants.d.ts +4 -0
  152. package/dist/types/core/patches/Line.d.ts +2 -0
  153. package/dist/types/core/patches/Mesh.d.ts +2 -0
  154. package/dist/types/core/patches/Points.d.ts +2 -0
  155. package/dist/types/core/patches/index.d.ts +4 -0
  156. package/dist/types/core/undo-redo/AddAnnotationCommand.d.ts +11 -0
  157. package/dist/types/core/undo-redo/AddMarkupCommand.d.ts +10 -0
  158. package/dist/types/core/undo-redo/AddMeasurementCommand.d.ts +9 -0
  159. package/dist/types/core/undo-redo/Command.d.ts +6 -0
  160. package/dist/types/core/undo-redo/RemoveAnnotationCommand.d.ts +11 -0
  161. package/dist/types/core/undo-redo/RemoveMarkupCommand.d.ts +10 -0
  162. package/dist/types/core/undo-redo/RemoveMeasurementCommand.d.ts +9 -0
  163. package/dist/types/core/undo-redo/UndoRedoManager.d.ts +21 -0
  164. package/dist/types/core/undo-redo/UpdateMarkupCommand.d.ts +11 -0
  165. package/dist/types/core/undo-redo/index.d.ts +9 -0
  166. package/dist/types/core/utils/CSS2DObjectUtils.d.ts +14 -0
  167. package/dist/types/core/utils/ColorUtils.d.ts +21 -0
  168. package/dist/types/core/utils/CommonUtils.d.ts +125 -0
  169. package/dist/types/core/utils/CoordinateUtils.d.ts +81 -0
  170. package/dist/types/core/utils/DecimalPrecisionUtils.d.ts +4 -0
  171. package/dist/types/core/utils/DeviceUtils.d.ts +15 -0
  172. package/dist/types/core/utils/EdgeUtils.d.ts +14 -0
  173. package/dist/types/core/utils/Event.d.ts +33 -0
  174. package/dist/types/core/utils/FpsUtils.d.ts +13 -0
  175. package/dist/types/core/utils/GeometryUtils.d.ts +111 -0
  176. package/dist/types/core/utils/Locale.d.ts +190 -0
  177. package/dist/types/core/utils/LogUtils.d.ts +7 -0
  178. package/dist/types/core/utils/MaterialUtils.d.ts +40 -0
  179. package/dist/types/core/utils/MathUtils.d.ts +59 -0
  180. package/dist/types/core/utils/MergeUtils.d.ts +638 -0
  181. package/dist/types/core/utils/ObjectUtils.d.ts +87 -0
  182. package/dist/types/core/utils/PolygonUtils.d.ts +8 -0
  183. package/dist/types/core/utils/SVGObjectUtils.d.ts +16 -0
  184. package/dist/types/core/utils/SceneUtils.d.ts +26 -0
  185. package/dist/types/core/utils/SectionUtils.d.ts +11 -0
  186. package/dist/types/core/utils/UnitConversionUtils.d.ts +31 -0
  187. package/dist/types/core/utils/index.d.ts +21 -0
  188. package/dist/types/core/viewers/BaseViewer.d.ts +265 -0
  189. package/dist/types/core/viewers/DxfViewer.d.ts +1372 -0
  190. package/dist/types/core/viewers/Plugin.d.ts +29 -0
  191. package/dist/types/core/viewers/ViewerEvent.d.ts +178 -0
  192. package/dist/types/core/viewers/index.d.ts +4 -0
  193. package/dist/types/export.doc.d.ts +10 -0
  194. package/dist/types/fetch-polyfill.d.ts +2 -0
  195. package/dist/types/index.d.ts +8 -0
  196. package/dist/types/plugins/annotation/AnnotationPlugin.d.ts +139 -0
  197. package/dist/types/plugins/annotation/AutoDrawAnnotation.d.ts +63 -0
  198. package/dist/types/plugins/annotation/BaseAnnotation.d.ts +113 -0
  199. package/dist/types/plugins/annotation/BaseAnnotationDrawable.d.ts +139 -0
  200. package/dist/types/plugins/annotation/CopyAnnotation.d.ts +36 -0
  201. package/dist/types/plugins/annotation/CopyDrawable.d.ts +26 -0
  202. package/dist/types/plugins/annotation/FreeDrawAnnotation.d.ts +59 -0
  203. package/dist/types/plugins/annotation/RectAnnotation.d.ts +53 -0
  204. package/dist/types/plugins/annotation/RectDrawable.d.ts +42 -0
  205. package/dist/types/plugins/annotation/ShapeFinder.d.ts +51 -0
  206. package/dist/types/plugins/annotation/freeDrawDrawable.d.ts +21 -0
  207. package/dist/types/plugins/annotation/index.d.ts +8 -0
  208. package/dist/types/plugins/annotation/type.d.ts +182 -0
  209. package/dist/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts +49 -0
  210. package/dist/types/plugins/axis-gizmo/CoordinateAxes.d.ts +12 -0
  211. package/dist/types/plugins/axis-gizmo/index.d.ts +1 -0
  212. package/dist/types/plugins/bottom-bar/BottomBarPlugin.d.ts +44 -0
  213. package/dist/types/plugins/bottom-bar/index.d.ts +1 -0
  214. package/dist/types/plugins/divide/CoverLayerManager.d.ts +44 -0
  215. package/dist/types/plugins/divide/DivGeometryUtils.d.ts +66 -0
  216. package/dist/types/plugins/divide/DividePlugin.d.ts +181 -0
  217. package/dist/types/plugins/divide/FrameAnnotation.d.ts +142 -0
  218. package/dist/types/plugins/divide/FrameDrawable.d.ts +75 -0
  219. package/dist/types/plugins/divide/index.d.ts +6 -0
  220. package/dist/types/plugins/divide/types.d.ts +38 -0
  221. package/dist/types/plugins/hotpoint/HotpointPlugin.d.ts +93 -0
  222. package/dist/types/plugins/hotpoint/index.d.ts +1 -0
  223. package/dist/types/plugins/index.d.ts +12 -0
  224. package/dist/types/plugins/layer-manager/LayerManagerPlugin.d.ts +59 -0
  225. package/dist/types/plugins/layer-manager/index.d.ts +1 -0
  226. package/dist/types/plugins/local-model-uploader/IUploader.d.ts +10 -0
  227. package/dist/types/plugins/local-model-uploader/LocalDxfUploader.d.ts +19 -0
  228. package/dist/types/plugins/local-model-uploader/index.d.ts +1 -0
  229. package/dist/types/plugins/measure/AngleMeasureDrawable.d.ts +12 -0
  230. package/dist/types/plugins/measure/AngleMeasurement.d.ts +16 -0
  231. package/dist/types/plugins/measure/AreaMeasureDrawable.d.ts +14 -0
  232. package/dist/types/plugins/measure/AreaMeasurement.d.ts +31 -0
  233. package/dist/types/plugins/measure/BaseMeasureDrawable.d.ts +35 -0
  234. package/dist/types/plugins/measure/BaseMeasurement.d.ts +127 -0
  235. package/dist/types/plugins/measure/CoordinateMeasureDrawable.d.ts +10 -0
  236. package/dist/types/plugins/measure/CoordinateMeasurement.d.ts +15 -0
  237. package/dist/types/plugins/measure/DistanceMeasureDrawable.d.ts +15 -0
  238. package/dist/types/plugins/measure/DistanceMeasurement.d.ts +28 -0
  239. package/dist/types/plugins/measure/MeasurementPlugin.d.ts +131 -0
  240. package/dist/types/plugins/measure/index.d.ts +3 -0
  241. package/dist/types/plugins/overview-map/ImageDrawable.d.ts +41 -0
  242. package/dist/types/plugins/overview-map/LineDrawable.d.ts +20 -0
  243. package/dist/types/plugins/overview-map/OverviewMapDrawable.d.ts +24 -0
  244. package/dist/types/plugins/overview-map/OverviewMapPlugin.d.ts +156 -0
  245. package/dist/types/plugins/overview-map/TextDrawable.d.ts +50 -0
  246. package/dist/types/plugins/overview-map/index.d.ts +5 -0
  247. package/dist/types/plugins/screenshot/ScreenshotPlugin.d.ts +88 -0
  248. package/dist/types/plugins/screenshot/index.d.ts +1 -0
  249. package/dist/types/plugins/stats/StatsPlugin.d.ts +20 -0
  250. package/dist/types/plugins/stats/index.d.ts +1 -0
  251. package/dist/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts +67 -0
  252. package/dist/types/plugins/toolbars/MarkupToolbar.d.ts +33 -0
  253. package/dist/types/plugins/toolbars/Toolbar.config.d.ts +5 -0
  254. package/dist/types/plugins/toolbars/Toolbar.constants.d.ts +96 -0
  255. package/dist/types/plugins/toolbars/Toolbar.d.ts +102 -0
  256. package/dist/types/plugins/toolbars/index.d.ts +5 -0
  257. package/dist/types/version.d.ts +2 -0
  258. package/package.json +90 -0
@@ -0,0 +1,151 @@
1
+ import * as THREE from "three";
2
+ import type { DxfEntity } from "./DxfLoader";
3
+ import type { DxfCompareConfig } from "../../core/Configs";
4
+ import { IDxf } from "../../core/dxf-parser";
5
+ /**
6
+ * Dxf change type, which can be "Added", "Removed" or "Modified".
7
+ *
8
+ * Note that a "Modified" change can be represented as a "Removed" and an "Added" types.
9
+ *
10
+ * The system can display "Added" object in a specific color (green, etc.),
11
+ * and "Removed" in another color (red, etc.).
12
+ */
13
+ export declare enum DxfChangeType {
14
+ Added = "Added",
15
+ Removed = "Removed",
16
+ Modified = "Modified",
17
+ NoChange = "NoChange"
18
+ }
19
+ /**
20
+ * Dxf compare detail changes.
21
+ * It supports:
22
+ * - color
23
+ * - lineType
24
+ * - constantWidth (polyline width)
25
+ */
26
+ export declare type DxfDetailChanges = {
27
+ [propName: string]: {
28
+ /**
29
+ * The old value.
30
+ */
31
+ old: unknown;
32
+ /**
33
+ * The new value.
34
+ */
35
+ new: unknown;
36
+ };
37
+ };
38
+ /**
39
+ * Describes a dxf change
40
+ */
41
+ export interface DxfChange {
42
+ /**
43
+ * An integer type id. It is unique in the lifecycle of a DxfViewer.
44
+ */
45
+ id: number;
46
+ /**
47
+ * Change type, which can be "Added", "Removed", "Modified" or "NoChange".
48
+ */
49
+ type: DxfChangeType;
50
+ /**
51
+ * AutoCAD entity handle
52
+ */
53
+ handle: string;
54
+ /**
55
+ * @internal
56
+ */
57
+ parentHandles?: string[];
58
+ /**
59
+ * @internal
60
+ */
61
+ box?: THREE.Box3;
62
+ detailChanges?: DxfDetailChanges;
63
+ }
64
+ /**
65
+ * Used to compare two drawings/dxfs.
66
+ * - Consider model space only.
67
+ * - Consider entity's geometry, position, scale, etc.
68
+ * - Ignore layer's visibility, freeze settings.
69
+ * - Ignore entity's properties like linetype, fill pattern, font, color, etc.
70
+ * - Ignore spatial filter (xclip) of block reference.
71
+ * - We compare entities with the same handle and type. e.g.
72
+ * - if line A from dxf1 has the same handle with arc A from dxf2, then line A is "Removed", arc A is "Added".
73
+ * - For color, it compares color setting rather than the actual color. E.g.
74
+ * - If a color setting is "ByLayer", but the layer's color is changed. We take this case as unchanged.
75
+ * - If a color setting is "ByLayer", the setting is changed to "ByBlock", while the layer and block actually have the same color. We take this case as changed.
76
+ * @internal
77
+ */
78
+ export declare class DxfCompare {
79
+ static readonly ENTITY_COLOR_ADDED = 65280;
80
+ static readonly ENTITY_COLOR_REMOVED = 16711680;
81
+ static readonly ENTITY_COLOR_NO_CHANGE = 10066329;
82
+ static readonly ENTITY_COLOR_MARKUP = 16744231;
83
+ private dxf1;
84
+ private dxf2;
85
+ private changes;
86
+ private comparedBlocks;
87
+ private isComparingBlock;
88
+ private isComparingDimension;
89
+ private enableDetailComparision;
90
+ static readonly ignoreEntityTypes: string[];
91
+ constructor(dxf1: IDxf, dxf2: IDxf, compareCfg?: DxfCompareConfig);
92
+ private getLayerFrozen;
93
+ /**
94
+ * Compares model spaces of two dxf files.
95
+ * Returns DxfChange map, the key is incremental integer starts from 1.
96
+ * It is unique in the lifecycle of a DxfViewer.
97
+ */
98
+ compare(onProgress?: (event: ProgressEvent) => void): Promise<Record<number, DxfChange>>;
99
+ private isDimensionBlock;
100
+ compareInsertOrDemensionEntities(a: DxfEntity, b: DxfEntity, parentHandle1?: string, parentHandle2?: string): {
101
+ type: DxfChangeType;
102
+ handle: string;
103
+ parentHandles?: string[] | undefined;
104
+ }[] | undefined;
105
+ private compareBlock;
106
+ private compareEntities;
107
+ private bIgnoreChildEntitiesOriginalType;
108
+ private entitiesEqual;
109
+ private getColor;
110
+ private getLineType;
111
+ private addModificationItem;
112
+ private baseEntitiesEqual;
113
+ private arcsEqual;
114
+ private linesEqual;
115
+ private polylinesEqual;
116
+ private textsEqual;
117
+ private solidsEqual;
118
+ private pointEntitiesEqual;
119
+ private splinesEqual;
120
+ private mtextsEqual;
121
+ private ellipsesEqual;
122
+ private attDefsEqual;
123
+ private attribsEqual;
124
+ private hatchesEqual;
125
+ private viewportsEqual;
126
+ private leadersEqual;
127
+ private mleadersEqual;
128
+ private ole2framesEqual;
129
+ private insertsEqual;
130
+ private dimensionsEqual;
131
+ private regionsEqual;
132
+ private vectorsEqual;
133
+ private pointsEqual;
134
+ private vertexEntityEqual;
135
+ private numbersEqual;
136
+ private numberEqual;
137
+ private vectorArraysEqual;
138
+ private verticesEqual;
139
+ private verticesArrayEqual;
140
+ private vertexEntitiesEqual;
141
+ private hatchEdgesEqual;
142
+ private hatchEdgeArraysEqual;
143
+ private hatchBoundaryPathsEqual;
144
+ private hatchBoundaryPathArraysEqual;
145
+ private mleaderLineEqual;
146
+ private mleaderLinesEqual;
147
+ private mleaderLeaderEqual;
148
+ private mleaderLeadersEqual;
149
+ private mleaderContextEqual;
150
+ private compareHexStrings;
151
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Constants used by dxf
3
+ */
4
+ export declare const BYLAYER = "BYLAYER";
5
+ export declare const BYBLOCK = "BYBLOCK";
6
+ export declare enum DxfRenderOrder {
7
+ Mesh = -1,
8
+ MeshWithPattern = 0,
9
+ LineWithWidth = 1,
10
+ Line = 2,
11
+ LineWithPattern = 3,
12
+ Point = 4,
13
+ Text = 5
14
+ }
15
+ export declare const NestCompareTypes: string[];
@@ -0,0 +1,526 @@
1
+ import * as THREE from "three";
2
+ import { DxfChange } from "./DxfCompare";
3
+ import { DxfObject } from "./DxfObject";
4
+ import { Units } from "../../core/Units";
5
+ import { IBlock, IDxf, IEntity, ILayer, ILayoutObject, IPoint, IViewport, IViewportEntity, TableCell } from "../../core/dxf-parser";
6
+ import { ImageFlags } from "../../core/dxf-parser/entities/image";
7
+ import { IMLeaderContextData } from "../../core/dxf-parser/entities/mleader";
8
+ import { ISpatialFilterObject } from "../../core/dxf-parser/objects/spatialfilter";
9
+ import { FontManager } from "../../core/font";
10
+ /**
11
+ * @internal
12
+ */
13
+ export interface DxfData extends IDxf {
14
+ threejsObject: THREE.Object3D;
15
+ layersAndThreejsObjects: Record<string, THREE.Object3D[]>;
16
+ loadedEntityCount: number;
17
+ layoutViewportsMap: Record<string, IViewportEntity[]>;
18
+ }
19
+ /**
20
+ * Dxf/dwg layer, which contains a number of objects in it.
21
+ *
22
+ * A layer has "name", "handle", "color", "visible" and many other properties.
23
+ *
24
+ * We can change a layer's visibility, color, etc.
25
+ */
26
+ export declare type DxfLayer = ILayer;
27
+ /**
28
+ * Dxf entity, which can be an arc, circle, attach, line, insert, text, etc.
29
+ * @internal
30
+ */
31
+ export interface DxfEntity extends IEntity {
32
+ threejsObject?: THREE.Object3D;
33
+ dimStyleName: string;
34
+ dimensionType?: number;
35
+ anchorPoint?: THREE.Vector3;
36
+ block?: string;
37
+ majorAxisEndPoint?: THREE.Vector2 | THREE.Vector3;
38
+ axisRatio?: number;
39
+ center?: THREE.Vector3;
40
+ startAngle?: number;
41
+ endAngle?: number;
42
+ style?: number;
43
+ text?: string;
44
+ height?: number;
45
+ width?: number;
46
+ position?: THREE.Vector3;
47
+ blockPosition?: IPoint;
48
+ rotation?: number;
49
+ directionVector?: THREE.Vector3;
50
+ attachmentPoint?: number;
51
+ drawingDirection?: number;
52
+ controlPoints?: IPoint[];
53
+ degreeOfSplineCurve?: number;
54
+ knotValues?: number[];
55
+ numberOfControlPoints: number;
56
+ vertices?: IPoint[];
57
+ shape: boolean;
58
+ isPolyfaceMesh: boolean;
59
+ pathType: number;
60
+ direction: number;
61
+ hasHookline: boolean;
62
+ textWidth: number;
63
+ dimensionStyle: string;
64
+ arrowFlag: number;
65
+ arrowHeight: number;
66
+ arrowHeadScale: number;
67
+ arrowHeadBlockHandle: string;
68
+ contextData?: IMLeaderContextData;
69
+ enableDogLeg: boolean;
70
+ leaderLineType: number;
71
+ arrowHeadId: string;
72
+ arrowHeadSize: number;
73
+ radius?: number;
74
+ points?: THREE.Vector3[];
75
+ startPoint?: THREE.Vector3;
76
+ endPoint?: THREE.Vector3;
77
+ textHeight: number;
78
+ halign?: number;
79
+ valign?: number;
80
+ mirrored?: number;
81
+ textStyle?: string;
82
+ lineSpaceFactor?: number;
83
+ name?: string;
84
+ xScale?: number;
85
+ yScale?: number;
86
+ zScale?: number;
87
+ elevation?: number;
88
+ extrusionDirectionX?: number;
89
+ extrusionDirectionY?: number;
90
+ extrusionDirectionZ?: number;
91
+ extrusionDirection?: {
92
+ z: number;
93
+ };
94
+ entities?: IEntity[];
95
+ tag?: string;
96
+ prompt?: string;
97
+ scale?: number;
98
+ preset: boolean;
99
+ invisible: boolean;
100
+ documentType?: string;
101
+ version?: number;
102
+ leftUpX?: number;
103
+ leftUpY?: number;
104
+ leftUpZ?: number;
105
+ rightDownX?: number;
106
+ rightDownY?: number;
107
+ rightDownZ?: number;
108
+ tileModeDescriptor?: number;
109
+ binaryData?: string;
110
+ lengthOfBinaryData?: number;
111
+ image: string;
112
+ psBBox?: THREE.Box3;
113
+ msToPsMatrix?: THREE.Matrix4;
114
+ viewportThreejsObject?: DxfObject;
115
+ associatedLeafObjectSet?: Set<THREE.Object3D>;
116
+ associatedSpatialFilter?: DxfSpatialFilter;
117
+ imageSize?: IPoint;
118
+ imageDefHandle?: string;
119
+ uPixel?: IPoint;
120
+ vPixel?: IPoint;
121
+ flags?: ImageFlags;
122
+ columnCount: number;
123
+ rowCount: number;
124
+ cells: TableCell[];
125
+ rowHeightArr: number[];
126
+ columnWidthArr: number[];
127
+ }
128
+ /**
129
+ * Dxf block.
130
+ * @internal
131
+ */
132
+ export interface DxfBlock extends IBlock {
133
+ /**
134
+ * References to corresponding threejs object
135
+ */
136
+ threejsObject?: DxfObject;
137
+ }
138
+ /**
139
+ * Dxf layout.
140
+ * @internal
141
+ */
142
+ export interface DxfLayout extends ILayoutObject {
143
+ /**
144
+ * A collection of leaf objects directly associated with the layout, used for subsequent selection and measurement, etc.
145
+ * "Model" space doesn't need it for now.
146
+ */
147
+ directAssociatedLeafObjectSet?: Set<THREE.Object3D>;
148
+ }
149
+ /**
150
+ * Spatial filter clip polyline.
151
+ * @internal
152
+ */
153
+ export interface DxfSpatialFilterClipPolyline {
154
+ polyline: THREE.Vector3[];
155
+ bConcave: boolean;
156
+ bReversed: boolean;
157
+ }
158
+ /**
159
+ * Spatial filter.
160
+ * @internal
161
+ */
162
+ export interface DxfSpatialFilter extends ISpatialFilterObject {
163
+ /**
164
+ * References to corresponding threejs object
165
+ */
166
+ threejsObject?: DxfObject;
167
+ localMatrix?: THREE.Matrix4;
168
+ clipPolylines: DxfSpatialFilterClipPolyline[];
169
+ }
170
+ /**
171
+ * Dxf loader config.
172
+ * @internal
173
+ */
174
+ export interface DxfLoaderConfig {
175
+ /**
176
+ * Ignores everything from paper space, aka, only load model space.
177
+ */
178
+ ignorePaperSpace?: boolean;
179
+ /**
180
+ * Enables caching dxf data into indexeddb.
181
+ */
182
+ enableLocalCache?: boolean;
183
+ /**
184
+ * Enables to merge objects.
185
+ */
186
+ enableMerge?: boolean;
187
+ /**
188
+ * File encoding, can be used by dxf. Common encoding include "UTF-8", "gb2312", etc.
189
+ */
190
+ encoding?: string;
191
+ /**
192
+ * Apply this color to everything in this model.
193
+ * Color value between 0 and 1.
194
+ */
195
+ overrideColor?: number[];
196
+ /**
197
+ * Idealy, the thickness of lines in hatch pattern should always be 1 pixel.
198
+ * In DxfViewer, it uses orthographic camera and always in top view,
199
+ * so we adjust thickness by cameraZoom (and also consider worldScale).
200
+ * While 3d view is more complex, it can use perspective camera,
201
+ * its camera position and direction is flexible. We cannot keep line thickness
202
+ * in a fixed pixel any more, and there is no proper way to adjust thickness as
203
+ * position changes. So, we need to use a fixed thickness in world coordinates.
204
+ */
205
+ overrideHatchPatternLineThickness?: number;
206
+ }
207
+ /**
208
+ * Dxf file loader.
209
+ * @internal
210
+ */
211
+ export declare class DxfLoader extends THREE.Loader {
212
+ static readonly MODEL_LAYOUT_NAME = "Model";
213
+ static readonly SNAP_GROUP_NAME = "InvisibleObjectGroupForOSnap";
214
+ static readonly SHOW_SNAP_OBJECT = false;
215
+ private timer;
216
+ private ignorePaperSpace;
217
+ font?: FontManager;
218
+ private encoding;
219
+ private overrideColor?;
220
+ private overrideHatchPatternLineThickness?;
221
+ angBase: number | IPoint;
222
+ angDir: number | IPoint;
223
+ private header;
224
+ private pointsMaterials;
225
+ private lineBasicMaterials;
226
+ private lineShaderMaterials;
227
+ private meshBasicMaterials;
228
+ private meshTextureMaterials;
229
+ private hatchShaderMaterials;
230
+ private entityCount;
231
+ private curveCount;
232
+ private averageCurveSize;
233
+ private enableRenderOrder;
234
+ private enableLocalCache;
235
+ private enableReleaseData;
236
+ private enableMerge;
237
+ private enableRTC;
238
+ private enablePlineWidth;
239
+ private dxfDataId;
240
+ /**
241
+ * Use a context in order to easily know if it is compare mode,
242
+ * and, get compare result from it.
243
+ */
244
+ private compareContext?;
245
+ private statsInfo;
246
+ private blockReferencesCache;
247
+ /**
248
+ * Adds this data member just in order to improve the performence of getLayoutName.
249
+ * Its key is blockrecord's handle, value is its layoutHandle.
250
+ */
251
+ private blockRecordsCache;
252
+ /**
253
+ * Adds this data member just in order to improve the performence of getLayoutName.
254
+ * Its key is entity's handle, value is itself.
255
+ */
256
+ private entitiesCache;
257
+ /**
258
+ * Adds this data member just in order to improve the performence of getBlockByHandle.
259
+ * Its key is block's ownerHandle, value is IBlock.
260
+ */
261
+ private blocksCache;
262
+ /**
263
+ * Adds this in order to improve performance of findSpatialFilterByHandle.
264
+ * Key is dictionaryObject's ownerHandle(entity's handle), value is spatial filter's ownerHandle
265
+ */
266
+ private dictionaryOwnerHandleAndSpatialFilterHandlesCache;
267
+ /**
268
+ * Adds this in order to improve performance of findSpatialFilterByHandle.
269
+ * Key is ISpatialFilterObject's ownerHandle, value is ISpatialFilterObject
270
+ */
271
+ private spatialFiltersCache;
272
+ /**
273
+ * Adds this in order to improve performance of creating threejs object
274
+ * Key is entity's handle, value is threejs object.
275
+ */
276
+ private entityThreejsCache;
277
+ private entityTypesAndTimes;
278
+ private nonSnapableTypes;
279
+ private layoutsSnapObjectsMap;
280
+ static cameraZoomUniform: {
281
+ value: number;
282
+ };
283
+ /**
284
+ * Used for drawing dashed lines properly in a viewport.
285
+ */
286
+ static viewportScaleUniform: {
287
+ value: number;
288
+ };
289
+ static transformMatrixUniform: {
290
+ value: THREE.Matrix4;
291
+ };
292
+ static resolutionUniform: {
293
+ value: THREE.Vector2;
294
+ };
295
+ /**
296
+ * WebGL has a limited capability for FragmentUniforms. Thus, cannot have as many
297
+ * clippingPlanes as expected.
298
+ */
299
+ static maxFragmentUniforms: number;
300
+ /**
301
+ * A global flag to abort loading any dxf files, it aborts dxf compare progress too.
302
+ * It doesn't support to abort one of the loader for now.
303
+ */
304
+ static abortJobs: boolean;
305
+ /**
306
+ * DxfLoader constructor
307
+ */
308
+ constructor(manager?: THREE.LoadingManager, cfg?: DxfLoaderConfig);
309
+ /**
310
+ * Sets font.
311
+ */
312
+ setFont(font: FontManager): void;
313
+ /**
314
+ * Downloads dxf file content
315
+ */
316
+ private download;
317
+ /**
318
+ * Loads a dxf file by given url.
319
+ * If dxfDataId is specified and local cache is enabled, it firstly tries to load from cache.
320
+ * @param url url of the dxf file
321
+ * @param dxfDataId target dxf data id, used to get dxf data from cache if local cache is enabled.
322
+ * @param onProgress on progress callback
323
+ * @returns DxfData
324
+ */
325
+ load(url: string, dxfDataId?: string, onProgress?: (event: ProgressEvent) => void): Promise<DxfData>;
326
+ /**
327
+ * Loads dxf asynchronously. It mainly contains 2 steps:
328
+ * 1. Parses file content
329
+ * 2. Generates/load threejs objects
330
+ * @param url url of the dxf file
331
+ * @param onProgress on progress callback
332
+ */
333
+ loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<DxfData>;
334
+ /**
335
+ * Parses dxf contents from given url.
336
+ */
337
+ parse(url: string, onProgress?: (event: ProgressEvent) => void): Promise<IDxf>;
338
+ private parseHeader;
339
+ /**
340
+ * For some versions, the dxf file may be wired, missing header, objects, tables, etc.
341
+ * We'll try to fill in missing content for it.
342
+ */
343
+ private tryFixDxfData;
344
+ /**
345
+ * Generates/load threejs objects according to the dxf data.
346
+ * @param data
347
+ * @param onProgress
348
+ * @returns the promise of DxfData
349
+ */
350
+ loadEntities(data: IDxf, onProgress?: (event: ProgressEvent) => void): Promise<DxfData>;
351
+ private getFontFilesFromDxf;
352
+ /**
353
+ * Loads entities from two dxf data for comparing.
354
+ * It also generates DxfChange information for each change.
355
+ */
356
+ loadEntitiesForCompare(data1: IDxf, data2: IDxf, changes: Record<string, DxfChange>, bIgnoreSameEntity?: boolean, onProgress?: (event: ProgressEvent) => void): Promise<void>;
357
+ private setObjectColorByChange;
358
+ /**
359
+ * Manually release some objects to save memory.
360
+ */
361
+ private releaseCachedData;
362
+ /**
363
+ * Releases memory-costy elements of an entity
364
+ */
365
+ private releaseEntity;
366
+ /**
367
+ * Releases memory-costy elements of dxf data
368
+ */
369
+ private releaseDxfData;
370
+ /**
371
+ * We'll need to pass in the blockEntity when drawEntity is called from a block.
372
+ * So that, when an entity's color is ByLayer, and its layer is "0", it should use block's layer,
373
+ * rather than the layer of the entity itself!
374
+ * We don't know if there is other similar case in future, so pass in blockEntity here.
375
+ */
376
+ drawEntity(entity: DxfEntity, data: IDxf, parentEntity?: IEntity, isParentChanged?: boolean): DxfObject | undefined;
377
+ private drawEllipse;
378
+ private drawMText;
379
+ private getMTextGroup;
380
+ private mtextContentAndFormattingToTextAndStyle;
381
+ private getTextLineNum;
382
+ private draw3DFace;
383
+ private drawSpline;
384
+ private drawXLine;
385
+ private drawRay;
386
+ private drawLine;
387
+ private drawLWPolyline;
388
+ private drawMLeader;
389
+ private drawLeader;
390
+ private drawTable;
391
+ private drawDefaultLeadArrow;
392
+ private getBlockByHandle;
393
+ static updateMaterialUniforms(material: THREE.Material): void;
394
+ static transformAngleByOcsMatrix(ocsMatrix: THREE.Matrix4, angle: number): number;
395
+ static getArcAnglesByOcsMatrix(ocsMatrix: THREE.Matrix4, startAngle: number, endAngle: number): number[];
396
+ private drawArc;
397
+ private addTriangleFacingCamera;
398
+ private drawSolid;
399
+ private getTextStyle;
400
+ private getDefaultDimensionStyle;
401
+ private getTextEncoding;
402
+ private getTextMesh;
403
+ private createTextMeshByText;
404
+ private transformTextMesh;
405
+ private drawText;
406
+ private drawAttDef;
407
+ private drawAttrib;
408
+ private drawPoint;
409
+ private drawDimension;
410
+ private drawImage;
411
+ private drawInsert;
412
+ private drawSpatialFilter;
413
+ private drawLayout;
414
+ private convertEdgeToPoints;
415
+ private drawHatch;
416
+ private drawOle2frame;
417
+ private static getOcsMatrix;
418
+ static getDcs2WcsMatrix(viewportEntity: IViewportEntity | IViewport, angDir: number): THREE.Matrix4;
419
+ private getViewportMsToPsMatrix;
420
+ private drawViewport;
421
+ private getColor;
422
+ private getLineType;
423
+ /**
424
+ * Gets entity's layer name.
425
+ * Note that, when entity is in layer "0", it tries to get its parent blockEntity's layer name.
426
+ */
427
+ private getLayerName;
428
+ /**
429
+ * Sets object's material after being created
430
+ * TODO: hatch is handled separately, and may move its logic here.
431
+ */
432
+ private setMaterial;
433
+ private setHatchMaterial;
434
+ private setRenderOrderByObjectType;
435
+ private getPointsMaterial;
436
+ private getLineBasicMaterial;
437
+ private getLineShaderMaterial;
438
+ private getMeshBasicMaterial;
439
+ /**
440
+ * Gets shader material for drawing a hatch with pattern
441
+ */
442
+ private getHatchShaderMaterial;
443
+ /**
444
+ * Gets a proper division for curve by entity count, entity size and theta angle, etc.
445
+ * @param size may not be accurate, can be the radius, long size of bbox, etc.
446
+ */
447
+ private getDivision;
448
+ /**
449
+ * Gets a proper interpolation for bspline.
450
+ * A bigger interpolation value generates smooth bspline, but with a bad performance, so we need to limit this value.
451
+ * @param pointCount control point count
452
+ * @param size may not be accurate, can be the long side of bbox, etc.
453
+ */
454
+ getBSplineInterpolationsPerSplineSegment(pointCount: number, size: number): number;
455
+ /**
456
+ * Gets proper simplify tolerance.
457
+ * If tolerance is bigger, more points are simpified.
458
+ */
459
+ /**
460
+ * Catches dxf data into indexedDb
461
+ */
462
+ private setDxfDataToIndexedDb;
463
+ /**
464
+ * Gets dxf data into indexedDb
465
+ */
466
+ private getDxfDataFromIndexedDb;
467
+ private buildContainHierarchyTree;
468
+ private buildHatchGeometry;
469
+ private findIntersectHole;
470
+ /**
471
+ * Checks if we should rebase points in case their values are big, and do rebase if necessary
472
+ */
473
+ private checkAndRebasePolygonsOnRTC;
474
+ /**
475
+ * Adds "relativeToCenter" flag to indicate an object has been rebased
476
+ */
477
+ private setRTCUserData;
478
+ private IsfilteredByPathTypeFlag;
479
+ /**
480
+ * Finds spatial filter by entity handle.
481
+ */
482
+ private findSpatialFilterByHandle;
483
+ private entityHandlesWithRenderOrder;
484
+ /**
485
+ * Find out render order info from SortEntsTable.
486
+ */
487
+ private initRenderOrderInfo;
488
+ private findMatchedHatchShaderMaterial;
489
+ private addViewport;
490
+ /**
491
+ * Gets the layout that entity belongs to.
492
+ * Entities resident in two places:
493
+ * 1) IDxf.entities
494
+ * 2) IDxf.blocks[<blockName>].entities
495
+ */
496
+ private getLayout;
497
+ private getLayerVisible;
498
+ private getLayerFrozen;
499
+ private cloneMaterialsForSpatialFilter;
500
+ private getLineTypeScales;
501
+ static getDxfUnits(unitValue: number): Units;
502
+ static computeLineDistance(line: THREE.Line): void;
503
+ static computeLineDistances(object: THREE.Object3D): void;
504
+ private static mergeDxfObjects;
505
+ /**
506
+ * Merges objects by layer and layout.
507
+ */
508
+ static merge(dxfData: DxfData, onProgress?: (event: ProgressEvent) => void): Promise<void>;
509
+ /**
510
+ * Prints stats info for debugging
511
+ */
512
+ private printStatsInfo;
513
+ private static statLayoutAndLayerObjects;
514
+ /**
515
+ * First marks the objects to be removed from bottom to top,
516
+ * and then removes empty objects from top to bottom
517
+ */
518
+ private static removeEmptyObjectsFromRemovingMarkedObjects;
519
+ private static removeEmptyObjectsFromMark;
520
+ /**
521
+ * First marks the objects to be removed from bottom to top,
522
+ * and then removes empty objects from top to bottom
523
+ */
524
+ private static removeEmptyObjectsFromRemovingMarkedObjects2;
525
+ private static removeEmptyObjectsFromMark2;
526
+ }