@linkiez/dxf-renew 7.0.0 → 7.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 (252) hide show
  1. package/.eslintrc.json +1 -16
  2. package/.github/instructions/code-patterns.instructions.md +1 -1
  3. package/.github/instructions/exdxf.instruction.md +161 -0
  4. package/.github/instructions/tdd.instructions.md +271 -0
  5. package/.yarn/install-state.gz +0 -0
  6. package/ARCHITECTURE.md +163 -0
  7. package/CHANGELOG.md +39 -0
  8. package/CONTRIBUTING.md +16 -14
  9. package/README.md +113 -16
  10. package/{PLAN.md → ROADMAP.md} +244 -102
  11. package/dist/dxf.js +2212 -454
  12. package/docs/EZDXF_REFERENCE_SITEMAP.md +55 -0
  13. package/docs/FIXTURE_VALIDATION_EZDXF.md +62 -0
  14. package/lib/Helper.cjs +6 -2
  15. package/lib/Helper.cjs.map +3 -3
  16. package/lib/Helper.js +6 -2
  17. package/lib/Helper.js.map +2 -2
  18. package/lib/denormalise.cjs +131 -91
  19. package/lib/denormalise.cjs.map +2 -2
  20. package/lib/denormalise.js +131 -91
  21. package/lib/denormalise.js.map +2 -2
  22. package/lib/dimensionToSVG.cjs +318 -53
  23. package/lib/dimensionToSVG.cjs.map +3 -3
  24. package/lib/dimensionToSVG.js +316 -52
  25. package/lib/dimensionToSVG.js.map +2 -2
  26. package/lib/entityToPolyline.cjs +95 -0
  27. package/lib/entityToPolyline.cjs.map +3 -3
  28. package/lib/entityToPolyline.js +95 -0
  29. package/lib/entityToPolyline.js.map +2 -2
  30. package/lib/handlers/entities.cjs +111 -27
  31. package/lib/handlers/entities.cjs.map +3 -3
  32. package/lib/handlers/entities.js +111 -27
  33. package/lib/handlers/entities.js.map +3 -3
  34. package/lib/handlers/entity/dgnUnderlay.cjs +106 -0
  35. package/lib/handlers/entity/dgnUnderlay.cjs.map +7 -0
  36. package/lib/handlers/entity/dgnUnderlay.js +71 -0
  37. package/lib/handlers/entity/dgnUnderlay.js.map +7 -0
  38. package/lib/handlers/entity/dimension.cjs +24 -0
  39. package/lib/handlers/entity/dimension.cjs.map +2 -2
  40. package/lib/handlers/entity/dimension.js +24 -0
  41. package/lib/handlers/entity/dimension.js.map +2 -2
  42. package/lib/handlers/entity/dwfUnderlay.cjs +106 -0
  43. package/lib/handlers/entity/dwfUnderlay.cjs.map +7 -0
  44. package/lib/handlers/entity/dwfUnderlay.js +71 -0
  45. package/lib/handlers/entity/dwfUnderlay.js.map +7 -0
  46. package/lib/handlers/entity/image.cjs +123 -0
  47. package/lib/handlers/entity/image.cjs.map +7 -0
  48. package/lib/handlers/entity/image.js +88 -0
  49. package/lib/handlers/entity/image.js.map +7 -0
  50. package/lib/handlers/entity/leader.cjs +148 -0
  51. package/lib/handlers/entity/leader.cjs.map +7 -0
  52. package/lib/handlers/entity/leader.js +113 -0
  53. package/lib/handlers/entity/leader.js.map +7 -0
  54. package/lib/handlers/entity/mleader.cjs +69 -0
  55. package/lib/handlers/entity/mleader.cjs.map +7 -0
  56. package/lib/handlers/entity/mleader.js +34 -0
  57. package/lib/handlers/entity/mleader.js.map +7 -0
  58. package/lib/handlers/entity/mline.cjs +91 -0
  59. package/lib/handlers/entity/mline.cjs.map +7 -0
  60. package/lib/handlers/entity/mline.js +56 -0
  61. package/lib/handlers/entity/mline.js.map +7 -0
  62. package/lib/handlers/entity/oleframe.cjs +98 -0
  63. package/lib/handlers/entity/oleframe.cjs.map +7 -0
  64. package/lib/handlers/entity/oleframe.js +63 -0
  65. package/lib/handlers/entity/oleframe.js.map +7 -0
  66. package/lib/handlers/entity/pdfUnderlay.cjs +106 -0
  67. package/lib/handlers/entity/pdfUnderlay.cjs.map +7 -0
  68. package/lib/handlers/entity/pdfUnderlay.js +71 -0
  69. package/lib/handlers/entity/pdfUnderlay.js.map +7 -0
  70. package/lib/handlers/entity/ray.cjs +81 -0
  71. package/lib/handlers/entity/ray.cjs.map +7 -0
  72. package/lib/handlers/entity/ray.js +46 -0
  73. package/lib/handlers/entity/ray.js.map +7 -0
  74. package/lib/handlers/entity/region.cjs +67 -0
  75. package/lib/handlers/entity/region.cjs.map +7 -0
  76. package/lib/handlers/entity/region.js +32 -0
  77. package/lib/handlers/entity/region.js.map +7 -0
  78. package/lib/handlers/entity/shape.cjs +95 -0
  79. package/lib/handlers/entity/shape.cjs.map +7 -0
  80. package/lib/handlers/entity/shape.js +60 -0
  81. package/lib/handlers/entity/shape.js.map +7 -0
  82. package/lib/handlers/entity/table.cjs +71 -0
  83. package/lib/handlers/entity/table.cjs.map +7 -0
  84. package/lib/handlers/entity/table.js +36 -0
  85. package/lib/handlers/entity/table.js.map +7 -0
  86. package/lib/handlers/entity/tolerance.cjs +90 -0
  87. package/lib/handlers/entity/tolerance.cjs.map +7 -0
  88. package/lib/handlers/entity/tolerance.js +55 -0
  89. package/lib/handlers/entity/tolerance.js.map +7 -0
  90. package/lib/handlers/entity/trace.cjs +101 -0
  91. package/lib/handlers/entity/trace.cjs.map +7 -0
  92. package/lib/handlers/entity/trace.js +66 -0
  93. package/lib/handlers/entity/trace.js.map +7 -0
  94. package/lib/handlers/entity/wipeout.cjs +122 -0
  95. package/lib/handlers/entity/wipeout.cjs.map +7 -0
  96. package/lib/handlers/entity/wipeout.js +87 -0
  97. package/lib/handlers/entity/wipeout.js.map +7 -0
  98. package/lib/handlers/entity/xline.cjs +81 -0
  99. package/lib/handlers/entity/xline.cjs.map +7 -0
  100. package/lib/handlers/entity/xline.js +46 -0
  101. package/lib/handlers/entity/xline.js.map +7 -0
  102. package/lib/handlers/objects.cjs +299 -136
  103. package/lib/handlers/objects.cjs.map +2 -2
  104. package/lib/handlers/objects.js +299 -136
  105. package/lib/handlers/objects.js.map +2 -2
  106. package/lib/handlers/tables.cjs +96 -17
  107. package/lib/handlers/tables.cjs.map +2 -2
  108. package/lib/handlers/tables.js +96 -17
  109. package/lib/handlers/tables.js.map +2 -2
  110. package/lib/index.cjs +5 -2
  111. package/lib/index.cjs.map +3 -3
  112. package/lib/index.js +18 -16
  113. package/lib/index.js.map +3 -3
  114. package/lib/toJson.cjs +29 -0
  115. package/lib/toJson.cjs.map +7 -0
  116. package/lib/toJson.js +9 -0
  117. package/lib/toJson.js.map +7 -0
  118. package/lib/toSVG.cjs +105 -11
  119. package/lib/toSVG.cjs.map +3 -3
  120. package/lib/toSVG.js +106 -12
  121. package/lib/toSVG.js.map +2 -2
  122. package/lib/types/dimension-entity.cjs.map +1 -1
  123. package/lib/types/entity.cjs.map +1 -1
  124. package/lib/types/helper.cjs.map +1 -1
  125. package/lib/types/image-entity.cjs +17 -0
  126. package/lib/types/image-entity.cjs.map +7 -0
  127. package/lib/types/image-entity.js +1 -0
  128. package/lib/types/image-entity.js.map +7 -0
  129. package/lib/types/index.cjs +28 -0
  130. package/lib/types/index.cjs.map +2 -2
  131. package/lib/types/index.js +14 -0
  132. package/lib/types/index.js.map +2 -2
  133. package/lib/types/leader-entity.cjs +17 -0
  134. package/lib/types/leader-entity.cjs.map +7 -0
  135. package/lib/types/leader-entity.js +1 -0
  136. package/lib/types/leader-entity.js.map +7 -0
  137. package/lib/types/mleader-entity.cjs +17 -0
  138. package/lib/types/mleader-entity.cjs.map +7 -0
  139. package/lib/types/mleader-entity.js +1 -0
  140. package/lib/types/mleader-entity.js.map +7 -0
  141. package/lib/types/mline-entity.cjs +17 -0
  142. package/lib/types/mline-entity.cjs.map +7 -0
  143. package/lib/types/mline-entity.js +1 -0
  144. package/lib/types/mline-entity.js.map +7 -0
  145. package/lib/types/oleframe-entity.cjs +17 -0
  146. package/lib/types/oleframe-entity.cjs.map +7 -0
  147. package/lib/types/oleframe-entity.js +1 -0
  148. package/lib/types/oleframe-entity.js.map +7 -0
  149. package/lib/types/options.cjs.map +1 -1
  150. package/lib/types/ray-entity.cjs +17 -0
  151. package/lib/types/ray-entity.cjs.map +7 -0
  152. package/lib/types/ray-entity.js +1 -0
  153. package/lib/types/ray-entity.js.map +7 -0
  154. package/lib/types/region-entity.cjs +17 -0
  155. package/lib/types/region-entity.cjs.map +7 -0
  156. package/lib/types/region-entity.js +1 -0
  157. package/lib/types/region-entity.js.map +7 -0
  158. package/lib/types/shape-entity.cjs +17 -0
  159. package/lib/types/shape-entity.cjs.map +7 -0
  160. package/lib/types/shape-entity.js +1 -0
  161. package/lib/types/shape-entity.js.map +7 -0
  162. package/lib/types/table-entity.cjs +17 -0
  163. package/lib/types/table-entity.cjs.map +7 -0
  164. package/lib/types/table-entity.js +1 -0
  165. package/lib/types/table-entity.js.map +7 -0
  166. package/lib/types/tables.cjs.map +1 -1
  167. package/lib/types/tolerance-entity.cjs +17 -0
  168. package/lib/types/tolerance-entity.cjs.map +7 -0
  169. package/lib/types/tolerance-entity.js +1 -0
  170. package/lib/types/tolerance-entity.js.map +7 -0
  171. package/lib/types/trace-entity.cjs +17 -0
  172. package/lib/types/trace-entity.cjs.map +7 -0
  173. package/lib/types/trace-entity.js +1 -0
  174. package/lib/types/trace-entity.js.map +7 -0
  175. package/lib/types/underlay-entity.cjs +17 -0
  176. package/lib/types/underlay-entity.cjs.map +7 -0
  177. package/lib/types/underlay-entity.js +1 -0
  178. package/lib/types/underlay-entity.js.map +7 -0
  179. package/lib/types/wipeout-entity.cjs +17 -0
  180. package/lib/types/wipeout-entity.cjs.map +7 -0
  181. package/lib/types/wipeout-entity.js +1 -0
  182. package/lib/types/wipeout-entity.js.map +7 -0
  183. package/lib/types/xline-entity.cjs +17 -0
  184. package/lib/types/xline-entity.cjs.map +7 -0
  185. package/lib/types/xline-entity.js +1 -0
  186. package/lib/types/xline-entity.js.map +7 -0
  187. package/lib/util/escapeXmlText.cjs +27 -0
  188. package/lib/util/escapeXmlText.cjs.map +7 -0
  189. package/lib/util/escapeXmlText.js +7 -0
  190. package/lib/util/escapeXmlText.js.map +7 -0
  191. package/package.json +9 -18
  192. package/playwright.config.cjs +20 -0
  193. package/src/Helper.ts +8 -3
  194. package/src/denormalise.ts +182 -116
  195. package/src/dimensionToSVG.ts +466 -54
  196. package/src/entityToPolyline.ts +124 -2
  197. package/src/handlers/entities.ts +129 -34
  198. package/src/handlers/entity/dgnUnderlay.ts +94 -0
  199. package/src/handlers/entity/dimension.ts +27 -1
  200. package/src/handlers/entity/dwfUnderlay.ts +94 -0
  201. package/src/handlers/entity/image.ts +118 -0
  202. package/src/handlers/entity/leader.ts +153 -0
  203. package/src/handlers/entity/mleader.ts +46 -0
  204. package/src/handlers/entity/mline.ts +74 -0
  205. package/src/handlers/entity/oleframe.ts +62 -0
  206. package/src/handlers/entity/pdfUnderlay.ts +94 -0
  207. package/src/handlers/entity/ray.ts +52 -0
  208. package/src/handlers/entity/region.ts +42 -0
  209. package/src/handlers/entity/shape.ts +73 -0
  210. package/src/handlers/entity/table.ts +49 -0
  211. package/src/handlers/entity/tolerance.ts +75 -0
  212. package/src/handlers/entity/trace.ts +72 -0
  213. package/src/handlers/entity/wipeout.ts +114 -0
  214. package/src/handlers/entity/xline.ts +52 -0
  215. package/src/handlers/objects.ts +379 -139
  216. package/src/handlers/tables.ts +134 -21
  217. package/src/index.ts +9 -18
  218. package/src/toJson.ts +8 -0
  219. package/src/toSVG.ts +143 -10
  220. package/src/types/dimension-entity.ts +11 -0
  221. package/src/types/entity.ts +30 -0
  222. package/src/types/helper.ts +2 -1
  223. package/src/types/image-entity.ts +35 -0
  224. package/src/types/index.ts +14 -0
  225. package/src/types/leader-entity.ts +40 -0
  226. package/src/types/mleader-entity.ts +8 -0
  227. package/src/types/mline-entity.ts +12 -0
  228. package/src/types/oleframe-entity.ts +40 -0
  229. package/src/types/options.ts +48 -0
  230. package/src/types/ray-entity.ts +12 -0
  231. package/src/types/region-entity.ts +11 -0
  232. package/src/types/shape-entity.ts +19 -0
  233. package/src/types/table-entity.ts +14 -0
  234. package/src/types/tables.ts +160 -0
  235. package/src/types/tolerance-entity.ts +20 -0
  236. package/src/types/trace-entity.ts +14 -0
  237. package/src/types/underlay-entity.ts +35 -0
  238. package/src/types/wipeout-entity.ts +20 -0
  239. package/src/types/xline-entity.ts +12 -0
  240. package/src/util/escapeXmlText.ts +10 -0
  241. package/tools/browser_test_server.cjs +87 -0
  242. package/tools/ezdxf_generate_dimensions_all_types.py +246 -0
  243. package/tools/ezdxf_generate_dimensions_angular_3p.py +59 -0
  244. package/tools/ezdxf_generate_dimensions_large_scale.py +87 -0
  245. package/tools/ezdxf_regenerate_problem_fixtures.py +184 -0
  246. package/tools/ezdxf_validate_fixtures.py +165 -0
  247. package/docs/DIMENSION_SUMMARY.md +0 -248
  248. package/docs/DIMENSION_SUMMARY.pt-BR.md +0 -248
  249. package/docs/IMPLEMENTED-2D-ENTITIES.md +0 -54
  250. package/docs/IMPLEMENTED-2D-ENTITIES.pt-BR.md +0 -54
  251. package/docs/TEXT-MTEXT-DIMENSION-SUPPORT.md +0 -241
  252. package/docs/TEXT-MTEXT-DIMENSION-SUPPORT.pt-BR.md +0 -169
