@node-projects/acad-ts 1.0.0 → 1.2.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 (605) hide show
  1. package/README.md +39 -1
  2. package/dist/Blocks/Block.d.ts +6 -4
  3. package/dist/Blocks/Block.d.ts.map +1 -1
  4. package/dist/Blocks/Block.js +7 -3
  5. package/dist/Blocks/Block.js.map +1 -1
  6. package/dist/Blocks/BlockEnd.d.ts +5 -3
  7. package/dist/Blocks/BlockEnd.d.ts.map +1 -1
  8. package/dist/Blocks/BlockEnd.js +7 -2
  9. package/dist/Blocks/BlockEnd.js.map +1 -1
  10. package/dist/CadDocument.d.ts +58 -31
  11. package/dist/CadDocument.d.ts.map +1 -1
  12. package/dist/CadDocument.js +214 -61
  13. package/dist/CadDocument.js.map +1 -1
  14. package/dist/CadObject.d.ts +10 -5
  15. package/dist/CadObject.d.ts.map +1 -1
  16. package/dist/CadObject.js +2 -2
  17. package/dist/CadObject.js.map +1 -1
  18. package/dist/CadObjectCollection.d.ts +2 -2
  19. package/dist/CadObjectCollection.d.ts.map +1 -1
  20. package/dist/CadObjectCollection.js.map +1 -1
  21. package/dist/CadSystemVariable.d.ts +8 -8
  22. package/dist/CadSystemVariable.d.ts.map +1 -1
  23. package/dist/CadSystemVariable.js +32 -22
  24. package/dist/CadSystemVariable.js.map +1 -1
  25. package/dist/CadUtils.d.ts.map +1 -1
  26. package/dist/CadUtils.js +5 -16
  27. package/dist/CadUtils.js.map +1 -1
  28. package/dist/CadValue.d.ts +2 -2
  29. package/dist/CadValue.d.ts.map +1 -1
  30. package/dist/CadValue.js.map +1 -1
  31. package/dist/Classes/DxfClassCollection.d.ts +2 -1
  32. package/dist/Classes/DxfClassCollection.d.ts.map +1 -1
  33. package/dist/Classes/DxfClassCollection.js +1 -1
  34. package/dist/Classes/DxfClassCollection.js.map +1 -1
  35. package/dist/Color.d.ts +1 -1
  36. package/dist/Color.d.ts.map +1 -1
  37. package/dist/Color.js.map +1 -1
  38. package/dist/DwgPreview.d.ts +1 -1
  39. package/dist/DwgPreview.d.ts.map +1 -1
  40. package/dist/DwgPreview.js +3 -5
  41. package/dist/DwgPreview.js.map +1 -1
  42. package/dist/DxfClassMap.d.ts.map +1 -1
  43. package/dist/DxfClassMap.js +11 -3
  44. package/dist/DxfClassMap.js.map +1 -1
  45. package/dist/DxfMap.d.ts +1 -0
  46. package/dist/DxfMap.d.ts.map +1 -1
  47. package/dist/DxfMap.js +47 -13
  48. package/dist/DxfMap.js.map +1 -1
  49. package/dist/DxfMapBase.d.ts +2 -2
  50. package/dist/DxfMapBase.d.ts.map +1 -1
  51. package/dist/DxfMapBase.js +13 -4
  52. package/dist/DxfMapBase.js.map +1 -1
  53. package/dist/DxfProperty.d.ts +6 -1
  54. package/dist/DxfProperty.d.ts.map +1 -1
  55. package/dist/DxfProperty.js +24 -4
  56. package/dist/DxfProperty.js.map +1 -1
  57. package/dist/DxfPropertyBase.d.ts +17 -3
  58. package/dist/DxfPropertyBase.d.ts.map +1 -1
  59. package/dist/DxfPropertyBase.js +268 -13
  60. package/dist/DxfPropertyBase.js.map +1 -1
  61. package/dist/Entities/AecObjects/Wall.d.ts +7 -4
  62. package/dist/Entities/AecObjects/Wall.d.ts.map +1 -1
  63. package/dist/Entities/AecObjects/Wall.js.map +1 -1
  64. package/dist/Entities/Arc.d.ts +3 -2
  65. package/dist/Entities/Arc.d.ts.map +1 -1
  66. package/dist/Entities/Arc.js +26 -8
  67. package/dist/Entities/Arc.js.map +1 -1
  68. package/dist/Entities/AttributeBase.d.ts +2 -1
  69. package/dist/Entities/AttributeBase.d.ts.map +1 -1
  70. package/dist/Entities/AttributeBase.js.map +1 -1
  71. package/dist/Entities/AttributeDefinition.d.ts +2 -1
  72. package/dist/Entities/AttributeDefinition.d.ts.map +1 -1
  73. package/dist/Entities/AttributeDefinition.js +1 -1
  74. package/dist/Entities/AttributeDefinition.js.map +1 -1
  75. package/dist/Entities/AttributeEntity.d.ts +2 -1
  76. package/dist/Entities/AttributeEntity.d.ts.map +1 -1
  77. package/dist/Entities/AttributeEntity.js +1 -1
  78. package/dist/Entities/AttributeEntity.js.map +1 -1
  79. package/dist/Entities/CadWipeoutBase.d.ts +8 -5
  80. package/dist/Entities/CadWipeoutBase.d.ts.map +1 -1
  81. package/dist/Entities/CadWipeoutBase.js +9 -19
  82. package/dist/Entities/CadWipeoutBase.js.map +1 -1
  83. package/dist/Entities/Circle.d.ts +3 -2
  84. package/dist/Entities/Circle.d.ts.map +1 -1
  85. package/dist/Entities/Circle.js +17 -6
  86. package/dist/Entities/Circle.js.map +1 -1
  87. package/dist/Entities/Dimension.d.ts +17 -6
  88. package/dist/Entities/Dimension.d.ts.map +1 -1
  89. package/dist/Entities/Dimension.js +195 -15
  90. package/dist/Entities/Dimension.js.map +1 -1
  91. package/dist/Entities/DimensionAligned.d.ts +3 -2
  92. package/dist/Entities/DimensionAligned.d.ts.map +1 -1
  93. package/dist/Entities/DimensionAligned.js +8 -16
  94. package/dist/Entities/DimensionAligned.js.map +1 -1
  95. package/dist/Entities/DimensionAngular2Line.d.ts +3 -2
  96. package/dist/Entities/DimensionAngular2Line.d.ts.map +1 -1
  97. package/dist/Entities/DimensionAngular2Line.js +28 -18
  98. package/dist/Entities/DimensionAngular2Line.js.map +1 -1
  99. package/dist/Entities/DimensionAngular3Pt.d.ts +3 -2
  100. package/dist/Entities/DimensionAngular3Pt.d.ts.map +1 -1
  101. package/dist/Entities/DimensionAngular3Pt.js +14 -15
  102. package/dist/Entities/DimensionAngular3Pt.js.map +1 -1
  103. package/dist/Entities/DimensionDiameter.d.ts +3 -2
  104. package/dist/Entities/DimensionDiameter.d.ts.map +1 -1
  105. package/dist/Entities/DimensionDiameter.js +4 -7
  106. package/dist/Entities/DimensionDiameter.js.map +1 -1
  107. package/dist/Entities/DimensionLinear.d.ts.map +1 -1
  108. package/dist/Entities/DimensionLinear.js +6 -3
  109. package/dist/Entities/DimensionLinear.js.map +1 -1
  110. package/dist/Entities/DimensionOrdinate.d.ts +3 -2
  111. package/dist/Entities/DimensionOrdinate.d.ts.map +1 -1
  112. package/dist/Entities/DimensionOrdinate.js +8 -15
  113. package/dist/Entities/DimensionOrdinate.js.map +1 -1
  114. package/dist/Entities/DimensionRadius.d.ts +3 -2
  115. package/dist/Entities/DimensionRadius.d.ts.map +1 -1
  116. package/dist/Entities/DimensionRadius.js +4 -7
  117. package/dist/Entities/DimensionRadius.js.map +1 -1
  118. package/dist/Entities/Ellipse.d.ts +3 -2
  119. package/dist/Entities/Ellipse.d.ts.map +1 -1
  120. package/dist/Entities/Ellipse.js +52 -7
  121. package/dist/Entities/Ellipse.js.map +1 -1
  122. package/dist/Entities/Entity.d.ts +12 -12
  123. package/dist/Entities/Entity.d.ts.map +1 -1
  124. package/dist/Entities/Entity.js +26 -15
  125. package/dist/Entities/Entity.js.map +1 -1
  126. package/dist/Entities/Face3D.d.ts +3 -2
  127. package/dist/Entities/Face3D.d.ts.map +1 -1
  128. package/dist/Entities/Face3D.js +11 -3
  129. package/dist/Entities/Face3D.js.map +1 -1
  130. package/dist/Entities/Hatch.d.ts +17 -16
  131. package/dist/Entities/Hatch.d.ts.map +1 -1
  132. package/dist/Entities/Hatch.js +218 -28
  133. package/dist/Entities/Hatch.js.map +1 -1
  134. package/dist/Entities/HatchPattern.d.ts.map +1 -1
  135. package/dist/Entities/HatchPattern.js +6 -1
  136. package/dist/Entities/HatchPattern.js.map +1 -1
  137. package/dist/Entities/IEntity.d.ts +2 -1
  138. package/dist/Entities/IEntity.d.ts.map +1 -1
  139. package/dist/Entities/IGeometricEntity.d.ts +3 -2
  140. package/dist/Entities/IGeometricEntity.d.ts.map +1 -1
  141. package/dist/Entities/IPolyline.d.ts +3 -1
  142. package/dist/Entities/IPolyline.d.ts.map +1 -1
  143. package/dist/Entities/IVertex.d.ts +2 -1
  144. package/dist/Entities/IVertex.d.ts.map +1 -1
  145. package/dist/Entities/Insert.d.ts +6 -3
  146. package/dist/Entities/Insert.d.ts.map +1 -1
  147. package/dist/Entities/Insert.js +63 -9
  148. package/dist/Entities/Insert.js.map +1 -1
  149. package/dist/Entities/Leader.d.ts +4 -3
  150. package/dist/Entities/Leader.d.ts.map +1 -1
  151. package/dist/Entities/Leader.js +8 -5
  152. package/dist/Entities/Leader.js.map +1 -1
  153. package/dist/Entities/Line.d.ts +3 -2
  154. package/dist/Entities/Line.d.ts.map +1 -1
  155. package/dist/Entities/Line.js +5 -4
  156. package/dist/Entities/Line.js.map +1 -1
  157. package/dist/Entities/LwPolyline.d.ts +4 -2
  158. package/dist/Entities/LwPolyline.d.ts.map +1 -1
  159. package/dist/Entities/LwPolyline.js +16 -2
  160. package/dist/Entities/LwPolyline.js.map +1 -1
  161. package/dist/Entities/MLine.d.ts +12 -5
  162. package/dist/Entities/MLine.d.ts.map +1 -1
  163. package/dist/Entities/MLine.js +53 -6
  164. package/dist/Entities/MLine.js.map +1 -1
  165. package/dist/Entities/MText.d.ts +4 -3
  166. package/dist/Entities/MText.d.ts.map +1 -1
  167. package/dist/Entities/MText.js +70 -7
  168. package/dist/Entities/MText.js.map +1 -1
  169. package/dist/Entities/Mesh.d.ts +3 -2
  170. package/dist/Entities/Mesh.d.ts.map +1 -1
  171. package/dist/Entities/Mesh.js +3 -4
  172. package/dist/Entities/Mesh.js.map +1 -1
  173. package/dist/Entities/ModelerGeometry.d.ts +3 -2
  174. package/dist/Entities/ModelerGeometry.d.ts.map +1 -1
  175. package/dist/Entities/ModelerGeometry.js +32 -3
  176. package/dist/Entities/ModelerGeometry.js.map +1 -1
  177. package/dist/Entities/MultiLeader.d.ts +14 -8
  178. package/dist/Entities/MultiLeader.d.ts.map +1 -1
  179. package/dist/Entities/MultiLeader.js +37 -3
  180. package/dist/Entities/MultiLeader.js.map +1 -1
  181. package/dist/Entities/Ole2Frame.d.ts +3 -2
  182. package/dist/Entities/Ole2Frame.d.ts.map +1 -1
  183. package/dist/Entities/Ole2Frame.js +4 -3
  184. package/dist/Entities/Ole2Frame.js.map +1 -1
  185. package/dist/Entities/PdfUnderlay.d.ts +2 -1
  186. package/dist/Entities/PdfUnderlay.d.ts.map +1 -1
  187. package/dist/Entities/PdfUnderlay.js +1 -1
  188. package/dist/Entities/PdfUnderlay.js.map +1 -1
  189. package/dist/Entities/Point.d.ts +3 -2
  190. package/dist/Entities/Point.d.ts.map +1 -1
  191. package/dist/Entities/Point.js +4 -3
  192. package/dist/Entities/Point.js.map +1 -1
  193. package/dist/Entities/PolyfaceMesh.d.ts +2 -1
  194. package/dist/Entities/PolyfaceMesh.d.ts.map +1 -1
  195. package/dist/Entities/PolyfaceMesh.js +3 -1
  196. package/dist/Entities/PolyfaceMesh.js.map +1 -1
  197. package/dist/Entities/PolygonMesh.d.ts +2 -1
  198. package/dist/Entities/PolygonMesh.d.ts.map +1 -1
  199. package/dist/Entities/PolygonMesh.js +3 -1
  200. package/dist/Entities/PolygonMesh.js.map +1 -1
  201. package/dist/Entities/Polyline.d.ts +12 -6
  202. package/dist/Entities/Polyline.d.ts.map +1 -1
  203. package/dist/Entities/Polyline.js +25 -2
  204. package/dist/Entities/Polyline.js.map +1 -1
  205. package/dist/Entities/Polyline2D.d.ts +2 -1
  206. package/dist/Entities/Polyline2D.d.ts.map +1 -1
  207. package/dist/Entities/Polyline2D.js +1 -1
  208. package/dist/Entities/Polyline2D.js.map +1 -1
  209. package/dist/Entities/Polyline3D.d.ts +2 -1
  210. package/dist/Entities/Polyline3D.d.ts.map +1 -1
  211. package/dist/Entities/Polyline3D.js +1 -1
  212. package/dist/Entities/Polyline3D.js.map +1 -1
  213. package/dist/Entities/ProxyEntity.d.ts +5 -3
  214. package/dist/Entities/ProxyEntity.d.ts.map +1 -1
  215. package/dist/Entities/ProxyEntity.js.map +1 -1
  216. package/dist/Entities/RasterImage.d.ts +4 -3
  217. package/dist/Entities/RasterImage.d.ts.map +1 -1
  218. package/dist/Entities/RasterImage.js +2 -2
  219. package/dist/Entities/RasterImage.js.map +1 -1
  220. package/dist/Entities/Ray.d.ts +3 -2
  221. package/dist/Entities/Ray.d.ts.map +1 -1
  222. package/dist/Entities/Ray.js +7 -3
  223. package/dist/Entities/Ray.js.map +1 -1
  224. package/dist/Entities/Seqend.d.ts +3 -2
  225. package/dist/Entities/Seqend.d.ts.map +1 -1
  226. package/dist/Entities/Seqend.js.map +1 -1
  227. package/dist/Entities/Shape.d.ts +3 -2
  228. package/dist/Entities/Shape.d.ts.map +1 -1
  229. package/dist/Entities/Shape.js +25 -2
  230. package/dist/Entities/Shape.js.map +1 -1
  231. package/dist/Entities/Solid.d.ts +3 -2
  232. package/dist/Entities/Solid.d.ts.map +1 -1
  233. package/dist/Entities/Solid.js +12 -3
  234. package/dist/Entities/Solid.js.map +1 -1
  235. package/dist/Entities/Spline.d.ts +3 -2
  236. package/dist/Entities/Spline.d.ts.map +1 -1
  237. package/dist/Entities/Spline.js +33 -5
  238. package/dist/Entities/Spline.js.map +1 -1
  239. package/dist/Entities/TableEntity.d.ts +8 -5
  240. package/dist/Entities/TableEntity.d.ts.map +1 -1
  241. package/dist/Entities/TableEntity.js.map +1 -1
  242. package/dist/Entities/TextEntity.d.ts +4 -3
  243. package/dist/Entities/TextEntity.d.ts.map +1 -1
  244. package/dist/Entities/TextEntity.js +12 -1
  245. package/dist/Entities/TextEntity.js.map +1 -1
  246. package/dist/Entities/Tolerance.d.ts +3 -2
  247. package/dist/Entities/Tolerance.d.ts.map +1 -1
  248. package/dist/Entities/Tolerance.js +24 -2
  249. package/dist/Entities/Tolerance.js.map +1 -1
  250. package/dist/Entities/UnderlayEntity.d.ts +6 -4
  251. package/dist/Entities/UnderlayEntity.d.ts.map +1 -1
  252. package/dist/Entities/UnderlayEntity.js +24 -4
  253. package/dist/Entities/UnderlayEntity.js.map +1 -1
  254. package/dist/Entities/UnknownEntity.d.ts +10 -3
  255. package/dist/Entities/UnknownEntity.d.ts.map +1 -1
  256. package/dist/Entities/UnknownEntity.js +7 -3
  257. package/dist/Entities/UnknownEntity.js.map +1 -1
  258. package/dist/Entities/Vertex.d.ts +3 -2
  259. package/dist/Entities/Vertex.d.ts.map +1 -1
  260. package/dist/Entities/Vertex.js +3 -2
  261. package/dist/Entities/Vertex.js.map +1 -1
  262. package/dist/Entities/Viewport.d.ts +12 -6
  263. package/dist/Entities/Viewport.d.ts.map +1 -1
  264. package/dist/Entities/Viewport.js +71 -15
  265. package/dist/Entities/Viewport.js.map +1 -1
  266. package/dist/Entities/XLine.d.ts +3 -2
  267. package/dist/Entities/XLine.d.ts.map +1 -1
  268. package/dist/Entities/XLine.js +7 -3
  269. package/dist/Entities/XLine.js.map +1 -1
  270. package/dist/Extensions/PolylineExtensions.d.ts +12 -0
  271. package/dist/Extensions/PolylineExtensions.d.ts.map +1 -1
  272. package/dist/Extensions/PolylineExtensions.js +121 -2
  273. package/dist/Extensions/PolylineExtensions.js.map +1 -1
  274. package/dist/Extensions/UnitExtensions.d.ts.map +1 -1
  275. package/dist/Extensions/UnitExtensions.js +0 -1
  276. package/dist/Extensions/UnitExtensions.js.map +1 -1
  277. package/dist/Header/CadHeader.d.ts +17 -4
  278. package/dist/Header/CadHeader.d.ts.map +1 -1
  279. package/dist/Header/CadHeader.js +63 -6
  280. package/dist/Header/CadHeader.js.map +1 -1
  281. package/dist/INamedCadObject.d.ts +1 -1
  282. package/dist/INamedCadObject.d.ts.map +1 -1
  283. package/dist/IO/CadDocumentBuilder.d.ts.map +1 -1
  284. package/dist/IO/CadDocumentBuilder.js +17 -11
  285. package/dist/IO/CadDocumentBuilder.js.map +1 -1
  286. package/dist/IO/CadReaderBase.d.ts.map +1 -1
  287. package/dist/IO/CadReaderBase.js +2 -3
  288. package/dist/IO/CadReaderBase.js.map +1 -1
  289. package/dist/IO/CadWriterBase.d.ts +1 -1
  290. package/dist/IO/CadWriterBase.d.ts.map +1 -1
  291. package/dist/IO/CadWriterBase.js +4 -6
  292. package/dist/IO/CadWriterBase.js.map +1 -1
  293. package/dist/IO/DWG/DwgHeaderHandlesCollection.d.ts.map +1 -1
  294. package/dist/IO/DWG/DwgHeaderHandlesCollection.js +5 -5
  295. package/dist/IO/DWG/DwgHeaderHandlesCollection.js.map +1 -1
  296. package/dist/IO/DWG/DwgReader.js +1 -1
  297. package/dist/IO/DWG/DwgReader.js.map +1 -1
  298. package/dist/IO/DWG/DwgStreamReaders/DwgHeaderReader.js +1 -1
  299. package/dist/IO/DWG/DwgStreamReaders/DwgHeaderReader.js.map +1 -1
  300. package/dist/IO/DWG/DwgStreamReaders/DwgObjectReader.d.ts +2 -0
  301. package/dist/IO/DWG/DwgStreamReaders/DwgObjectReader.d.ts.map +1 -1
  302. package/dist/IO/DWG/DwgStreamReaders/DwgObjectReader.js +215 -44
  303. package/dist/IO/DWG/DwgStreamReaders/DwgObjectReader.js.map +1 -1
  304. package/dist/IO/DWG/DwgStreamWriters/DwgAppInfodWriter.js +1 -1
  305. package/dist/IO/DWG/DwgStreamWriters/DwgAppInfodWriter.js.map +1 -1
  306. package/dist/IO/DWG/DwgStreamWriters/DwgAuxHeaderWriter.d.ts.map +1 -1
  307. package/dist/IO/DWG/DwgStreamWriters/DwgAuxHeaderWriter.js +3 -2
  308. package/dist/IO/DWG/DwgStreamWriters/DwgAuxHeaderWriter.js.map +1 -1
  309. package/dist/IO/DWG/DwgStreamWriters/DwgHeaderWriter.d.ts.map +1 -1
  310. package/dist/IO/DWG/DwgStreamWriters/DwgHeaderWriter.js +4 -4
  311. package/dist/IO/DWG/DwgStreamWriters/DwgHeaderWriter.js.map +1 -1
  312. package/dist/IO/DWG/DwgStreamWriters/DwgObjectWriter.d.ts.map +1 -1
  313. package/dist/IO/DWG/DwgStreamWriters/DwgObjectWriter.js +133 -61
  314. package/dist/IO/DWG/DwgStreamWriters/DwgObjectWriter.js.map +1 -1
  315. package/dist/IO/DWG/DwgStreamWriters/DwgStreamWriterAC18.js +4 -4
  316. package/dist/IO/DWG/DwgStreamWriters/DwgStreamWriterBase.d.ts +1 -1
  317. package/dist/IO/DWG/DwgStreamWriters/DwgStreamWriterBase.d.ts.map +1 -1
  318. package/dist/IO/DWG/DwgStreamWriters/DwgStreamWriterBase.js +4 -6
  319. package/dist/IO/DWG/DwgStreamWriters/DwgStreamWriterBase.js.map +1 -1
  320. package/dist/IO/DWG/DwgStreamWriters/DwgStreamWriterFactory.js.map +1 -1
  321. package/dist/IO/DWG/DwgStreamWriters/DwgSummaryInfoWriter.d.ts +2 -1
  322. package/dist/IO/DWG/DwgStreamWriters/DwgSummaryInfoWriter.d.ts.map +1 -1
  323. package/dist/IO/DWG/DwgStreamWriters/DwgSummaryInfoWriter.js +8 -9
  324. package/dist/IO/DWG/DwgStreamWriters/DwgSummaryInfoWriter.js.map +1 -1
  325. package/dist/IO/DWG/DwgWriter.d.ts.map +1 -1
  326. package/dist/IO/DWG/DwgWriter.js +17 -3
  327. package/dist/IO/DWG/DwgWriter.js.map +1 -1
  328. package/dist/IO/DXF/DxfReader.d.ts +1 -1
  329. package/dist/IO/DXF/DxfReader.d.ts.map +1 -1
  330. package/dist/IO/DXF/DxfReader.js +18 -7
  331. package/dist/IO/DXF/DxfReader.js.map +1 -1
  332. package/dist/IO/DXF/DxfStreamReader/DxfBinaryReader.js +1 -1
  333. package/dist/IO/DXF/DxfStreamReader/DxfBinaryReader.js.map +1 -1
  334. package/dist/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.js +3 -3
  335. package/dist/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.js.map +1 -1
  336. package/dist/IO/DXF/DxfStreamReader/DxfSectionReaderBase.d.ts.map +1 -1
  337. package/dist/IO/DXF/DxfStreamReader/DxfSectionReaderBase.js +8 -4
  338. package/dist/IO/DXF/DxfStreamReader/DxfSectionReaderBase.js.map +1 -1
  339. package/dist/IO/DXF/DxfStreamReader/DxfStreamReaderBase.d.ts +3 -1
  340. package/dist/IO/DXF/DxfStreamReader/DxfStreamReaderBase.d.ts.map +1 -1
  341. package/dist/IO/DXF/DxfStreamReader/DxfStreamReaderBase.js +5 -0
  342. package/dist/IO/DXF/DxfStreamReader/DxfStreamReaderBase.js.map +1 -1
  343. package/dist/IO/DXF/DxfStreamReader/DxfTablesSectionReader.d.ts +1 -1
  344. package/dist/IO/DXF/DxfStreamReader/DxfTablesSectionReader.d.ts.map +1 -1
  345. package/dist/IO/DXF/DxfStreamReader/DxfTablesSectionReader.js +107 -110
  346. package/dist/IO/DXF/DxfStreamReader/DxfTablesSectionReader.js.map +1 -1
  347. package/dist/IO/DXF/DxfStreamReader/DxfTextReader.d.ts +1 -2
  348. package/dist/IO/DXF/DxfStreamReader/DxfTextReader.d.ts.map +1 -1
  349. package/dist/IO/DXF/DxfStreamReader/DxfTextReader.js +10 -12
  350. package/dist/IO/DXF/DxfStreamReader/DxfTextReader.js.map +1 -1
  351. package/dist/IO/DXF/DxfStreamReader/IDxfStreamReader.d.ts +2 -1
  352. package/dist/IO/DXF/DxfStreamReader/IDxfStreamReader.d.ts.map +1 -1
  353. package/dist/IO/DXF/DxfStreamWriter/DxfAsciiWriter.d.ts +1 -1
  354. package/dist/IO/DXF/DxfStreamWriter/DxfAsciiWriter.d.ts.map +1 -1
  355. package/dist/IO/DXF/DxfStreamWriter/DxfAsciiWriter.js.map +1 -1
  356. package/dist/IO/DXF/DxfStreamWriter/DxfBinaryWriter.d.ts +3 -2
  357. package/dist/IO/DXF/DxfStreamWriter/DxfBinaryWriter.d.ts.map +1 -1
  358. package/dist/IO/DXF/DxfStreamWriter/DxfBinaryWriter.js +5 -2
  359. package/dist/IO/DXF/DxfStreamWriter/DxfBinaryWriter.js.map +1 -1
  360. package/dist/IO/DXF/DxfStreamWriter/DxfObjectsSectionWriter.d.ts.map +1 -1
  361. package/dist/IO/DXF/DxfStreamWriter/DxfObjectsSectionWriter.js +4 -3
  362. package/dist/IO/DXF/DxfStreamWriter/DxfObjectsSectionWriter.js.map +1 -1
  363. package/dist/IO/DXF/DxfStreamWriter/DxfSectionWriterBase.js +6 -6
  364. package/dist/IO/DXF/DxfStreamWriter/DxfSectionWriterBase.js.map +1 -1
  365. package/dist/IO/DXF/DxfStreamWriter/DxfStreamWriterBase.d.ts +2 -2
  366. package/dist/IO/DXF/DxfStreamWriter/DxfStreamWriterBase.d.ts.map +1 -1
  367. package/dist/IO/DXF/DxfStreamWriter/DxfStreamWriterBase.js.map +1 -1
  368. package/dist/IO/DXF/DxfStreamWriter/IDxfStreamWriter.d.ts +1 -1
  369. package/dist/IO/DXF/DxfStreamWriter/IDxfStreamWriter.d.ts.map +1 -1
  370. package/dist/IO/DXF/DxfWriter.d.ts.map +1 -1
  371. package/dist/IO/DXF/DxfWriter.js +7 -5
  372. package/dist/IO/DXF/DxfWriter.js.map +1 -1
  373. package/dist/IO/SVG/SvgDocumentBuilder.js +1 -1
  374. package/dist/IO/SVG/SvgXmlWriter.d.ts +1 -1
  375. package/dist/IO/SVG/SvgXmlWriter.d.ts.map +1 -1
  376. package/dist/IO/SVG/SvgXmlWriter.js +25 -17
  377. package/dist/IO/SVG/SvgXmlWriter.js.map +1 -1
  378. package/dist/IO/Templates/CadBlockRecordTemplate.d.ts.map +1 -1
  379. package/dist/IO/Templates/CadBlockRecordTemplate.js +2 -0
  380. package/dist/IO/Templates/CadBlockRecordTemplate.js.map +1 -1
  381. package/dist/IO/Templates/CadDictionaryTemplate.js +1 -1
  382. package/dist/IO/Templates/CadDictionaryTemplate.js.map +1 -1
  383. package/dist/IO/Templates/CadDimensionTemplate.d.ts +2 -1
  384. package/dist/IO/Templates/CadDimensionTemplate.d.ts.map +1 -1
  385. package/dist/IO/Templates/CadDimensionTemplate.js.map +1 -1
  386. package/dist/IO/Templates/CadEntityTemplate.d.ts +1 -1
  387. package/dist/IO/Templates/CadEntityTemplate.d.ts.map +1 -1
  388. package/dist/IO/Templates/CadEntityTemplate.js +1 -1
  389. package/dist/IO/Templates/CadEntityTemplate.js.map +1 -1
  390. package/dist/IO/Templates/CadGroupTemplate.js +1 -1
  391. package/dist/IO/Templates/CadGroupTemplate.js.map +1 -1
  392. package/dist/IO/Templates/CadInsertTemplate.d.ts.map +1 -1
  393. package/dist/IO/Templates/CadInsertTemplate.js +2 -0
  394. package/dist/IO/Templates/CadInsertTemplate.js.map +1 -1
  395. package/dist/IO/Templates/CadLayoutTemplate.d.ts.map +1 -1
  396. package/dist/IO/Templates/CadLayoutTemplate.js +4 -2
  397. package/dist/IO/Templates/CadLayoutTemplate.js.map +1 -1
  398. package/dist/IO/Templates/CadMLeaderTemplate.d.ts.map +1 -1
  399. package/dist/IO/Templates/CadMLeaderTemplate.js +17 -2
  400. package/dist/IO/Templates/CadMLeaderTemplate.js.map +1 -1
  401. package/dist/IO/Templates/CadMLineStyleTemplate.js +1 -1
  402. package/dist/IO/Templates/CadMLineStyleTemplate.js.map +1 -1
  403. package/dist/IO/Templates/CadMLineTemplate.d.ts +1 -1
  404. package/dist/IO/Templates/CadMLineTemplate.d.ts.map +1 -1
  405. package/dist/IO/Templates/CadMLineTemplate.js.map +1 -1
  406. package/dist/IO/Templates/CadPolyLineTemplate.d.ts.map +1 -1
  407. package/dist/IO/Templates/CadPolyLineTemplate.js.map +1 -1
  408. package/dist/IO/Templates/CadTableEntryTemplate.d.ts +1 -1
  409. package/dist/IO/Templates/CadTableEntryTemplate.d.ts.map +1 -1
  410. package/dist/IO/Templates/CadTableEntryTemplate.js.map +1 -1
  411. package/dist/IO/Templates/CadTableStyleTemplate.d.ts.map +1 -1
  412. package/dist/IO/Templates/CadTableStyleTemplate.js +2 -1
  413. package/dist/IO/Templates/CadTableStyleTemplate.js.map +1 -1
  414. package/dist/IO/Templates/CadTableTemplate.js +1 -1
  415. package/dist/IO/Templates/CadTableTemplate.js.map +1 -1
  416. package/dist/IO/Templates/CadTemplate.d.ts +2 -2
  417. package/dist/IO/Templates/CadTemplate.d.ts.map +1 -1
  418. package/dist/IO/Templates/CadTemplate.js +24 -7
  419. package/dist/IO/Templates/CadTemplate.js.map +1 -1
  420. package/dist/IO/Templates/CadUnderlayTemplate.d.ts +1 -1
  421. package/dist/IO/Templates/CadUnderlayTemplate.d.ts.map +1 -1
  422. package/dist/IO/Templates/CadUnderlayTemplate.js.map +1 -1
  423. package/dist/IO/Templates/CadViewTemplate.d.ts.map +1 -1
  424. package/dist/IO/Templates/CadViewTemplate.js +31 -1
  425. package/dist/IO/Templates/CadViewTemplate.js.map +1 -1
  426. package/dist/IO/Templates/CadViewportTemplate.d.ts.map +1 -1
  427. package/dist/IO/Templates/CadViewportTemplate.js +3 -0
  428. package/dist/IO/Templates/CadViewportTemplate.js.map +1 -1
  429. package/dist/IO/Templates/CadWipeoutBaseTemplate.d.ts.map +1 -1
  430. package/dist/IO/Templates/CadWipeoutBaseTemplate.js +2 -0
  431. package/dist/IO/Templates/CadWipeoutBaseTemplate.js.map +1 -1
  432. package/dist/IO/Templates/CadXRecordTemplate.d.ts.map +1 -1
  433. package/dist/IO/Templates/CadXRecordTemplate.js +3 -1
  434. package/dist/IO/Templates/CadXRecordTemplate.js.map +1 -1
  435. package/dist/IO/TextEncoding.d.ts +6 -0
  436. package/dist/IO/TextEncoding.d.ts.map +1 -0
  437. package/dist/IO/TextEncoding.js +356 -0
  438. package/dist/IO/TextEncoding.js.map +1 -0
  439. package/dist/IObservableCadCollection.d.ts +2 -2
  440. package/dist/IObservableCadCollection.d.ts.map +1 -1
  441. package/dist/ISeqendColleciton.d.ts +4 -3
  442. package/dist/ISeqendColleciton.d.ts.map +1 -1
  443. package/dist/Math/Matrix4.js.map +1 -1
  444. package/dist/Metadata/GeneratedClassMetadata.d.ts +3 -0
  445. package/dist/Metadata/GeneratedClassMetadata.d.ts.map +1 -0
  446. package/dist/Metadata/GeneratedClassMetadata.js +10271 -0
  447. package/dist/Metadata/GeneratedClassMetadata.js.map +1 -0
  448. package/dist/Metadata/LookupTables/Blocks.d.ts +3 -0
  449. package/dist/Metadata/LookupTables/Blocks.d.ts.map +1 -0
  450. package/dist/Metadata/LookupTables/Blocks.js +65 -0
  451. package/dist/Metadata/LookupTables/Blocks.js.map +1 -0
  452. package/dist/Metadata/LookupTables/Core.d.ts +3 -0
  453. package/dist/Metadata/LookupTables/Core.d.ts.map +1 -0
  454. package/dist/Metadata/LookupTables/Core.js +2347 -0
  455. package/dist/Metadata/LookupTables/Core.js.map +1 -0
  456. package/dist/Metadata/LookupTables/Entities.d.ts +3 -0
  457. package/dist/Metadata/LookupTables/Entities.d.ts.map +1 -0
  458. package/dist/Metadata/LookupTables/Entities.js +3046 -0
  459. package/dist/Metadata/LookupTables/Entities.js.map +1 -0
  460. package/dist/Metadata/LookupTables/Objects.d.ts +3 -0
  461. package/dist/Metadata/LookupTables/Objects.d.ts.map +1 -0
  462. package/dist/Metadata/LookupTables/Objects.js +3555 -0
  463. package/dist/Metadata/LookupTables/Objects.js.map +1 -0
  464. package/dist/Metadata/LookupTables/Tables.d.ts +3 -0
  465. package/dist/Metadata/LookupTables/Tables.d.ts.map +1 -0
  466. package/dist/Metadata/LookupTables/Tables.js +1270 -0
  467. package/dist/Metadata/LookupTables/Tables.js.map +1 -0
  468. package/dist/Metadata/MetadataLookupTable.d.ts +3 -0
  469. package/dist/Metadata/MetadataLookupTable.d.ts.map +1 -0
  470. package/dist/Metadata/MetadataLookupTable.js +14 -0
  471. package/dist/Metadata/MetadataLookupTable.js.map +1 -0
  472. package/dist/Metadata/MetadataStore.d.ts +7 -0
  473. package/dist/Metadata/MetadataStore.d.ts.map +1 -0
  474. package/dist/Metadata/MetadataStore.js +50 -0
  475. package/dist/Metadata/MetadataStore.js.map +1 -0
  476. package/dist/Metadata/MetadataTypes.d.ts +22 -0
  477. package/dist/Metadata/MetadataTypes.d.ts.map +1 -0
  478. package/dist/Metadata/MetadataTypes.js +2 -0
  479. package/dist/Metadata/MetadataTypes.js.map +1 -0
  480. package/dist/Objects/BlockRepresentationData.d.ts +2 -1
  481. package/dist/Objects/BlockRepresentationData.d.ts.map +1 -1
  482. package/dist/Objects/BlockRepresentationData.js.map +1 -1
  483. package/dist/Objects/CadDictionary.d.ts +2 -2
  484. package/dist/Objects/CadDictionary.d.ts.map +1 -1
  485. package/dist/Objects/CadDictionary.js.map +1 -1
  486. package/dist/Objects/Collections/GroupCollection.d.ts +4 -1
  487. package/dist/Objects/Collections/GroupCollection.d.ts.map +1 -1
  488. package/dist/Objects/Collections/GroupCollection.js +24 -3
  489. package/dist/Objects/Collections/GroupCollection.js.map +1 -1
  490. package/dist/Objects/Collections/ObjectDictionaryCollection.d.ts +2 -2
  491. package/dist/Objects/Collections/ObjectDictionaryCollection.d.ts.map +1 -1
  492. package/dist/Objects/Collections/ObjectDictionaryCollection.js.map +1 -1
  493. package/dist/Objects/DimensionAssociation.d.ts +2 -1
  494. package/dist/Objects/DimensionAssociation.d.ts.map +1 -1
  495. package/dist/Objects/DimensionAssociation.js.map +1 -1
  496. package/dist/Objects/Evaluations/BlockAction.d.ts +2 -1
  497. package/dist/Objects/Evaluations/BlockAction.d.ts.map +1 -1
  498. package/dist/Objects/Evaluations/BlockAction.js.map +1 -1
  499. package/dist/Objects/Evaluations/BlockVisibilityParameter.d.ts +3 -2
  500. package/dist/Objects/Evaluations/BlockVisibilityParameter.d.ts.map +1 -1
  501. package/dist/Objects/Evaluations/BlockVisibilityParameter.js +2 -2
  502. package/dist/Objects/Evaluations/BlockVisibilityParameter.js.map +1 -1
  503. package/dist/Objects/GeoData.d.ts +2 -1
  504. package/dist/Objects/GeoData.d.ts.map +1 -1
  505. package/dist/Objects/GeoData.js.map +1 -1
  506. package/dist/Objects/ImageDefinitionReactor.d.ts +2 -1
  507. package/dist/Objects/ImageDefinitionReactor.d.ts.map +1 -1
  508. package/dist/Objects/ImageDefinitionReactor.js.map +1 -1
  509. package/dist/Objects/Layout.d.ts +14 -8
  510. package/dist/Objects/Layout.d.ts.map +1 -1
  511. package/dist/Objects/Layout.js +38 -6
  512. package/dist/Objects/Layout.js.map +1 -1
  513. package/dist/Objects/LinkedData.d.ts +5 -4
  514. package/dist/Objects/LinkedData.d.ts.map +1 -1
  515. package/dist/Objects/LinkedData.js +2 -1
  516. package/dist/Objects/LinkedData.js.map +1 -1
  517. package/dist/Objects/MLineStyle.d.ts +5 -3
  518. package/dist/Objects/MLineStyle.d.ts.map +1 -1
  519. package/dist/Objects/MLineStyle.js +3 -3
  520. package/dist/Objects/MLineStyle.js.map +1 -1
  521. package/dist/Objects/MultiLeaderObjectContextData.d.ts +15 -9
  522. package/dist/Objects/MultiLeaderObjectContextData.d.ts.map +1 -1
  523. package/dist/Objects/MultiLeaderObjectContextData.js +29 -4
  524. package/dist/Objects/MultiLeaderObjectContextData.js.map +1 -1
  525. package/dist/Objects/MultiLeaderStyle.d.ts +14 -8
  526. package/dist/Objects/MultiLeaderStyle.d.ts.map +1 -1
  527. package/dist/Objects/MultiLeaderStyle.js +27 -5
  528. package/dist/Objects/MultiLeaderStyle.js.map +1 -1
  529. package/dist/Objects/NonGraphicalObject.d.ts +2 -4
  530. package/dist/Objects/NonGraphicalObject.d.ts.map +1 -1
  531. package/dist/Objects/NonGraphicalObject.js +2 -1
  532. package/dist/Objects/NonGraphicalObject.js.map +1 -1
  533. package/dist/Objects/ProxyObject.d.ts +2 -1
  534. package/dist/Objects/ProxyObject.d.ts.map +1 -1
  535. package/dist/Objects/ProxyObject.js.map +1 -1
  536. package/dist/Objects/SortEntitiesTable.d.ts +9 -7
  537. package/dist/Objects/SortEntitiesTable.d.ts.map +1 -1
  538. package/dist/Objects/SortEntitiesTable.js +1 -1
  539. package/dist/Objects/SortEntitiesTable.js.map +1 -1
  540. package/dist/Objects/TableContent.d.ts +3 -2
  541. package/dist/Objects/TableContent.d.ts.map +1 -1
  542. package/dist/Objects/TableContent.js.map +1 -1
  543. package/dist/Objects/TableStyle.d.ts +6 -5
  544. package/dist/Objects/TableStyle.d.ts.map +1 -1
  545. package/dist/Objects/TableStyle.js +5 -4
  546. package/dist/Objects/TableStyle.js.map +1 -1
  547. package/dist/Objects/UnknownNonGraphicalObject.d.ts +8 -2
  548. package/dist/Objects/UnknownNonGraphicalObject.d.ts.map +1 -1
  549. package/dist/Objects/UnknownNonGraphicalObject.js +2 -1
  550. package/dist/Objects/UnknownNonGraphicalObject.js.map +1 -1
  551. package/dist/Objects/XRecrod.d.ts +4 -4
  552. package/dist/Objects/XRecrod.d.ts.map +1 -1
  553. package/dist/Objects/XRecrod.js.map +1 -1
  554. package/dist/PropertyReflection.d.ts +7 -2
  555. package/dist/PropertyReflection.d.ts.map +1 -1
  556. package/dist/PropertyReflection.js +27 -5
  557. package/dist/PropertyReflection.js.map +1 -1
  558. package/dist/SeqendCollection.d.ts +3 -3
  559. package/dist/SeqendCollection.d.ts.map +1 -1
  560. package/dist/SeqendCollection.js.map +1 -1
  561. package/dist/Tables/BlockRecord.d.ts +23 -8
  562. package/dist/Tables/BlockRecord.d.ts.map +1 -1
  563. package/dist/Tables/BlockRecord.js +113 -18
  564. package/dist/Tables/BlockRecord.js.map +1 -1
  565. package/dist/Tables/Collections/Table.d.ts +2 -2
  566. package/dist/Tables/Collections/Table.d.ts.map +1 -1
  567. package/dist/Tables/Collections/Table.js +1 -1
  568. package/dist/Tables/Collections/Table.js.map +1 -1
  569. package/dist/Tables/Layer.d.ts +6 -3
  570. package/dist/Tables/Layer.d.ts.map +1 -1
  571. package/dist/Tables/Layer.js +5 -3
  572. package/dist/Tables/Layer.js.map +1 -1
  573. package/dist/Tables/LineType.d.ts +2 -1
  574. package/dist/Tables/LineType.d.ts.map +1 -1
  575. package/dist/Tables/LineType.js.map +1 -1
  576. package/dist/Tables/TableEntry.d.ts +1 -1
  577. package/dist/Tables/TableEntry.d.ts.map +1 -1
  578. package/dist/Tables/TableEntry.js.map +1 -1
  579. package/dist/Tables/TextStyle.d.ts +2 -5
  580. package/dist/Tables/TextStyle.d.ts.map +1 -1
  581. package/dist/Tables/TextStyle.js +2 -7
  582. package/dist/Tables/TextStyle.js.map +1 -1
  583. package/dist/Tables/VPort.d.ts +2 -1
  584. package/dist/Tables/VPort.d.ts.map +1 -1
  585. package/dist/Tables/VPort.js.map +1 -1
  586. package/dist/Tables/View.d.ts +2 -1
  587. package/dist/Tables/View.d.ts.map +1 -1
  588. package/dist/Tables/View.js +1 -1
  589. package/dist/Tables/View.js.map +1 -1
  590. package/dist/XData/ExtendedDataDictionary.d.ts +6 -7
  591. package/dist/XData/ExtendedDataDictionary.d.ts.map +1 -1
  592. package/dist/XData/ExtendedDataDictionary.js +11 -7
  593. package/dist/XData/ExtendedDataDictionary.js.map +1 -1
  594. package/dist/XData/ExtendedDataLayer.d.ts +2 -2
  595. package/dist/XData/ExtendedDataLayer.d.ts.map +1 -1
  596. package/dist/XData/ExtendedDataLayer.js +0 -1
  597. package/dist/XData/ExtendedDataLayer.js.map +1 -1
  598. package/dist/XData/ExtendedDataReference.d.ts +2 -1
  599. package/dist/XData/ExtendedDataReference.d.ts.map +1 -1
  600. package/dist/XData/ExtendedDataReference.js +1 -1
  601. package/dist/XData/ExtendedDataReference.js.map +1 -1
  602. package/dist/XData/IExtendedDataHandleReference.d.ts +2 -1
  603. package/dist/XData/IExtendedDataHandleReference.d.ts.map +1 -1
  604. package/dist/index-min.js +12 -13
  605. package/package.json +2 -2