@@ -0,0 +1,71 @@
1
+ import common from "./common";
2
+ const TYPE = "DGNUNDERLAY";
3
+ const process = (tuples) => {
4
+ return tuples.reduce(
5
+ (entity, tuple) => {
6
+ const type = tuple[0];
7
+ const value = tuple[1];
8
+ switch (type) {
9
+ case 340:
10
+ entity.underlayDefinitionHandle = String(value);
11
+ break;
12
+ case 10:
13
+ entity.insertionPoint.x = value;
14
+ break;
15
+ case 20:
16
+ entity.insertionPoint.y = value;
17
+ break;
18
+ case 30:
19
+ entity.insertionPoint.z = value;
20
+ break;
21
+ case 41:
22
+ entity.scale.x = value;
23
+ break;
24
+ case 42:
25
+ entity.scale.y = value;
26
+ break;
27
+ case 43:
28
+ entity.scale.z = value;
29
+ break;
30
+ case 50:
31
+ entity.rotation = value;
32
+ break;
33
+ case 210:
34
+ entity.normal.x = value;
35
+ break;
36
+ case 220:
37
+ entity.normal.y = value;
38
+ break;
39
+ case 230:
40
+ entity.normal.z = value;
41
+ break;
42
+ case 280:
43
+ entity.flags = value;
44
+ break;
45
+ case 281:
46
+ entity.contrast = value;
47
+ break;
48
+ case 282:
49
+ entity.fade = value;
50
+ break;
51
+ default:
52
+ Object.assign(entity, common(type, value));
53
+ break;
54
+ }
55
+ return entity;
56
+ },
57
+ {
58
+ type: TYPE,
59
+ insertionPoint: { x: 0, y: 0, z: 0 },
60
+ scale: { x: 1, y: 1, z: 1 },
61
+ normal: { x: 0, y: 0, z: 1 }
62
+ }
63
+ );
64
+ };
65
+ var dgnUnderlay_default = { TYPE, process };
66
+ export {
67
+ TYPE,
68
+ dgnUnderlay_default as default,
69
+ process
70
+ };
71
+ //# sourceMappingURL=dgnUnderlay.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/dgnUnderlay.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'DGNUNDERLAY'\n\ninterface UnderlayEntity {\n type: typeof TYPE\n\n insertionPoint: { x: number; y: number; z: number }\n scale: { x: number; y: number; z: number }\n normal: { x: number; y: number; z: number }\n\n underlayDefinitionHandle?: string\n rotation?: number\n flags?: number\n contrast?: number\n fade?: number\n\n [key: string]: unknown\n}\n\nexport const process = (tuples: DXFTuple[]): UnderlayEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n\n switch (type) {\n case 340:\n entity.underlayDefinitionHandle = String(value)\n break\n\n case 10:\n entity.insertionPoint.x = value as number\n break\n case 20:\n entity.insertionPoint.y = value as number\n break\n case 30:\n entity.insertionPoint.z = value as number\n break\n\n case 41:\n entity.scale.x = value as number\n break\n case 42:\n entity.scale.y = value as number\n break\n case 43:\n entity.scale.z = value as number\n break\n\n case 50:\n entity.rotation = value as number\n break\n\n case 210:\n entity.normal.x = value as number\n break\n case 220:\n entity.normal.y = value as number\n break\n case 230:\n entity.normal.z = value as number\n break\n\n case 280:\n entity.flags = value as number\n break\n case 281:\n entity.contrast = value as number\n break\n case 282:\n entity.fade = value as number\n break\n\n default:\n Object.assign(entity, common(type, value))\n break\n }\n\n return entity\n },\n {\n type: TYPE,\n insertionPoint: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n normal: { x: 0, y: 0, z: 1 },\n } as UnderlayEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": "AAEA,OAAO,YAAY;AAEZ,MAAM,OAAO;AAkBb,MAAM,UAAU,CAAC,WAAuC;AAC7D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,2BAA2B,OAAO,KAAK;AAC9C;AAAA,QAEF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QACF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QACF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QAEF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QACF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QACF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QAEF,KAAK;AACH,iBAAO,WAAW;AAClB;AAAA,QAEF,KAAK;AACH,iBAAO,OAAO,IAAI;AAClB;AAAA,QACF,KAAK;AACH,iBAAO,OAAO,IAAI;AAClB;AAAA,QACF,KAAK;AACH,iBAAO,OAAO,IAAI;AAClB;AAAA,QAEF,KAAK;AACH,iBAAO,QAAQ;AACf;AAAA,QACF,KAAK;AACH,iBAAO,WAAW;AAClB;AAAA,QACF,KAAK;AACH,iBAAO,OAAO;AACd;AAAA,QAEF;AACE,iBAAO,OAAO,QAAQ,OAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AAEA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,gBAAgB,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,MACnC,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,MAC1B,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,IAC7B;AAAA,EACF;AACF;AAEA,IAAO,sBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": []
7
+ }
@@ -86,6 +86,30 @@ const process = (tuples) => {
86
86
  case 34:
87
87
  entity.measureEnd.z = value;
88
88
  break;
89
+ case 15:
90
+ entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 };
91
+ entity.angleVertex.x = value;
92
+ break;
93
+ case 25:
94
+ entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 };
95
+ entity.angleVertex.y = value;
96
+ break;
97
+ case 35:
98
+ entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 };
99
+ entity.angleVertex.z = value;
100
+ break;
101
+ case 16:
102
+ entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 };
103
+ entity.arcPoint.x = value;
104
+ break;
105
+ case 26:
106
+ entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 };
107
+ entity.arcPoint.y = value;
108
+ break;
109
+ case 36:
110
+ entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 };
111
+ entity.arcPoint.z = value;
112
+ break;
89
113
  case 50:
90
114
  entity.rotation = value;
91
115
  break;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/handlers/entity/dimension.ts"],
4
- "sourcesContent": ["import type { DXFTuple } from '../../types/dxf'\n\nimport common from './common'\n\nexport const TYPE = 'DIMENSION'\n\n\ninterface Point3D {\n x: number\n y: number\n z: number\n}\n\ninterface DimensionEntity {\n type: typeof TYPE\n block?: string\n start: Point3D\n textMidpoint: Point3D\n measureStart: Point3D\n measureEnd: Point3D\n rotation?: number\n horizonRotation?: number\n extensionRotation?: number\n textRotation?: number\n ordinateType?: boolean\n uniqueBlockReference?: boolean\n userDefinedLocation?: boolean\n dimensionType: number\n attachementPoint: number\n extrudeDirection?: Point3D\n [key: string]: unknown\n}\n\ninterface BitCombinationsResult {\n dimensionType: number\n uniqueBlockReference: boolean\n ordinateType: boolean\n userDefinedLocation: boolean\n}\n\nexport const process = (tuples: DXFTuple[]): DimensionEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n switch (type) {\n case 1:\n entity.text = value as string\n break\n case 2:\n entity.block = value as string\n break\n case 3:\n entity.styleName = value as string\n break\n case 10:\n entity.start.x = value as number\n break\n case 20:\n entity.start.y = value as number\n break\n case 30:\n entity.start.z = value as number\n break\n case 11:\n entity.textMidpoint.x = value as number\n break\n case 21:\n entity.textMidpoint.y = value as number\n break\n case 31:\n entity.textMidpoint.z = value as number\n break\n case 13:\n entity.measureStart.x = value as number\n break\n case 23:\n entity.measureStart.y = value as number\n break\n case 33:\n entity.measureStart.z = value as number\n break\n case 14:\n entity.measureEnd.x = value as number\n break\n case 24:\n entity.measureEnd.y = value as number\n break\n case 34:\n entity.measureEnd.z = value as number\n break\n case 50:\n entity.rotation = value as number\n break\n case 51:\n entity.horizonRotation = value as number\n break\n case 52:\n entity.extensionRotation = value as number\n break\n case 53:\n entity.textRotation = value as number\n break\n case 70: {\n const dimType = parseBitCombinationsFromValue(value as number)\n if (dimType.ordinateType) {\n entity.ordinateType = true\n }\n if (dimType.uniqueBlockReference) {\n entity.uniqueBlockReference = true\n }\n if (dimType.userDefinedLocation) {\n entity.userDefinedLocation = true\n }\n entity.dimensionType = dimType.dimensionType\n break\n }\n case 71:\n entity.attachementPoint = value as number\n break\n case 210:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.x = value as number\n break\n case 220:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.y = value as number\n break\n case 230:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.z = value as number\n break\n default:\n Object.assign(entity, common(type, value))\n break\n }\n return entity\n },\n {\n type: TYPE,\n start: { x: 0, y: 0, z: 0 },\n measureStart: { x: 0, y: 0, z: 0 },\n measureEnd: { x: 0, y: 0, z: 0 },\n textMidpoint: { x: 0, y: 0, z: 0 },\n attachementPoint: 1,\n dimensionType: 0,\n } as DimensionEntity,\n )\n}\n\n/**\n * From DXF Reference for DIMENSION\n * Values 0-6 are integer values that represent the dimension type. Values 32, 64, and 128\n * are bit values, which are added to the integer values (value 32 is always set in R13 and\n * later releases)\n * 0 = Rotated, horizontal, or vertical; 1 = Aligned\n * 2 = Angular; 3 = Diameter; 4 = Radius\n * 5 = Angular 3 point; 6 = Ordinate\n * 32 = Indicates that the block reference (group code 2) is referenced by this dimension only\n * 64 = Ordinate type. This is a bit value (bit 7) used only with integer value 6. If set, ordinate is X-type; if not set, ordinate is Y-type\n * 128 = This is a bit value (bit 8) added to the other group 70 values if the dimension text has been positioned at a user-defined location rather than at the default location\n */\nfunction parseBitCombinationsFromValue(value: number): BitCombinationsResult {\n let uniqueBlockReference = false\n let ordinateType = false\n let userDefinedLocation = false\n\n // ToDo: Solve in some more clever way??\n if (value > 6) {\n const alt1 = value - 32\n const alt2 = value - 64\n const alt3 = value - 32 - 64\n const alt4 = value - 32 - 128\n const alt5 = value - 32 - 64 - 128\n\n if (alt1 >= 0 && alt1 <= 6) {\n uniqueBlockReference = true\n value = alt1\n } else if (alt2 >= 0 && alt2 <= 6) {\n ordinateType = true\n value = alt2\n } else if (alt3 >= 0 && alt3 <= 6) {\n uniqueBlockReference = true\n ordinateType = true\n value = alt3\n } else if (alt4 >= 0 && alt4 <= 6) {\n uniqueBlockReference = true\n userDefinedLocation = true\n value = alt4\n } else if (alt5 >= 0 && alt5 <= 6) {\n uniqueBlockReference = true\n ordinateType = true\n userDefinedLocation = true\n value = alt5\n }\n }\n return {\n dimensionType: value,\n uniqueBlockReference,\n ordinateType,\n userDefinedLocation,\n }\n}\n\nexport default { TYPE, process }\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types/dxf'\n\nimport common from './common'\n\nexport const TYPE = 'DIMENSION'\n\n\ninterface Point3D {\n x: number\n y: number\n z: number\n}\n\ninterface DimensionEntity {\n type: typeof TYPE\n block?: string\n start: Point3D\n angleVertex?: Point3D\n arcPoint?: Point3D\n textMidpoint: Point3D\n measureStart: Point3D\n measureEnd: Point3D\n rotation?: number\n horizonRotation?: number\n extensionRotation?: number\n textRotation?: number\n ordinateType?: boolean\n uniqueBlockReference?: boolean\n userDefinedLocation?: boolean\n dimensionType: number\n attachementPoint: number\n extrudeDirection?: Point3D\n [key: string]: unknown\n}\n\ninterface BitCombinationsResult {\n dimensionType: number\n uniqueBlockReference: boolean\n ordinateType: boolean\n userDefinedLocation: boolean\n}\n\nexport const process = (tuples: DXFTuple[]): DimensionEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n switch (type) {\n case 1:\n entity.text = value as string\n break\n case 2:\n entity.block = value as string\n break\n case 3:\n entity.styleName = value as string\n break\n case 10:\n entity.start.x = value as number\n break\n case 20:\n entity.start.y = value as number\n break\n case 30:\n entity.start.z = value as number\n break\n case 11:\n entity.textMidpoint.x = value as number\n break\n case 21:\n entity.textMidpoint.y = value as number\n break\n case 31:\n entity.textMidpoint.z = value as number\n break\n case 13:\n entity.measureStart.x = value as number\n break\n case 23:\n entity.measureStart.y = value as number\n break\n case 33:\n entity.measureStart.z = value as number\n break\n case 14:\n entity.measureEnd.x = value as number\n break\n case 24:\n entity.measureEnd.y = value as number\n break\n case 34:\n entity.measureEnd.z = value as number\n break\n case 15:\n entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 }\n entity.angleVertex.x = value as number\n break\n case 25:\n entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 }\n entity.angleVertex.y = value as number\n break\n case 35:\n entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 }\n entity.angleVertex.z = value as number\n break\n case 16:\n entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 }\n entity.arcPoint.x = value as number\n break\n case 26:\n entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 }\n entity.arcPoint.y = value as number\n break\n case 36:\n entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 }\n entity.arcPoint.z = value as number\n break\n case 50:\n entity.rotation = value as number\n break\n case 51:\n entity.horizonRotation = value as number\n break\n case 52:\n entity.extensionRotation = value as number\n break\n case 53:\n entity.textRotation = value as number\n break\n case 70: {\n const dimType = parseBitCombinationsFromValue(value as number)\n if (dimType.ordinateType) {\n entity.ordinateType = true\n }\n if (dimType.uniqueBlockReference) {\n entity.uniqueBlockReference = true\n }\n if (dimType.userDefinedLocation) {\n entity.userDefinedLocation = true\n }\n entity.dimensionType = dimType.dimensionType\n break\n }\n case 71:\n entity.attachementPoint = value as number\n break\n case 210:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.x = value as number\n break\n case 220:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.y = value as number\n break\n case 230:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.z = value as number\n break\n default:\n Object.assign(entity, common(type, value))\n break\n }\n return entity\n },\n {\n type: TYPE,\n start: { x: 0, y: 0, z: 0 },\n measureStart: { x: 0, y: 0, z: 0 },\n measureEnd: { x: 0, y: 0, z: 0 },\n textMidpoint: { x: 0, y: 0, z: 0 },\n attachementPoint: 1,\n dimensionType: 0,\n } as DimensionEntity,\n )\n}\n\n/**\n * From DXF Reference for DIMENSION\n * Values 0-6 are integer values that represent the dimension type. Values 32, 64, and 128\n * are bit values, which are added to the integer values (value 32 is always set in R13 and\n * later releases)\n * 0 = Rotated, horizontal, or vertical; 1 = Aligned\n * 2 = Angular; 3 = Diameter; 4 = Radius\n * 5 = Angular 3 point; 6 = Ordinate\n * 32 = Indicates that the block reference (group code 2) is referenced by this dimension only\n * 64 = Ordinate type. This is a bit value (bit 7) used only with integer value 6. If set, ordinate is X-type; if not set, ordinate is Y-type\n * 128 = This is a bit value (bit 8) added to the other group 70 values if the dimension text has been positioned at a user-defined location rather than at the default location\n */\nfunction parseBitCombinationsFromValue(value: number): BitCombinationsResult {\n let uniqueBlockReference = false\n let ordinateType = false\n let userDefinedLocation = false\n\n // Note: keep this logic explicit; DXF stores flags as bit combinations.\n if (value > 6) {\n const alt1 = value - 32\n const alt2 = value - 64\n const alt3 = value - 32 - 64\n const alt4 = value - 32 - 128\n const alt5 = value - 32 - 64 - 128\n\n if (alt1 >= 0 && alt1 <= 6) {\n uniqueBlockReference = true\n value = alt1\n } else if (alt2 >= 0 && alt2 <= 6) {\n ordinateType = true\n value = alt2\n } else if (alt3 >= 0 && alt3 <= 6) {\n uniqueBlockReference = true\n ordinateType = true\n value = alt3\n } else if (alt4 >= 0 && alt4 <= 6) {\n uniqueBlockReference = true\n userDefinedLocation = true\n value = alt4\n } else if (alt5 >= 0 && alt5 <= 6) {\n uniqueBlockReference = true\n ordinateType = true\n userDefinedLocation = true\n value = alt5\n }\n }\n return {\n dimensionType: value,\n uniqueBlockReference,\n ordinateType,\n userDefinedLocation,\n }\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": "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",
6
6
  "names": ["common"]
7
7
  }