@@ -1,11 +1,19 @@
1
1
  import { Entity } from './Entity.js';
2
2
  import { CadObject } from '../CadObject.js';
3
3
  import { DxfSubclassMarker } from '../DxfSubclassMarker.js';
4
+ import { AppId } from '../Tables/AppId.js';
4
5
  import { DimensionStyle } from '../Tables/DimensionStyle.js';
5
6
  import { BlockRecord } from '../Tables/BlockRecord.js';
7
+ import { Layer } from '../Tables/Layer.js';
6
8
  import { DimensionType } from './DimensionType.js';
7
9
  import { AttachmentPointType } from './AttachmentPointType.js';
8
10
  import { LineSpacingStyleType } from './LineSpacingStyleType.js';
11
+ import { DxfClassMap } from '../DxfClassMap.js';
12
+ import { Line } from './Line.js';
13
+ import { MText } from './MText.js';
14
+ import { Point } from './Point.js';
15
+ import { ExtendedData } from '../XData/ExtendedData.js';
16
+ import { ExtendedDataInteger16 } from '../XData/ExtendedDataInteger16.js';
9
17
  import { XYZ } from '../Math/XYZ.js';
10
18
  export class Dimension extends Entity {
11
19
  attachmentPoint = AttachmentPointType.TopLeft;
@@ -31,7 +39,11 @@ export class Dimension extends Entity {
31
39
  flipArrow1 = false;
32
40
  flipArrow2 = false;
33
41
  get hasStyleOverride() {
34
- // TODO: ExtendedData access not available
42
+ for (const [appName, data] of this.extendedData.getExtendedDataByName()) {
43
+ if (data.records.length > 0 && (appName === AppId.DefaultName.toUpperCase() || appName.startsWith(`${AppId.DefaultName.toUpperCase()}_DSTYLE`))) {
44
+ return true;
45
+ }
46
+ }
35
47
  return false;
36
48
  }
37
49
  horizontalDirection = 0;
@@ -83,7 +95,14 @@ export class Dimension extends Entity {
83
95
  this._flags |= DimensionType.BlockReference;
84
96
  }
85
97
  applyTransform(transform) {
86
- // TODO: Complex transform with world matrix
98
+ this.definitionPoint = this.applyTransformToPoint(transform, this.definitionPoint);
99
+ this.insertionPoint = this.applyTransformToPoint(transform, this.insertionPoint);
100
+ this.textMiddlePoint = this.applyTransformToPoint(transform, this.textMiddlePoint);
101
+ this.normal = this.applyTransformToVector(transform, this.normal).normalize();
102
+ const rotation = transform?.eulerRotation?.z;
103
+ if (typeof rotation === 'number') {
104
+ this.textRotation += rotation;
105
+ }
87
106
  }
88
107
  clone() {
89
108
  const clone = super.clone();
@@ -95,22 +114,97 @@ export class Dimension extends Entity {
95
114
  if (!this.hasStyleOverride) {
96
115
  return this.style;
97
116
  }
98
- // TODO: Style override map not available
99
- return this.style;
117
+ const style = this.style.clone();
118
+ const map = this.getStyleOverrideMap();
119
+ if (map == null) {
120
+ return style;
121
+ }
122
+ const classMap = DxfClassMap.Create(DimensionStyle);
123
+ for (const [code, value] of map) {
124
+ const property = classMap.dxfProperties.get(code);
125
+ if (property != null) {
126
+ property.setValue(code, style, value);
127
+ }
128
+ }
129
+ return style;
100
130
  }
101
131
  getMeasurementText(style) {
102
- // TODO: Complex measurement text formatting not available
103
- return this.measurement.toString();
132
+ const activeStyle = style ?? this.getActiveDimensionStyle();
133
+ const measurement = this.formatMeasurement(this.measurement, activeStyle);
134
+ if (this.text.length > 0) {
135
+ return this.text.includes('<>') ? this.text.replace(/<>/g, measurement) : this.text;
136
+ }
137
+ return `${activeStyle.prefix}${measurement}${activeStyle.suffix}`;
104
138
  }
105
139
  getStyleOverrideMap() {
106
- // TODO: DxfClassMap not available
107
- return null;
140
+ const map = new Map();
141
+ const classMap = DxfClassMap.Create(DimensionStyle);
142
+ for (const [name, extendedData] of this.extendedData.getExtendedDataByName()) {
143
+ if (name !== AppId.DefaultName.toUpperCase() && !name.startsWith(`${AppId.DefaultName.toUpperCase()}_${DimensionStyle.StyleOverrideEntryName}`)) {
144
+ continue;
145
+ }
146
+ for (let index = 0; index < extendedData.records.length - 1; index++) {
147
+ const codeRecord = extendedData.records[index];
148
+ const valueRecord = extendedData.records[index + 1];
149
+ if (!(codeRecord instanceof ExtendedDataInteger16)) {
150
+ continue;
151
+ }
152
+ if (classMap.dxfProperties.has(codeRecord.value)) {
153
+ map.set(codeRecord.value, valueRecord.rawValue);
154
+ }
155
+ index += 1;
156
+ }
157
+ }
158
+ return map.size > 0 ? map : null;
108
159
  }
109
160
  setDimensionOverride(styleOverride) {
110
- // TODO: DxfClassMap not available
161
+ const current = this.style;
162
+ const classMap = DxfClassMap.Create(DimensionStyle);
163
+ const overrides = new Map();
164
+ for (const [code, property] of classMap.dxfProperties) {
165
+ const baseValue = property.getRawValue(current);
166
+ const overrideValue = property.getRawValue(styleOverride);
167
+ if (overrideValue !== undefined && overrideValue !== null && overrideValue !== baseValue) {
168
+ overrides.set(code, overrideValue);
169
+ }
170
+ }
171
+ this.setStyleOverrideMap(overrides);
111
172
  }
112
173
  setStyleOverrideMap(map) {
113
- // TODO: ExtendedData not available
174
+ const appName = `${AppId.DefaultName}_${DimensionStyle.StyleOverrideEntryName}`;
175
+ const nextRecords = [];
176
+ if (map != null) {
177
+ const classMap = DxfClassMap.Create(DimensionStyle);
178
+ for (const [code, value] of map) {
179
+ const property = classMap.dxfProperties.get(code);
180
+ if (property == null) {
181
+ continue;
182
+ }
183
+ property.storedValue = value;
184
+ nextRecords.push(...property.toXDataRecords());
185
+ }
186
+ }
187
+ const existing = this.extendedData.tryGetByName(appName);
188
+ if (map == null || map.size === 0) {
189
+ if (existing.found && existing.value != null) {
190
+ for (const [app] of this.extendedData) {
191
+ if (app.name.toUpperCase() === appName.toUpperCase()) {
192
+ this.extendedData.set(app, new ExtendedData());
193
+ }
194
+ }
195
+ }
196
+ return;
197
+ }
198
+ const records = new ExtendedData(nextRecords);
199
+ if (existing.found) {
200
+ for (const [app] of this.extendedData) {
201
+ if (app.name.toUpperCase() === appName.toUpperCase()) {
202
+ this.extendedData.set(app, records);
203
+ }
204
+ }
205
+ return;
206
+ }
207
+ this.extendedData.addByName(appName, records);
114
208
  }
115
209
  updateBlock() {
116
210
  this.createBlock();
@@ -139,15 +233,91 @@ export class Dimension extends Entity {
139
233
  if (this.document != null) {
140
234
  this._block = CadObject.updateCollection(this._block, this.document.blockRecords);
141
235
  }
142
- this._block.entities?.clear?.();
236
+ this._block.entities.clear();
143
237
  }
144
238
  createDefinitionPoint(location) {
145
- // TODO: Point with Defpoints layer
146
- return null;
239
+ const point = new Point(new XYZ(location.x, location.y, location.z));
240
+ point.layer = this.document?.layers.get(Layer.DefpointsName) ?? Layer.Defpoints;
241
+ point.normal = this.normal;
242
+ return point;
147
243
  }
148
244
  createTextEntity(insertPoint, text) {
149
- // TODO: MText creation
150
- return null;
245
+ const style = this.getActiveDimensionStyle();
246
+ const entity = new MText();
247
+ entity.insertPoint = new XYZ(insertPoint.x, insertPoint.y, insertPoint.z);
248
+ entity.alignmentPoint = new XYZ(Math.cos(this.textRotation), Math.sin(this.textRotation), 0);
249
+ entity.attachmentPoint = this.attachmentPoint;
250
+ entity.color = style.textColor;
251
+ entity.height = style.textHeight;
252
+ entity.layer = this.layer;
253
+ entity.lineSpacing = this.lineSpacingFactor === 0 ? entity.lineSpacing : this.lineSpacingFactor;
254
+ entity.lineSpacingStyle = this.lineSpacingStyle;
255
+ entity.normal = this.normal;
256
+ entity.rotation = this.textRotation;
257
+ entity.style = style.style;
258
+ entity.value = text;
259
+ return entity;
260
+ }
261
+ populateBlock(lineSegments, definitionPoints, textPoint = this.textMiddlePoint) {
262
+ this.createBlock();
263
+ for (const [start, end] of lineSegments) {
264
+ this.addBlockLine(start, end);
265
+ }
266
+ const seenPoints = new Set();
267
+ for (const point of definitionPoints) {
268
+ if (!this.isFinitePoint(point)) {
269
+ continue;
270
+ }
271
+ const key = `${point.x}:${point.y}:${point.z}`;
272
+ if (seenPoints.has(key)) {
273
+ continue;
274
+ }
275
+ seenPoints.add(key);
276
+ this._block.entities.add(this.createDefinitionPoint(point));
277
+ }
278
+ if (this.isFinitePoint(textPoint)) {
279
+ this._block.entities.add(this.createTextEntity(textPoint, this.getMeasurementText()));
280
+ }
281
+ }
282
+ static angleBetweenVectors(first, second) {
283
+ const lengthProduct = first.getLength() * second.getLength();
284
+ if (lengthProduct === 0) {
285
+ return 0;
286
+ }
287
+ const cosine = first.dot(second) / lengthProduct;
288
+ const clamped = Math.max(-1, Math.min(1, cosine));
289
+ return Math.acos(clamped);
290
+ }
291
+ static areParallel(first, second) {
292
+ return Dimension.isZeroVector(first.cross(second));
293
+ }
294
+ isFinitePoint(point) {
295
+ return Number.isFinite(point.x) && Number.isFinite(point.y) && Number.isFinite(point.z);
296
+ }
297
+ addBlockLine(start, end) {
298
+ if (!this.isFinitePoint(start) || !this.isFinitePoint(end) || start.equals(end)) {
299
+ return;
300
+ }
301
+ const line = new Line(new XYZ(start.x, start.y, start.z), new XYZ(end.x, end.y, end.z));
302
+ line.layer = this.layer;
303
+ line.normal = this.normal;
304
+ this._block.entities.add(line);
305
+ }
306
+ static intersectLinesXY(firstStart, firstEnd, secondStart, secondEnd) {
307
+ const denominator = (firstStart.x - firstEnd.x) * (secondStart.y - secondEnd.y) -
308
+ (firstStart.y - firstEnd.y) * (secondStart.x - secondEnd.x);
309
+ if (Math.abs(denominator) <= 1e-12) {
310
+ return XYZ.NaN;
311
+ }
312
+ const firstDeterminant = firstStart.x * firstEnd.y - firstStart.y * firstEnd.x;
313
+ const secondDeterminant = secondStart.x * secondEnd.y - secondStart.y * secondEnd.x;
314
+ return new XYZ((firstDeterminant * (secondStart.x - secondEnd.x) - (firstStart.x - firstEnd.x) * secondDeterminant) / denominator, (firstDeterminant * (secondStart.y - secondEnd.y) - (firstStart.y - firstEnd.y) * secondDeterminant) / denominator, firstStart.z);
315
+ }
316
+ static isZeroVector(vector, epsilon = 1e-12) {
317
+ return Math.abs(vector.x) <= epsilon && Math.abs(vector.y) <= epsilon && Math.abs(vector.z) <= epsilon;
318
+ }
319
+ static subtractPoints(first, second) {
320
+ return new XYZ(first.x - second.x, first.y - second.y, first.z - second.z);
151
321
  }
152
322
  _tableOnRemove(sender, e) {
153
323
  super._tableOnRemove(sender, e);
@@ -161,6 +331,16 @@ export class Dimension extends Entity {
161
331
  generateBlockName() {
162
332
  return `*D${this.handle}`;
163
333
  }
334
+ formatMeasurement(value, style) {
335
+ if (!Number.isFinite(value)) {
336
+ return '';
337
+ }
338
+ let measurement = value;
339
+ if (style.rounding > 0) {
340
+ measurement = Math.round(measurement / style.rounding) * style.rounding;
341
+ }
342
+ return measurement.toFixed(style.decimalPlaces);
343
+ }
164
344
  }
165
345
  export { DimensionType } from './DimensionType.js';
166
346
  //# sourceMappingURL=Dimension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dimension.js","sourceRoot":"","sources":["../../src/Entities/Dimension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dimension.js","sourceRoot":"","sources":["../../src/Entities/Dimension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,MAAM,OAAgB,SAAU,SAAQ,MAAM;IAC7C,eAAe,GAAwB,mBAAmB,CAAC,OAAO,CAAC;IAEnE,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IACD,IAAI,KAAK,CAAC,KAAyB;QAClC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,KAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,CAAC;IACF,CAAC;IAED,eAAe,GAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAExC,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IACD,gBAAgB;IAChB,IAAI,KAAK,CAAC,KAAoB;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,UAAU,GAAY,KAAK,CAAC;IAE5B,UAAU,GAAY,KAAK,CAAC;IAE5B,IAAI,gBAAgB;QACnB,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACzE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;gBACjJ,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,mBAAmB,GAAW,CAAC,CAAC;IAEhC,cAAc,GAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvC,IAAI,SAAS;QACZ,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzG,CAAC;IAED,IAAI,yBAAyB;QAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,yBAAyB,CAAC,KAAc;QAC3C,IAAI,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,uBAAuB,CAAC;QACnE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,aAAa,CAAC,uBAAuB,CAAC;QACpE,CAAC;IACF,CAAC;IAED,iBAAiB,GAAW,CAAC,CAAC;IAE9B,gBAAgB,GAAyB,oBAAoB,CAAC,OAAO,CAAC;IAItE,MAAM,GAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/B,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IACD,IAAI,KAAK,CAAC,KAAqB;QAC9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,CAAC;IACF,CAAC;IAED,IAAa,cAAc;QAC1B,OAAO,iBAAiB,CAAC,SAAS,CAAC;IACpC,CAAC;IAED,IAAI,GAAW,EAAE,CAAC;IAElB,eAAe,GAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAExC,YAAY,GAAW,CAAC,CAAC;IAEzB,OAAO,GAAW,CAAC,CAAC;IAEV,MAAM,GAAuB,IAAI,CAAC;IAClC,MAAM,CAAgB;IACxB,MAAM,GAAmB,cAAc,CAAC,OAAO,CAAC;IAExD,YAAsB,IAAmB;QACxC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,cAAc,CAAC;IAC7C,CAAC;IAEQ,cAAc,CAAC,SAAkB;QACzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACjF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QAC9E,MAAM,QAAQ,GAAI,SAAwD,EAAE,aAAa,EAAE,CAAC,CAAC;QAC7F,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC;QAC/B,CAAC;IACF,CAAC;IAEQ,KAAK;QACb,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAe,CAAC;QACzC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAoB,CAAC;QACrD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAiB,IAAI,IAAI,CAAC;QAC3D,OAAO,KAAK,CAAC;IACd,CAAC;IAED,uBAAuB;QACtB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAoB,CAAC;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACtB,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,KAAsB;QACxC,MAAM,WAAW,GAAG,KAAK,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAE1E,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACrF,CAAC;QAED,OAAO,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;IACnE,CAAC;IAED,mBAAmB;QAClB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmB,CAAC;QACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,CAAC;YAC9E,IAAI,IAAI,KAAK,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,cAAc,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC;gBACjJ,SAAS;YACV,CAAC;YAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBACtE,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,CAAC,UAAU,YAAY,qBAAqB,CAAC,EAAE,CAAC;oBACpD,SAAS;gBACV,CAAC;gBAED,IAAI,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClD,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACjD,CAAC;gBACD,KAAK,IAAI,CAAC,CAAC;YACZ,CAAC;QACF,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,oBAAoB,CAAC,aAA6B;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;QAE7C,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC1F,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACpC,CAAC;QACF,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,mBAAmB,CAAC,GAAgC;QACnD,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,WAAW,IAAI,cAAc,CAAC,sBAAsB,EAAE,CAAC;QAChF,MAAM,WAAW,GAAyB,EAAE,CAAC;QAC7C,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACpD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;oBACtB,SAAS;gBACV,CAAC;gBAED,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC7B,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;YAChD,CAAC;QACF,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBAC9C,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACvC,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;wBACtD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,YAAY,EAAE,CAAC,CAAC;oBAChD,CAAC;gBACF,CAAC;YACF,CAAC;YACD,OAAO;QACR,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvC,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;oBACtD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACrC,CAAC;YACF,CAAC;YACD,OAAO;QACR,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,WAAW;QACV,IAAI,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC;IAED,gBAAgB;IAChB,cAAc,CAAC,GAAgB;QAC9B,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAEzE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC;IAED,gBAAgB;IAChB,gBAAgB;QACf,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAoB,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAiB,IAAI,IAAI,CAAC;IAC3D,CAAC;IAES,WAAW;QACpB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAES,qBAAqB,CAAC,QAAa;QAC5C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC;QAChF,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,OAAO,KAAK,CAAC;IACd,CAAC;IAES,gBAAgB,CAAC,WAAgB,EAAE,IAAY;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QAC3B,MAAM,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7F,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;QAC/B,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;QACjC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAChG,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAChD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QACpC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,OAAO,MAAM,CAAC;IACf,CAAC;IAES,aAAa,CAAC,YAAwC,EAAE,gBAAuB,EAAE,YAAiB,IAAI,CAAC,eAAe;QAC/H,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,SAAS;YACV,CAAC;YAED,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/C,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,SAAS;YACV,CAAC;YAED,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,MAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,MAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC;IACF,CAAC;IAES,MAAM,CAAC,mBAAmB,CAAC,KAAU,EAAE,MAAW;QAC3D,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC7D,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACV,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAES,MAAM,CAAC,WAAW,CAAC,KAAU,EAAE,MAAW;QACnD,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAES,aAAa,CAAC,KAAU;QACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAEO,YAAY,CAAC,KAAU,EAAE,GAAQ;QACxC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACjF,OAAO;QACR,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,IAAI,CACpB,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAClC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAC5B,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAES,MAAM,CAAC,gBAAgB,CAAC,UAAe,EAAE,QAAa,EAAE,WAAgB,EAAE,SAAc;QACjG,MAAM,WAAW,GAChB,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YAC3D,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC,GAAG,CAAC;QAChB,CAAC;QAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QAC/E,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QAEpF,OAAO,IAAI,GAAG,CACb,CAAC,gBAAgB,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,WAAW,EAClH,CAAC,gBAAgB,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,WAAW,EAClH,UAAU,CAAC,CAAC,CACZ,CAAC;IACH,CAAC;IAES,MAAM,CAAC,YAAY,CAAC,MAAW,EAAE,UAAkB,KAAK;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IACxG,CAAC;IAES,MAAM,CAAC,cAAc,CAAC,KAAU,EAAE,MAAW;QACtD,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEkB,cAAc,CAAC,MAAe,EAAE,CAA6B;QAC/E,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEhC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAS,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAE,CAAC;QAC/E,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,CAAC;IACF,CAAC;IAEO,iBAAiB;QACxB,OAAO,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB,CAAC,KAAa,EAAE,KAAqB;QAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACxB,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;QACzE,CAAC;QAED,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;CACD;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { Dimension } from './Dimension.js';
2
+ import { BoundingBox } from '../Math/BoundingBox.js';
2
3
  import { ObjectType } from '../Types/ObjectType.js';
3
4
  import { DimensionType } from './DimensionType.js';
4
5
  import { XYZ } from '../Math/XYZ.js';
@@ -15,8 +16,8 @@ export declare class DimensionAligned extends Dimension {
15
16
  constructor(firstPoint?: XYZ, secondPoint?: XYZ);
16
17
  /** @internal */
17
18
  protected static createWithType(type: DimensionType): DimensionAligned;
18
- applyTransform(transform: any): void;
19
- getBoundingBox(): any;
19
+ applyTransform(transform: unknown): void;
20
+ getBoundingBox(): BoundingBox;
20
21
  updateBlock(): void;
21
22
  }
22
23
  //# sourceMappingURL=DimensionAligned.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DimensionAligned.d.ts","sourceRoot":"","sources":["../../src/Entities/DimensionAligned.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AASrC,qBAAa,gBAAiB,SAAQ,SAAS;IAC9C,eAAe,EAAE,MAAM,CAAK;IAE5B,UAAU,EAAE,GAAG,CAAoB;IAEnC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAa,UAAU,IAAI,MAAM,CAEhC;IAED,IAAa,UAAU,IAAI,UAAU,CAEpC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAEvB;IAED,WAAW,EAAE,GAAG,CAAoB;IAEpC,IAAa,cAAc,IAAI,MAAM,CAEpC;gBAEW,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,GAAG;IAU/C,gBAAgB;IAChB,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,gBAAgB;IAO7D,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAKpC,cAAc,IAAI,GAAG;IAerB,WAAW,IAAI,IAAI;CAI5B"}
1
+ {"version":3,"file":"DimensionAligned.d.ts","sourceRoot":"","sources":["../../src/Entities/DimensionAligned.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AASrC,qBAAa,gBAAiB,SAAQ,SAAS;IAC9C,eAAe,EAAE,MAAM,CAAK;IAE5B,UAAU,EAAE,GAAG,CAAoB;IAEnC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAa,UAAU,IAAI,MAAM,CAEhC;IAED,IAAa,UAAU,IAAI,UAAU,CAEpC;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAQvB;IAED,WAAW,EAAE,GAAG,CAAoB;IAEpC,IAAa,cAAc,IAAI,MAAM,CAEpC;gBAEW,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,GAAG;IAU/C,gBAAgB;IAChB,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,gBAAgB;IAO7D,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAMxC,cAAc,IAAI,WAAW;IAI7B,WAAW,IAAI,IAAI;CAM5B"}
@@ -1,6 +1,7 @@
1
1
  import { Dimension } from './Dimension.js';
2
2
  import { DxfFileToken } from '../DxfFileToken.js';
3
3
  import { DxfSubclassMarker } from '../DxfSubclassMarker.js';
4
+ import { BoundingBox } from '../Math/BoundingBox.js';
4
5
  import { ObjectType } from '../Types/ObjectType.js';
5
6
  import { DimensionType } from './DimensionType.js';
6
7
  import { XYZ } from '../Math/XYZ.js';
@@ -26,7 +27,9 @@ export class DimensionAligned extends Dimension {
26
27
  return distanceFrom(this.secondPoint, this.definitionPoint);
27
28
  }
28
29
  set offset(value) {
29
- // TODO: XYZ.Cross not available for perpendicular calculation
30
+ const direction = Dimension.subtractPoints(this.secondPoint, this.firstPoint);
31
+ const perpendicular = this.normal.cross(direction).normalize();
32
+ this.definitionPoint = new XYZ(this.secondPoint.x + perpendicular.x * value, this.secondPoint.y + perpendicular.y * value, this.secondPoint.z + perpendicular.z * value);
30
33
  }
31
34
  secondPoint = new XYZ(0, 0, 0);
32
35
  get subclassMarker() {
@@ -50,25 +53,14 @@ export class DimensionAligned extends Dimension {
50
53
  }
51
54
  applyTransform(transform) {
52
55
  super.applyTransform(transform);
53
- // TODO: Transform FirstPoint and SecondPoint
56
+ this.firstPoint = this.applyTransformToPoint(transform, this.firstPoint);
57
+ this.secondPoint = this.applyTransformToPoint(transform, this.secondPoint);
54
58
  }
55
59
  getBoundingBox() {
56
- return {
57
- min: {
58
- x: Math.min(this.firstPoint.x, this.secondPoint.x),
59
- y: Math.min(this.firstPoint.y, this.secondPoint.y),
60
- z: Math.min(this.firstPoint.z, this.secondPoint.z),
61
- },
62
- max: {
63
- x: Math.max(this.firstPoint.x, this.secondPoint.x),
64
- y: Math.max(this.firstPoint.y, this.secondPoint.y),
65
- z: Math.max(this.firstPoint.z, this.secondPoint.z),
66
- },
67
- };
60
+ return BoundingBox.FromPoints([this.firstPoint, this.secondPoint, this.definitionPoint]);
68
61
  }
69
62
  updateBlock() {
70
- super.updateBlock();
71
- // TODO: Complex block generation
63
+ this.populateBlock([[this.firstPoint, this.secondPoint]], [this.firstPoint, this.secondPoint, this.definitionPoint]);
72
64
  }
73
65
  }
74
66
  //# sourceMappingURL=DimensionAligned.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DimensionAligned.js","sourceRoot":"","sources":["../../src/Entities/DimensionAligned.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DimensionAligned.js","sourceRoot":"","sources":["../../src/Entities/DimensionAligned.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Dimension } from './Dimension.js';
2
+ import { BoundingBox } from '../Math/BoundingBox.js';
2
3
  import { ObjectType } from '../Types/ObjectType.js';
3
4
  import { XYZ } from '../Math/XYZ.js';
4
5
  export declare class DimensionAngular2Line extends Dimension {
@@ -14,8 +15,8 @@ export declare class DimensionAngular2Line extends Dimension {
14
15
  secondPoint: XYZ;
15
16
  get subclassMarker(): string;
16
17
  constructor();
17
- applyTransform(transform: any): void;
18
- getBoundingBox(): any;
18
+ applyTransform(transform: unknown): void;
19
+ getBoundingBox(): BoundingBox;
19
20
  updateBlock(): void;
20
21
  }
21
22
  //# sourceMappingURL=DimensionAngular2Line.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DimensionAngular2Line.d.ts","sourceRoot":"","sources":["../../src/Entities/DimensionAngular2Line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,qBAAa,qBAAsB,SAAQ,SAAS;IACnD,WAAW,EAAE,GAAG,CAAoB;IAEpC,IAAI,MAAM,IAAI,GAAG,CAGhB;IAED,YAAY,EAAE,GAAG,CAAoB;IAErC,UAAU,EAAE,GAAG,CAAoB;IAEnC,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED,IAAa,UAAU,IAAI,MAAM,CAEhC;IAED,IAAa,UAAU,IAAI,UAAU,CAEpC;IAED,IAAI,MAAM,IAAI,MAAM,CAKnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAEvB;IAED,WAAW,EAAE,GAAG,CAAoB;IAEpC,IAAa,cAAc,IAAI,MAAM,CAEpC;;IAMQ,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAKpC,cAAc,IAAI,GAAG;IAerB,WAAW,IAAI,IAAI;CAI5B"}
1
+ {"version":3,"file":"DimensionAngular2Line.d.ts","sourceRoot":"","sources":["../../src/Entities/DimensionAngular2Line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,qBAAa,qBAAsB,SAAQ,SAAS;IACnD,WAAW,EAAE,GAAG,CAAoB;IAEpC,IAAI,MAAM,IAAI,GAAG,CAEhB;IAED,YAAY,EAAE,GAAG,CAAoB;IAErC,UAAU,EAAE,GAAG,CAAoB;IAEnC,IAAI,WAAW,IAAI,MAAM,CAuBxB;IAED,IAAa,UAAU,IAAI,MAAM,CAEhC;IAED,IAAa,UAAU,IAAI,UAAU,CAEpC;IAED,IAAI,MAAM,IAAI,MAAM,CAKnB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAQvB;IAED,WAAW,EAAE,GAAG,CAAoB;IAEpC,IAAa,cAAc,IAAI,MAAM,CAEpC;;IAMQ,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAQxC,cAAc,IAAI,WAAW;IAI7B,WAAW,IAAI,IAAI;CAI5B"}
@@ -1,20 +1,36 @@
1
1
  import { Dimension } from './Dimension.js';
2
2
  import { DxfFileToken } from '../DxfFileToken.js';
3
3
  import { DxfSubclassMarker } from '../DxfSubclassMarker.js';
4
+ import { BoundingBox } from '../Math/BoundingBox.js';
4
5
  import { ObjectType } from '../Types/ObjectType.js';
5
6
  import { DimensionType } from './DimensionType.js';
6
7
  import { XYZ } from '../Math/XYZ.js';
7
8
  export class DimensionAngular2Line extends Dimension {
8
9
  angleVertex = new XYZ(0, 0, 0);
9
10
  get center() {
10
- // TODO: Line3D intersection not available
11
- return new XYZ(0, 0, 0);
11
+ return Dimension.intersectLinesXY(this.definitionPoint, this.angleVertex, this.firstPoint, this.secondPoint);
12
12
  }
13
13
  dimensionArc = new XYZ(0, 0, 0);
14
14
  firstPoint = new XYZ(0, 0, 0);
15
15
  get measurement() {
16
- // TODO: AngleBetweenVectors not available
17
- return 0;
16
+ const firstVector = Dimension.subtractPoints(this.secondPoint, this.firstPoint);
17
+ const secondVector = Dimension.subtractPoints(this.definitionPoint, this.angleVertex);
18
+ let angle = Dimension.angleBetweenVectors(firstVector, secondVector);
19
+ const center = this.center;
20
+ if (!Number.isFinite(center.x) || !Number.isFinite(center.y) || !Number.isFinite(center.z)) {
21
+ return angle;
22
+ }
23
+ const arcVector = Dimension.subtractPoints(this.dimensionArc, center);
24
+ if (Dimension.isZeroVector(arcVector)) {
25
+ return angle;
26
+ }
27
+ const dot1 = firstVector.cross(arcVector).dot(this.normal);
28
+ const dot2 = arcVector.cross(secondVector).dot(this.normal);
29
+ const isInOppositeSector = (dot1 < 0 && dot2 > 0) || (dot1 > 0 && dot2 < 0);
30
+ if (isInOppositeSector) {
31
+ angle = Math.PI - angle;
32
+ }
33
+ return angle;
18
34
  }
19
35
  get objectName() {
20
36
  return DxfFileToken.EntityDimension;
@@ -29,7 +45,9 @@ export class DimensionAngular2Line extends Dimension {
29
45
  return Math.sqrt(dx * dx + dy * dy + dz * dz);
30
46
  }
31
47
  set offset(value) {
32
- // TODO: Cross product not available
48
+ const direction = Dimension.subtractPoints(this.secondPoint, this.firstPoint);
49
+ const perpendicular = this.normal.cross(direction).normalize();
50
+ this.definitionPoint = new XYZ(this.secondPoint.x + perpendicular.x * value, this.secondPoint.y + perpendicular.y * value, this.secondPoint.z + perpendicular.z * value);
33
51
  }
34
52
  secondPoint = new XYZ(0, 0, 0);
35
53
  get subclassMarker() {
@@ -40,21 +58,13 @@ export class DimensionAngular2Line extends Dimension {
40
58
  }
41
59
  applyTransform(transform) {
42
60
  super.applyTransform(transform);
43
- // TODO: Transform points
61
+ this.angleVertex = this.applyTransformToPoint(transform, this.angleVertex);
62
+ this.dimensionArc = this.applyTransformToPoint(transform, this.dimensionArc);
63
+ this.firstPoint = this.applyTransformToPoint(transform, this.firstPoint);
64
+ this.secondPoint = this.applyTransformToPoint(transform, this.secondPoint);
44
65
  }
45
66
  getBoundingBox() {
46
- return {
47
- min: {
48
- x: Math.min(this.firstPoint.x, this.secondPoint.x),
49
- y: Math.min(this.firstPoint.y, this.secondPoint.y),
50
- z: Math.min(this.firstPoint.z, this.secondPoint.z),
51
- },
52
- max: {
53
- x: Math.max(this.firstPoint.x, this.secondPoint.x),
54
- y: Math.max(this.firstPoint.y, this.secondPoint.y),
55
- z: Math.max(this.firstPoint.z, this.secondPoint.z),
56
- },
57
- };
67
+ return BoundingBox.FromPoints([this.angleVertex, this.dimensionArc, this.firstPoint, this.secondPoint, this.definitionPoint]);
58
68
  }
59
69
  updateBlock() {
60
70
  // Not yet implemented in C# source
@@ -1 +1 @@
1
- {"version":3,"file":"DimensionAngular2Line.js","sourceRoot":"","sources":["../../src/Entities/DimensionAngular2Line.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DimensionAngular2Line.js","sourceRoot":"","sources":["../../src/Entities/DimensionAngular2Line.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Dimension } from './Dimension.js';
2
+ import { BoundingBox } from '../Math/BoundingBox.js';
2
3
  import { ObjectType } from '../Types/ObjectType.js';
3
4
  import { XYZ } from '../Math/XYZ.js';
4
5
  export declare class DimensionAngular3Pt extends Dimension {
@@ -10,8 +11,8 @@ export declare class DimensionAngular3Pt extends Dimension {
10
11
  secondPoint: XYZ;
11
12
  get subclassMarker(): string;
12
13
  constructor();
13
- applyTransform(transform: any): void;
14
- getBoundingBox(): any;
14
+ applyTransform(transform: unknown): void;
15
+ getBoundingBox(): BoundingBox;
15
16
  updateBlock(): void;
16
17
  }
17
18
  //# sourceMappingURL=DimensionAngular3Pt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DimensionAngular3Pt.d.ts","sourceRoot":"","sources":["../../src/Entities/DimensionAngular3Pt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,qBAAa,mBAAoB,SAAQ,SAAS;IACjD,WAAW,EAAE,GAAG,CAAoB;IAEpC,UAAU,EAAE,GAAG,CAAoB;IAEnC,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED,IAAa,UAAU,IAAI,MAAM,CAEhC;IAED,IAAa,UAAU,IAAI,UAAU,CAEpC;IAED,WAAW,EAAE,GAAG,CAAoB;IAEpC,IAAa,cAAc,IAAI,MAAM,CAEpC;;IAMQ,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAKpC,cAAc,IAAI,GAAG;IAerB,WAAW,IAAI,IAAI;CAG5B"}
1
+ {"version":3,"file":"DimensionAngular3Pt.d.ts","sourceRoot":"","sources":["../../src/Entities/DimensionAngular3Pt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,qBAAa,mBAAoB,SAAQ,SAAS;IACjD,WAAW,EAAE,GAAG,CAAoB;IAEpC,UAAU,EAAE,GAAG,CAAoB;IAEnC,IAAI,WAAW,IAAI,MAAM,CAaxB;IAED,IAAa,UAAU,IAAI,MAAM,CAEhC;IAED,IAAa,UAAU,IAAI,UAAU,CAEpC;IAED,WAAW,EAAE,GAAG,CAAoB;IAEpC,IAAa,cAAc,IAAI,MAAM,CAEpC;;IAMQ,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAOxC,cAAc,IAAI,WAAW;IAI7B,WAAW,IAAI,IAAI;CAG5B"}
@@ -1,6 +1,7 @@
1
1
  import { Dimension } from './Dimension.js';
2
2
  import { DxfFileToken } from '../DxfFileToken.js';
3
3
  import { DxfSubclassMarker } from '../DxfSubclassMarker.js';
4
+ import { BoundingBox } from '../Math/BoundingBox.js';
4
5
  import { ObjectType } from '../Types/ObjectType.js';
5
6
  import { DimensionType } from './DimensionType.js';
6
7
  import { XYZ } from '../Math/XYZ.js';
@@ -8,8 +9,15 @@ export class DimensionAngular3Pt extends Dimension {
8
9
  angleVertex = new XYZ(0, 0, 0);
9
10
  firstPoint = new XYZ(0, 0, 0);
10
11
  get measurement() {
11
- // TODO: AngleBetweenVectors / IsParallel not available
12
- return 0;
12
+ const firstVector = Dimension.subtractPoints(this.firstPoint, this.angleVertex);
13
+ const secondVector = Dimension.subtractPoints(this.secondPoint, this.angleVertex);
14
+ if (firstVector.equals(secondVector)) {
15
+ return 0;
16
+ }
17
+ if (Dimension.areParallel(firstVector, secondVector)) {
18
+ return Math.PI;
19
+ }
20
+ return Dimension.angleBetweenVectors(firstVector, secondVector);
13
21
  }
14
22
  get objectName() {
15
23
  return DxfFileToken.EntityDimension;
@@ -26,21 +34,12 @@ export class DimensionAngular3Pt extends Dimension {
26
34
  }
27
35
  applyTransform(transform) {
28
36
  super.applyTransform(transform);
29
- // TODO: Transform points
37
+ this.angleVertex = this.applyTransformToPoint(transform, this.angleVertex);
38
+ this.firstPoint = this.applyTransformToPoint(transform, this.firstPoint);
39
+ this.secondPoint = this.applyTransformToPoint(transform, this.secondPoint);
30
40
  }
31
41
  getBoundingBox() {
32
- return {
33
- min: {
34
- x: Math.min(this.firstPoint.x, this.secondPoint.x),
35
- y: Math.min(this.firstPoint.y, this.secondPoint.y),
36
- z: Math.min(this.firstPoint.z, this.secondPoint.z),
37
- },
38
- max: {
39
- x: Math.max(this.firstPoint.x, this.secondPoint.x),
40
- y: Math.max(this.firstPoint.y, this.secondPoint.y),
41
- z: Math.max(this.firstPoint.z, this.secondPoint.z),
42
- },
43
- };
42
+ return BoundingBox.FromPoints([this.angleVertex, this.firstPoint, this.secondPoint, this.definitionPoint]);
44
43
  }
45
44
  updateBlock() {
46
45
  super.updateBlock();
@@ -1 +1 @@
1
- {"version":3,"file":"DimensionAngular3Pt.js","sourceRoot":"","sources":["../../src/Entities/DimensionAngular3Pt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IACjD,WAAW,GAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpC,UAAU,GAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnC,IAAI,WAAW;QACd,uDAAuD;QACvD,OAAO,CAAC,CAAC;IACV,CAAC;IAED,IAAa,UAAU;QACtB,OAAO,YAAY,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,IAAa,UAAU;QACtB,OAAO,UAAU,CAAC,kBAAkB,CAAC;IACtC,CAAC;IAED,WAAW,GAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpC,IAAa,cAAc;QAC1B,OAAO,iBAAiB,CAAC,sBAAsB,CAAC;IACjD,CAAC;IAED;QACC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAEQ,cAAc,CAAC,SAAc;QACrC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAChC,yBAAyB;IAC1B,CAAC;IAEQ,cAAc;QACtB,OAAO;YACN,GAAG,EAAE;gBACJ,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClD,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClD,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;aAClD;YACD,GAAG,EAAE;gBACJ,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClD,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBAClD,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;aAClD;SACD,CAAC;IACH,CAAC;IAEQ,WAAW;QACnB,KAAK,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACD"}
1
+ {"version":3,"file":"DimensionAngular3Pt.js","sourceRoot":"","sources":["../../src/Entities/DimensionAngular3Pt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IACjD,WAAW,GAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpC,UAAU,GAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnC,IAAI,WAAW;QACd,MAAM,WAAW,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChF,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAElF,IAAI,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,CAAC;QACV,CAAC;QAED,IAAI,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAED,IAAa,UAAU;QACtB,OAAO,YAAY,CAAC,eAAe,CAAC;IACrC,CAAC;IAED,IAAa,UAAU;QACtB,OAAO,UAAU,CAAC,kBAAkB,CAAC;IACtC,CAAC;IAED,WAAW,GAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpC,IAAa,cAAc;QAC1B,OAAO,iBAAiB,CAAC,sBAAsB,CAAC;IACjD,CAAC;IAED;QACC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAEQ,cAAc,CAAC,SAAkB;QACzC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5E,CAAC;IAEQ,cAAc;QACtB,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAC5G,CAAC;IAEQ,WAAW;QACnB,KAAK,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;CACD"}
@@ -1,4 +1,5 @@
1
1
  import { Dimension } from './Dimension.js';
2
+ import { BoundingBox } from '../Math/BoundingBox.js';
2
3
  import { ObjectType } from '../Types/ObjectType.js';
3
4
  import { XYZ } from '../Math/XYZ.js';
4
5
  export declare class DimensionDiameter extends Dimension {
@@ -10,8 +11,8 @@ export declare class DimensionDiameter extends Dimension {
10
11
  get objectType(): ObjectType;
11
12
  get subclassMarker(): string;
12
13
  constructor();
13
- applyTransform(transform: any): void;
14
- getBoundingBox(): any;
14
+ applyTransform(transform: unknown): void;
15
+ getBoundingBox(): BoundingBox;
15
16
  updateBlock(): void;
16
17
  }
17
18
  //# sourceMappingURL=DimensionDiameter.d.ts.map