@@ -51,6 +51,30 @@ const process = (tuples) => {
51
51
  case 34:
52
52
  entity.measureEnd.z = value;
53
53
  break;
54
+ case 15:
55
+ entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 };
56
+ entity.angleVertex.x = value;
57
+ break;
58
+ case 25:
59
+ entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 };
60
+ entity.angleVertex.y = value;
61
+ break;
62
+ case 35:
63
+ entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 };
64
+ entity.angleVertex.z = value;
65
+ break;
66
+ case 16:
67
+ entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 };
68
+ entity.arcPoint.x = value;
69
+ break;
70
+ case 26:
71
+ entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 };
72
+ entity.arcPoint.y = value;
73
+ break;
74
+ case 36:
75
+ entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 };
76
+ entity.arcPoint.z = value;
77
+ break;
54
78
  case 50:
55
79
  entity.rotation = value;
56
80
  break;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/handlers/entity/dimension.ts"],
4
- "sourcesContent": ["import type { DXFTuple } from '../../types/dxf'\n\nimport common from './common'\n\nexport const TYPE = 'DIMENSION'\n\n\ninterface Point3D {\n x: number\n y: number\n z: number\n}\n\ninterface DimensionEntity {\n type: typeof TYPE\n block?: string\n start: Point3D\n textMidpoint: Point3D\n measureStart: Point3D\n measureEnd: Point3D\n rotation?: number\n horizonRotation?: number\n extensionRotation?: number\n textRotation?: number\n ordinateType?: boolean\n uniqueBlockReference?: boolean\n userDefinedLocation?: boolean\n dimensionType: number\n attachementPoint: number\n extrudeDirection?: Point3D\n [key: string]: unknown\n}\n\ninterface BitCombinationsResult {\n dimensionType: number\n uniqueBlockReference: boolean\n ordinateType: boolean\n userDefinedLocation: boolean\n}\n\nexport const process = (tuples: DXFTuple[]): DimensionEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n switch (type) {\n case 1:\n entity.text = value as string\n break\n case 2:\n entity.block = value as string\n break\n case 3:\n entity.styleName = value as string\n break\n case 10:\n entity.start.x = value as number\n break\n case 20:\n entity.start.y = value as number\n break\n case 30:\n entity.start.z = value as number\n break\n case 11:\n entity.textMidpoint.x = value as number\n break\n case 21:\n entity.textMidpoint.y = value as number\n break\n case 31:\n entity.textMidpoint.z = value as number\n break\n case 13:\n entity.measureStart.x = value as number\n break\n case 23:\n entity.measureStart.y = value as number\n break\n case 33:\n entity.measureStart.z = value as number\n break\n case 14:\n entity.measureEnd.x = value as number\n break\n case 24:\n entity.measureEnd.y = value as number\n break\n case 34:\n entity.measureEnd.z = value as number\n break\n case 50:\n entity.rotation = value as number\n break\n case 51:\n entity.horizonRotation = value as number\n break\n case 52:\n entity.extensionRotation = value as number\n break\n case 53:\n entity.textRotation = value as number\n break\n case 70: {\n const dimType = parseBitCombinationsFromValue(value as number)\n if (dimType.ordinateType) {\n entity.ordinateType = true\n }\n if (dimType.uniqueBlockReference) {\n entity.uniqueBlockReference = true\n }\n if (dimType.userDefinedLocation) {\n entity.userDefinedLocation = true\n }\n entity.dimensionType = dimType.dimensionType\n break\n }\n case 71:\n entity.attachementPoint = value as number\n break\n case 210:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.x = value as number\n break\n case 220:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.y = value as number\n break\n case 230:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.z = value as number\n break\n default:\n Object.assign(entity, common(type, value))\n break\n }\n return entity\n },\n {\n type: TYPE,\n start: { x: 0, y: 0, z: 0 },\n measureStart: { x: 0, y: 0, z: 0 },\n measureEnd: { x: 0, y: 0, z: 0 },\n textMidpoint: { x: 0, y: 0, z: 0 },\n attachementPoint: 1,\n dimensionType: 0,\n } as DimensionEntity,\n )\n}\n\n/**\n * From DXF Reference for DIMENSION\n * Values 0-6 are integer values that represent the dimension type. Values 32, 64, and 128\n * are bit values, which are added to the integer values (value 32 is always set in R13 and\n * later releases)\n * 0 = Rotated, horizontal, or vertical; 1 = Aligned\n * 2 = Angular; 3 = Diameter; 4 = Radius\n * 5 = Angular 3 point; 6 = Ordinate\n * 32 = Indicates that the block reference (group code 2) is referenced by this dimension only\n * 64 = Ordinate type. This is a bit value (bit 7) used only with integer value 6. If set, ordinate is X-type; if not set, ordinate is Y-type\n * 128 = This is a bit value (bit 8) added to the other group 70 values if the dimension text has been positioned at a user-defined location rather than at the default location\n */\nfunction parseBitCombinationsFromValue(value: number): BitCombinationsResult {\n let uniqueBlockReference = false\n let ordinateType = false\n let userDefinedLocation = false\n\n // ToDo: Solve in some more clever way??\n if (value > 6) {\n const alt1 = value - 32\n const alt2 = value - 64\n const alt3 = value - 32 - 64\n const alt4 = value - 32 - 128\n const alt5 = value - 32 - 64 - 128\n\n if (alt1 >= 0 && alt1 <= 6) {\n uniqueBlockReference = true\n value = alt1\n } else if (alt2 >= 0 && alt2 <= 6) {\n ordinateType = true\n value = alt2\n } else if (alt3 >= 0 && alt3 <= 6) {\n uniqueBlockReference = true\n ordinateType = true\n value = alt3\n } else if (alt4 >= 0 && alt4 <= 6) {\n uniqueBlockReference = true\n userDefinedLocation = true\n value = alt4\n } else if (alt5 >= 0 && alt5 <= 6) {\n uniqueBlockReference = true\n ordinateType = true\n userDefinedLocation = true\n value = alt5\n }\n }\n return {\n dimensionType: value,\n uniqueBlockReference,\n ordinateType,\n userDefinedLocation,\n }\n}\n\nexport default { TYPE, process }\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types/dxf'\n\nimport common from './common'\n\nexport const TYPE = 'DIMENSION'\n\n\ninterface Point3D {\n x: number\n y: number\n z: number\n}\n\ninterface DimensionEntity {\n type: typeof TYPE\n block?: string\n start: Point3D\n angleVertex?: Point3D\n arcPoint?: Point3D\n textMidpoint: Point3D\n measureStart: Point3D\n measureEnd: Point3D\n rotation?: number\n horizonRotation?: number\n extensionRotation?: number\n textRotation?: number\n ordinateType?: boolean\n uniqueBlockReference?: boolean\n userDefinedLocation?: boolean\n dimensionType: number\n attachementPoint: number\n extrudeDirection?: Point3D\n [key: string]: unknown\n}\n\ninterface BitCombinationsResult {\n dimensionType: number\n uniqueBlockReference: boolean\n ordinateType: boolean\n userDefinedLocation: boolean\n}\n\nexport const process = (tuples: DXFTuple[]): DimensionEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n switch (type) {\n case 1:\n entity.text = value as string\n break\n case 2:\n entity.block = value as string\n break\n case 3:\n entity.styleName = value as string\n break\n case 10:\n entity.start.x = value as number\n break\n case 20:\n entity.start.y = value as number\n break\n case 30:\n entity.start.z = value as number\n break\n case 11:\n entity.textMidpoint.x = value as number\n break\n case 21:\n entity.textMidpoint.y = value as number\n break\n case 31:\n entity.textMidpoint.z = value as number\n break\n case 13:\n entity.measureStart.x = value as number\n break\n case 23:\n entity.measureStart.y = value as number\n break\n case 33:\n entity.measureStart.z = value as number\n break\n case 14:\n entity.measureEnd.x = value as number\n break\n case 24:\n entity.measureEnd.y = value as number\n break\n case 34:\n entity.measureEnd.z = value as number\n break\n case 15:\n entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 }\n entity.angleVertex.x = value as number\n break\n case 25:\n entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 }\n entity.angleVertex.y = value as number\n break\n case 35:\n entity.angleVertex = entity.angleVertex || { x: 0, y: 0, z: 0 }\n entity.angleVertex.z = value as number\n break\n case 16:\n entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 }\n entity.arcPoint.x = value as number\n break\n case 26:\n entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 }\n entity.arcPoint.y = value as number\n break\n case 36:\n entity.arcPoint = entity.arcPoint || { x: 0, y: 0, z: 0 }\n entity.arcPoint.z = value as number\n break\n case 50:\n entity.rotation = value as number\n break\n case 51:\n entity.horizonRotation = value as number\n break\n case 52:\n entity.extensionRotation = value as number\n break\n case 53:\n entity.textRotation = value as number\n break\n case 70: {\n const dimType = parseBitCombinationsFromValue(value as number)\n if (dimType.ordinateType) {\n entity.ordinateType = true\n }\n if (dimType.uniqueBlockReference) {\n entity.uniqueBlockReference = true\n }\n if (dimType.userDefinedLocation) {\n entity.userDefinedLocation = true\n }\n entity.dimensionType = dimType.dimensionType\n break\n }\n case 71:\n entity.attachementPoint = value as number\n break\n case 210:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.x = value as number\n break\n case 220:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.y = value as number\n break\n case 230:\n entity.extrudeDirection = entity.extrudeDirection || {\n x: 0,\n y: 0,\n z: 0,\n }\n entity.extrudeDirection.z = value as number\n break\n default:\n Object.assign(entity, common(type, value))\n break\n }\n return entity\n },\n {\n type: TYPE,\n start: { x: 0, y: 0, z: 0 },\n measureStart: { x: 0, y: 0, z: 0 },\n measureEnd: { x: 0, y: 0, z: 0 },\n textMidpoint: { x: 0, y: 0, z: 0 },\n attachementPoint: 1,\n dimensionType: 0,\n } as DimensionEntity,\n )\n}\n\n/**\n * From DXF Reference for DIMENSION\n * Values 0-6 are integer values that represent the dimension type. Values 32, 64, and 128\n * are bit values, which are added to the integer values (value 32 is always set in R13 and\n * later releases)\n * 0 = Rotated, horizontal, or vertical; 1 = Aligned\n * 2 = Angular; 3 = Diameter; 4 = Radius\n * 5 = Angular 3 point; 6 = Ordinate\n * 32 = Indicates that the block reference (group code 2) is referenced by this dimension only\n * 64 = Ordinate type. This is a bit value (bit 7) used only with integer value 6. If set, ordinate is X-type; if not set, ordinate is Y-type\n * 128 = This is a bit value (bit 8) added to the other group 70 values if the dimension text has been positioned at a user-defined location rather than at the default location\n */\nfunction parseBitCombinationsFromValue(value: number): BitCombinationsResult {\n let uniqueBlockReference = false\n let ordinateType = false\n let userDefinedLocation = false\n\n // Note: keep this logic explicit; DXF stores flags as bit combinations.\n if (value > 6) {\n const alt1 = value - 32\n const alt2 = value - 64\n const alt3 = value - 32 - 64\n const alt4 = value - 32 - 128\n const alt5 = value - 32 - 64 - 128\n\n if (alt1 >= 0 && alt1 <= 6) {\n uniqueBlockReference = true\n value = alt1\n } else if (alt2 >= 0 && alt2 <= 6) {\n ordinateType = true\n value = alt2\n } else if (alt3 >= 0 && alt3 <= 6) {\n uniqueBlockReference = true\n ordinateType = true\n value = alt3\n } else if (alt4 >= 0 && alt4 <= 6) {\n uniqueBlockReference = true\n userDefinedLocation = true\n value = alt4\n } else if (alt5 >= 0 && alt5 <= 6) {\n uniqueBlockReference = true\n ordinateType = true\n userDefinedLocation = true\n value = alt5\n }\n }\n return {\n dimensionType: value,\n uniqueBlockReference,\n ordinateType,\n userDefinedLocation,\n }\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": "AAEA,OAAO,YAAY;AAEZ,MAAM,OAAO;AAsCb,MAAM,UAAU,CAAC,WAAwC;AAC9D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AACrB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,OAAO;AACd;AAAA,QACF,KAAK;AACH,iBAAO,QAAQ;AACf;AAAA,QACF,KAAK;AACH,iBAAO,YAAY;AACnB;AAAA,QACF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QACF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QACF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QACF,KAAK;AACH,iBAAO,aAAa,IAAI;AACxB;AAAA,QACF,KAAK;AACH,iBAAO,aAAa,IAAI;AACxB;AAAA,QACF,KAAK;AACH,iBAAO,aAAa,IAAI;AACxB;AAAA,QACF,KAAK;AACH,iBAAO,aAAa,IAAI;AACxB;AAAA,QACF,KAAK;AACH,iBAAO,aAAa,IAAI;AACxB;AAAA,QACF,KAAK;AACH,iBAAO,aAAa,IAAI;AACxB;AAAA,QACF,KAAK;AACH,iBAAO,WAAW,IAAI;AACtB;AAAA,QACF,KAAK;AACH,iBAAO,WAAW,IAAI;AACtB;AAAA,QACF,KAAK;AACH,iBAAO,WAAW,IAAI;AACtB;AAAA,QACF,KAAK;AACH,iBAAO,cAAc,OAAO,eAAe,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAC9D,iBAAO,YAAY,IAAI;AACvB;AAAA,QACF,KAAK;AACH,iBAAO,cAAc,OAAO,eAAe,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAC9D,iBAAO,YAAY,IAAI;AACvB;AAAA,QACF,KAAK;AACH,iBAAO,cAAc,OAAO,eAAe,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAC9D,iBAAO,YAAY,IAAI;AACvB;AAAA,QACF,KAAK;AACH,iBAAO,WAAW,OAAO,YAAY,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AACxD,iBAAO,SAAS,IAAI;AACpB;AAAA,QACF,KAAK;AACH,iBAAO,WAAW,OAAO,YAAY,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AACxD,iBAAO,SAAS,IAAI;AACpB;AAAA,QACF,KAAK;AACH,iBAAO,WAAW,OAAO,YAAY,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AACxD,iBAAO,SAAS,IAAI;AACpB;AAAA,QACF,KAAK;AACH,iBAAO,WAAW;AAClB;AAAA,QACF,KAAK;AACH,iBAAO,kBAAkB;AACzB;AAAA,QACF,KAAK;AACH,iBAAO,oBAAoB;AAC3B;AAAA,QACF,KAAK;AACH,iBAAO,eAAe;AACtB;AAAA,QACF,KAAK,IAAI;AACP,gBAAM,UAAU,8BAA8B,KAAe;AAC7D,cAAI,QAAQ,cAAc;AACxB,mBAAO,eAAe;AAAA,UACxB;AACA,cAAI,QAAQ,sBAAsB;AAChC,mBAAO,uBAAuB;AAAA,UAChC;AACA,cAAI,QAAQ,qBAAqB;AAC/B,mBAAO,sBAAsB;AAAA,UAC/B;AACA,iBAAO,gBAAgB,QAAQ;AAC/B;AAAA,QACF;AAAA,QACA,KAAK;AACH,iBAAO,mBAAmB;AAC1B;AAAA,QACF,KAAK;AACH,iBAAO,mBAAmB,OAAO,oBAAoB;AAAA,YACnD,GAAG;AAAA,YACH,GAAG;AAAA,YACH,GAAG;AAAA,UACL;AACA,iBAAO,iBAAiB,IAAI;AAC5B;AAAA,QACF,KAAK;AACH,iBAAO,mBAAmB,OAAO,oBAAoB;AAAA,YACnD,GAAG;AAAA,YACH,GAAG;AAAA,YACH,GAAG;AAAA,UACL;AACA,iBAAO,iBAAiB,IAAI;AAC5B;AAAA,QACF,KAAK;AACH,iBAAO,mBAAmB,OAAO,oBAAoB;AAAA,YACnD,GAAG;AAAA,YACH,GAAG;AAAA,YACH,GAAG;AAAA,UACL;AACA,iBAAO,iBAAiB,IAAI;AAC5B;AAAA,QACF;AACE,iBAAO,OAAO,QAAQ,OAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AACA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,MAC1B,cAAc,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,MACjC,YAAY,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,MAC/B,cAAc,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,MACjC,kBAAkB;AAAA,MAClB,eAAe;AAAA,IACjB;AAAA,EACF;AACF;AAcA,SAAS,8BAA8B,OAAsC;AAC3E,MAAI,uBAAuB;AAC3B,MAAI,eAAe;AACnB,MAAI,sBAAsB;AAG1B,MAAI,QAAQ,GAAG;AACb,UAAM,OAAO,QAAQ;AACrB,UAAM,OAAO,QAAQ;AACrB,UAAM,OAAO,QAAQ,KAAK;AAC1B,UAAM,OAAO,QAAQ,KAAK;AAC1B,UAAM,OAAO,QAAQ,KAAK,KAAK;AAE/B,QAAI,QAAQ,KAAK,QAAQ,GAAG;AAC1B,6BAAuB;AACvB,cAAQ;AAAA,IACV,WAAW,QAAQ,KAAK,QAAQ,GAAG;AACjC,qBAAe;AACf,cAAQ;AAAA,IACV,WAAW,QAAQ,KAAK,QAAQ,GAAG;AACjC,6BAAuB;AACvB,qBAAe;AACf,cAAQ;AAAA,IACV,WAAW,QAAQ,KAAK,QAAQ,GAAG;AACjC,6BAAuB;AACvB,4BAAsB;AACtB,cAAQ;AAAA,IACV,WAAW,QAAQ,KAAK,QAAQ,GAAG;AACjC,6BAAuB;AACvB,qBAAe;AACf,4BAAsB;AACtB,cAAQ;AAAA,IACV;AAAA,EACF;AACA,SAAO;AAAA,IACL,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAO,oBAAQ,EAAE,MAAM,QAAQ;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var dwfUnderlay_exports = {};
30
+ __export(dwfUnderlay_exports, {
31
+ TYPE: () => TYPE,
32
+ default: () => dwfUnderlay_default,
33
+ process: () => process
34
+ });
35
+ module.exports = __toCommonJS(dwfUnderlay_exports);
36
+ var import_common = __toESM(require("./common"), 1);
37
+ const TYPE = "DWFUNDERLAY";
38
+ const process = (tuples) => {
39
+ return tuples.reduce(
40
+ (entity, tuple) => {
41
+ const type = tuple[0];
42
+ const value = tuple[1];
43
+ switch (type) {
44
+ case 340:
45
+ entity.underlayDefinitionHandle = String(value);
46
+ break;
47
+ case 10:
48
+ entity.insertionPoint.x = value;
49
+ break;
50
+ case 20:
51
+ entity.insertionPoint.y = value;
52
+ break;
53
+ case 30:
54
+ entity.insertionPoint.z = value;
55
+ break;
56
+ case 41:
57
+ entity.scale.x = value;
58
+ break;
59
+ case 42:
60
+ entity.scale.y = value;
61
+ break;
62
+ case 43:
63
+ entity.scale.z = value;
64
+ break;
65
+ case 50:
66
+ entity.rotation = value;
67
+ break;
68
+ case 210:
69
+ entity.normal.x = value;
70
+ break;
71
+ case 220:
72
+ entity.normal.y = value;
73
+ break;
74
+ case 230:
75
+ entity.normal.z = value;
76
+ break;
77
+ case 280:
78
+ entity.flags = value;
79
+ break;
80
+ case 281:
81
+ entity.contrast = value;
82
+ break;
83
+ case 282:
84
+ entity.fade = value;
85
+ break;
86
+ default:
87
+ Object.assign(entity, (0, import_common.default)(type, value));
88
+ break;
89
+ }
90
+ return entity;
91
+ },
92
+ {
93
+ type: TYPE,
94
+ insertionPoint: { x: 0, y: 0, z: 0 },
95
+ scale: { x: 1, y: 1, z: 1 },
96
+ normal: { x: 0, y: 0, z: 1 }
97
+ }
98
+ );
99
+ };
100
+ var dwfUnderlay_default = { TYPE, process };
101
+ // Annotate the CommonJS export names for ESM import in node:
102
+ 0 && (module.exports = {
103
+ TYPE,
104
+ process
105
+ });
106
+ //# sourceMappingURL=dwfUnderlay.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/dwfUnderlay.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'DWFUNDERLAY'\n\ninterface UnderlayEntity {\n type: typeof TYPE\n\n insertionPoint: { x: number; y: number; z: number }\n scale: { x: number; y: number; z: number }\n normal: { x: number; y: number; z: number }\n\n underlayDefinitionHandle?: string\n rotation?: number\n flags?: number\n contrast?: number\n fade?: number\n\n [key: string]: unknown\n}\n\nexport const process = (tuples: DXFTuple[]): UnderlayEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n\n switch (type) {\n case 340:\n entity.underlayDefinitionHandle = String(value)\n break\n\n case 10:\n entity.insertionPoint.x = value as number\n break\n case 20:\n entity.insertionPoint.y = value as number\n break\n case 30:\n entity.insertionPoint.z = value as number\n break\n\n case 41:\n entity.scale.x = value as number\n break\n case 42:\n entity.scale.y = value as number\n break\n case 43:\n entity.scale.z = value as number\n break\n\n case 50:\n entity.rotation = value as number\n break\n\n case 210:\n entity.normal.x = value as number\n break\n case 220:\n entity.normal.y = value as number\n break\n case 230:\n entity.normal.z = value as number\n break\n\n case 280:\n entity.flags = value as number\n break\n case 281:\n entity.contrast = value as number\n break\n case 282:\n entity.fade = value as number\n break\n\n default:\n Object.assign(entity, common(type, value))\n break\n }\n\n return entity\n },\n {\n type: TYPE,\n insertionPoint: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n normal: { x: 0, y: 0, z: 1 },\n } as UnderlayEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AAEZ,MAAM,OAAO;AAkBb,MAAM,UAAU,CAAC,WAAuC;AAC7D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,2BAA2B,OAAO,KAAK;AAC9C;AAAA,QAEF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QACF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QACF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QAEF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QACF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QACF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QAEF,KAAK;AACH,iBAAO,WAAW;AAClB;AAAA,QAEF,KAAK;AACH,iBAAO,OAAO,IAAI;AAClB;AAAA,QACF,KAAK;AACH,iBAAO,OAAO,IAAI;AAClB;AAAA,QACF,KAAK;AACH,iBAAO,OAAO,IAAI;AAClB;AAAA,QAEF,KAAK;AACH,iBAAO,QAAQ;AACf;AAAA,QACF,KAAK;AACH,iBAAO,WAAW;AAClB;AAAA,QACF,KAAK;AACH,iBAAO,OAAO;AACd;AAAA,QAEF;AACE,iBAAO,OAAO,YAAQ,cAAAA,SAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AAEA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,gBAAgB,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,MACnC,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,MAC1B,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,IAC7B;AAAA,EACF;AACF;AAEA,IAAO,sBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": ["common"]
7
+ }
@@ -0,0 +1,71 @@
1
+ import common from "./common";
2
+ const TYPE = "DWFUNDERLAY";
3
+ const process = (tuples) => {
4
+ return tuples.reduce(
5
+ (entity, tuple) => {
6
+ const type = tuple[0];
7
+ const value = tuple[1];
8
+ switch (type) {
9
+ case 340:
10
+ entity.underlayDefinitionHandle = String(value);
11
+ break;
12
+ case 10:
13
+ entity.insertionPoint.x = value;
14
+ break;
15
+ case 20:
16
+ entity.insertionPoint.y = value;
17
+ break;
18
+ case 30:
19
+ entity.insertionPoint.z = value;
20
+ break;
21
+ case 41:
22
+ entity.scale.x = value;
23
+ break;
24
+ case 42:
25
+ entity.scale.y = value;
26
+ break;
27
+ case 43:
28
+ entity.scale.z = value;
29
+ break;
30
+ case 50:
31
+ entity.rotation = value;
32
+ break;
33
+ case 210:
34
+ entity.normal.x = value;
35
+ break;
36
+ case 220:
37
+ entity.normal.y = value;
38
+ break;
39
+ case 230:
40
+ entity.normal.z = value;
41
+ break;
42
+ case 280:
43
+ entity.flags = value;
44
+ break;
45
+ case 281:
46
+ entity.contrast = value;
47
+ break;
48
+ case 282:
49
+ entity.fade = value;
50
+ break;
51
+ default:
52
+ Object.assign(entity, common(type, value));
53
+ break;
54
+ }
55
+ return entity;
56
+ },
57
+ {
58
+ type: TYPE,
59
+ insertionPoint: { x: 0, y: 0, z: 0 },
60
+ scale: { x: 1, y: 1, z: 1 },
61
+ normal: { x: 0, y: 0, z: 1 }
62
+ }
63
+ );
64
+ };
65
+ var dwfUnderlay_default = { TYPE, process };
66
+ export {
67
+ TYPE,
68
+ dwfUnderlay_default as default,
69
+ process
70
+ };
71
+ //# sourceMappingURL=dwfUnderlay.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/dwfUnderlay.ts"],
4
+ "sourcesContent": ["import type { DXFTuple } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'DWFUNDERLAY'\n\ninterface UnderlayEntity {\n type: typeof TYPE\n\n insertionPoint: { x: number; y: number; z: number }\n scale: { x: number; y: number; z: number }\n normal: { x: number; y: number; z: number }\n\n underlayDefinitionHandle?: string\n rotation?: number\n flags?: number\n contrast?: number\n fade?: number\n\n [key: string]: unknown\n}\n\nexport const process = (tuples: DXFTuple[]): UnderlayEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n\n switch (type) {\n case 340:\n entity.underlayDefinitionHandle = String(value)\n break\n\n case 10:\n entity.insertionPoint.x = value as number\n break\n case 20:\n entity.insertionPoint.y = value as number\n break\n case 30:\n entity.insertionPoint.z = value as number\n break\n\n case 41:\n entity.scale.x = value as number\n break\n case 42:\n entity.scale.y = value as number\n break\n case 43:\n entity.scale.z = value as number\n break\n\n case 50:\n entity.rotation = value as number\n break\n\n case 210:\n entity.normal.x = value as number\n break\n case 220:\n entity.normal.y = value as number\n break\n case 230:\n entity.normal.z = value as number\n break\n\n case 280:\n entity.flags = value as number\n break\n case 281:\n entity.contrast = value as number\n break\n case 282:\n entity.fade = value as number\n break\n\n default:\n Object.assign(entity, common(type, value))\n break\n }\n\n return entity\n },\n {\n type: TYPE,\n insertionPoint: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n normal: { x: 0, y: 0, z: 1 },\n } as UnderlayEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": "AAEA,OAAO,YAAY;AAEZ,MAAM,OAAO;AAkBb,MAAM,UAAU,CAAC,WAAuC;AAC7D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,2BAA2B,OAAO,KAAK;AAC9C;AAAA,QAEF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QACF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QACF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QAEF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QACF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QACF,KAAK;AACH,iBAAO,MAAM,IAAI;AACjB;AAAA,QAEF,KAAK;AACH,iBAAO,WAAW;AAClB;AAAA,QAEF,KAAK;AACH,iBAAO,OAAO,IAAI;AAClB;AAAA,QACF,KAAK;AACH,iBAAO,OAAO,IAAI;AAClB;AAAA,QACF,KAAK;AACH,iBAAO,OAAO,IAAI;AAClB;AAAA,QAEF,KAAK;AACH,iBAAO,QAAQ;AACf;AAAA,QACF,KAAK;AACH,iBAAO,WAAW;AAClB;AAAA,QACF,KAAK;AACH,iBAAO,OAAO;AACd;AAAA,QAEF;AACE,iBAAO,OAAO,QAAQ,OAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AAEA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,gBAAgB,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,MACnC,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,MAC1B,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,IAC7B;AAAA,EACF;AACF;AAEA,IAAO,sBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var image_exports = {};
30
+ __export(image_exports, {
31
+ TYPE: () => TYPE,
32
+ default: () => image_default,
33
+ process: () => process
34
+ });
35
+ module.exports = __toCommonJS(image_exports);
36
+ var import_common = __toESM(require("./common"), 1);
37
+ const TYPE = "IMAGE";
38
+ const process = (tuples) => {
39
+ return tuples.reduce(
40
+ (entity, tuple) => {
41
+ const type = tuple[0];
42
+ const value = tuple[1];
43
+ switch (type) {
44
+ case 90:
45
+ entity.classVersion = value;
46
+ break;
47
+ case 10:
48
+ entity.insertionPoint.x = value;
49
+ break;
50
+ case 20:
51
+ entity.insertionPoint.y = value;
52
+ break;
53
+ case 30:
54
+ entity.insertionPoint.z = value;
55
+ break;
56
+ case 11:
57
+ entity.uVector.x = value;
58
+ break;
59
+ case 21:
60
+ entity.uVector.y = value;
61
+ break;
62
+ case 31:
63
+ entity.uVector.z = value;
64
+ break;
65
+ case 12:
66
+ entity.vVector.x = value;
67
+ break;
68
+ case 22:
69
+ entity.vVector.y = value;
70
+ break;
71
+ case 32:
72
+ entity.vVector.z = value;
73
+ break;
74
+ case 13:
75
+ entity.pixelSizeX = value;
76
+ break;
77
+ case 23:
78
+ entity.pixelSizeY = value;
79
+ break;
80
+ case 340:
81
+ entity.imageDefHandle = String(value);
82
+ break;
83
+ case 360:
84
+ entity.imageDefReactorHandle = String(value);
85
+ break;
86
+ case 70:
87
+ entity.displayProperties = value;
88
+ break;
89
+ case 280:
90
+ entity.clippingState = value;
91
+ break;
92
+ case 281:
93
+ entity.brightness = value;
94
+ break;
95
+ case 282:
96
+ entity.contrast = value;
97
+ break;
98
+ case 283:
99
+ entity.fade = value;
100
+ break;
101
+ default:
102
+ Object.assign(entity, (0, import_common.default)(type, value));
103
+ break;
104
+ }
105
+ return entity;
106
+ },
107
+ {
108
+ type: TYPE,
109
+ insertionPoint: {},
110
+ uVector: {},
111
+ vVector: {},
112
+ pixelSizeX: 0,
113
+ pixelSizeY: 0
114
+ }
115
+ );
116
+ };
117
+ var image_default = { TYPE, process };
118
+ // Annotate the CommonJS export names for ESM import in node:
119
+ 0 && (module.exports = {
120
+ TYPE,
121
+ process
122
+ });
123
+ //# sourceMappingURL=image.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/handlers/entity/image.ts"],
4
+ "sourcesContent": ["import type { DXFTuple, PartialPoint3D } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'IMAGE'\n\ninterface ImageEntity {\n type: typeof TYPE\n\n insertionPoint: PartialPoint3D\n uVector: PartialPoint3D\n vVector: PartialPoint3D\n\n pixelSizeX: number\n pixelSizeY: number\n\n imageDefHandle?: string\n imageDefReactorHandle?: string\n\n displayProperties?: number\n clippingState?: number\n brightness?: number\n contrast?: number\n fade?: number\n classVersion?: number\n\n [key: string]: unknown\n}\n\nexport const process = (tuples: DXFTuple[]): ImageEntity => {\n return tuples.reduce(\n (entity, tuple) => {\n const type = tuple[0]\n const value = tuple[1]\n\n switch (type) {\n case 90:\n entity.classVersion = value as number\n break\n\n case 10:\n entity.insertionPoint.x = value as number\n break\n case 20:\n entity.insertionPoint.y = value as number\n break\n case 30:\n entity.insertionPoint.z = value as number\n break\n\n case 11:\n entity.uVector.x = value as number\n break\n case 21:\n entity.uVector.y = value as number\n break\n case 31:\n entity.uVector.z = value as number\n break\n\n case 12:\n entity.vVector.x = value as number\n break\n case 22:\n entity.vVector.y = value as number\n break\n case 32:\n entity.vVector.z = value as number\n break\n\n case 13:\n entity.pixelSizeX = value as number\n break\n case 23:\n entity.pixelSizeY = value as number\n break\n\n case 340:\n entity.imageDefHandle = String(value)\n break\n case 360:\n entity.imageDefReactorHandle = String(value)\n break\n\n case 70:\n entity.displayProperties = value as number\n break\n case 280:\n entity.clippingState = value as number\n break\n case 281:\n entity.brightness = value as number\n break\n case 282:\n entity.contrast = value as number\n break\n case 283:\n entity.fade = value as number\n break\n\n default:\n Object.assign(entity, common(type, value))\n break\n }\n return entity\n },\n {\n type: TYPE,\n insertionPoint: {},\n uVector: {},\n vVector: {},\n pixelSizeX: 0,\n pixelSizeY: 0,\n } as ImageEntity,\n )\n}\n\nexport default { TYPE, process }\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AAEZ,MAAM,OAAO;AAyBb,MAAM,UAAU,CAAC,WAAoC;AAC1D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,eAAe;AACtB;AAAA,QAEF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QACF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QACF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QAEF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QACF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QACF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QAEF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QACF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QACF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QAEF,KAAK;AACH,iBAAO,aAAa;AACpB;AAAA,QACF,KAAK;AACH,iBAAO,aAAa;AACpB;AAAA,QAEF,KAAK;AACH,iBAAO,iBAAiB,OAAO,KAAK;AACpC;AAAA,QACF,KAAK;AACH,iBAAO,wBAAwB,OAAO,KAAK;AAC3C;AAAA,QAEF,KAAK;AACH,iBAAO,oBAAoB;AAC3B;AAAA,QACF,KAAK;AACH,iBAAO,gBAAgB;AACvB;AAAA,QACF,KAAK;AACH,iBAAO,aAAa;AACpB;AAAA,QACF,KAAK;AACH,iBAAO,WAAW;AAClB;AAAA,QACF,KAAK;AACH,iBAAO,OAAO;AACd;AAAA,QAEF;AACE,iBAAO,OAAO,YAAQ,cAAAA,SAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AACA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,gBAAgB,CAAC;AAAA,MACjB,SAAS,CAAC;AAAA,MACV,SAAS,CAAC;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEA,IAAO,gBAAQ,EAAE,MAAM,QAAQ;",
6
+ "names": ["common"]
7
+ }