abstract-3d 2.7.30 → 2.7.33

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 (239) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +1 -1
  3. package/lib/abstract-3d.d.ts +2 -2
  4. package/lib/abstract-3d.d.ts.map +1 -1
  5. package/lib/abstract-3d.js +21 -13
  6. package/lib/abstract-3d.js.map +1 -1
  7. package/lib/renderers/dxf/dxf-encoding/dxf-3dface.d.ts.map +1 -1
  8. package/lib/renderers/dxf/dxf-encoding/dxf-color.js +2 -2
  9. package/lib/renderers/dxf/dxf-encoding/dxf-color.js.map +1 -1
  10. package/lib/renderers/dxf/dxf-encoding/dxf-common.d.ts.map +1 -1
  11. package/lib/renderers/dxf/dxf-encoding/dxf-common.js +9 -4
  12. package/lib/renderers/dxf/dxf-encoding/dxf-common.js.map +1 -1
  13. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts +1 -1
  14. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts.map +1 -1
  15. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js +3 -3
  16. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js.map +1 -1
  17. package/lib/renderers/dxf/dxf-encoding/dxf-footer.d.ts.map +1 -1
  18. package/lib/renderers/dxf/dxf-encoding/dxf-footer.js +2 -1
  19. package/lib/renderers/dxf/dxf-encoding/dxf-footer.js.map +1 -1
  20. package/lib/renderers/dxf/dxf-encoding/dxf-header.d.ts.map +1 -1
  21. package/lib/renderers/dxf/dxf-encoding/dxf-header.js +2 -1
  22. package/lib/renderers/dxf/dxf-encoding/dxf-header.js.map +1 -1
  23. package/lib/renderers/dxf/dxf-encoding/dxf-lwpolyline.d.ts.map +1 -1
  24. package/lib/renderers/dxf/dxf-encoding/dxf-lwpolyline.js +1 -3
  25. package/lib/renderers/dxf/dxf-encoding/dxf-lwpolyline.js.map +1 -1
  26. package/lib/renderers/dxf/dxf-encoding/dxf-mtext.d.ts.map +1 -1
  27. package/lib/renderers/dxf/dxf-encoding/dxf-mtext.js +0 -1
  28. package/lib/renderers/dxf/dxf-encoding/dxf-mtext.js.map +1 -1
  29. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.d.ts.map +1 -1
  30. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.js.map +1 -1
  31. package/lib/renderers/dxf/dxf-encoding/dxf-solid.d.ts.map +1 -1
  32. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.d.ts.map +1 -1
  33. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.d.ts.map +1 -1
  34. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.js +1 -1
  35. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.js.map +1 -1
  36. package/lib/renderers/dxf/dxf-geometries/dxf-image.js +3 -8
  37. package/lib/renderers/dxf/dxf-geometries/dxf-image.js.map +1 -1
  38. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.d.ts.map +1 -1
  39. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js +2 -2
  40. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js.map +1 -1
  41. package/lib/renderers/dxf/dxf-geometries/dxf-shape.d.ts.map +1 -1
  42. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js +1 -1
  43. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js.map +1 -1
  44. package/lib/renderers/dxf/dxf.d.ts.map +1 -1
  45. package/lib/renderers/dxf/dxf.js +9 -5
  46. package/lib/renderers/dxf/dxf.js.map +1 -1
  47. package/lib/renderers/react/react-camera.d.ts +2 -2
  48. package/lib/renderers/react/react-camera.d.ts.map +1 -1
  49. package/lib/renderers/react/react-camera.js +4 -6
  50. package/lib/renderers/react/react-camera.js.map +1 -1
  51. package/lib/renderers/react/react-dimension.d.ts +2 -2
  52. package/lib/renderers/react/react-dimension.d.ts.map +1 -1
  53. package/lib/renderers/react/react-dimension.js +3 -3
  54. package/lib/renderers/react/react-dimension.js.map +1 -1
  55. package/lib/renderers/react/react-group.d.ts +4 -4
  56. package/lib/renderers/react/react-group.d.ts.map +1 -1
  57. package/lib/renderers/react/react-group.js.map +1 -1
  58. package/lib/renderers/react/react-hotspot.d.ts +2 -2
  59. package/lib/renderers/react/react-hotspot.d.ts.map +1 -1
  60. package/lib/renderers/react/react-hotspot.js +1 -1
  61. package/lib/renderers/react/react-hotspot.js.map +1 -1
  62. package/lib/renderers/react/react-image-material.d.ts +2 -2
  63. package/lib/renderers/react/react-image-material.d.ts.map +1 -1
  64. package/lib/renderers/react/react-image-material.js +5 -5
  65. package/lib/renderers/react/react-image-material.js.map +1 -1
  66. package/lib/renderers/react/react-material.d.ts +1 -1
  67. package/lib/renderers/react/react-material.d.ts.map +1 -1
  68. package/lib/renderers/react/react-material.js +1 -0
  69. package/lib/renderers/react/react-material.js.map +1 -1
  70. package/lib/renderers/react/react-mesh.d.ts +1 -1
  71. package/lib/renderers/react/react-mesh.d.ts.map +1 -1
  72. package/lib/renderers/react/react-mesh.js +5 -13
  73. package/lib/renderers/react/react-mesh.js.map +1 -1
  74. package/lib/renderers/react/react-scene.d.ts +5 -5
  75. package/lib/renderers/react/react-scene.d.ts.map +1 -1
  76. package/lib/renderers/react/react-scene.js +1 -0
  77. package/lib/renderers/react/react-scene.js.map +1 -1
  78. package/lib/renderers/react/react-types.d.ts +1 -1
  79. package/lib/renderers/react/react-types.d.ts.map +1 -1
  80. package/lib/renderers/react/react.d.ts +5 -5
  81. package/lib/renderers/react/react.d.ts.map +1 -1
  82. package/lib/renderers/react/react.js +2 -2
  83. package/lib/renderers/react/react.js.map +1 -1
  84. package/lib/renderers/step/step-encoding.d.ts +1 -1
  85. package/lib/renderers/step/step-encoding.d.ts.map +1 -1
  86. package/lib/renderers/step/step-encoding.js.map +1 -1
  87. package/lib/renderers/step/step-geometries/step-box.d.ts +2 -2
  88. package/lib/renderers/step/step-geometries/step-box.d.ts.map +1 -1
  89. package/lib/renderers/step/step-geometries/step-box.js.map +1 -1
  90. package/lib/renderers/step/step-geometries/step-cone.d.ts +2 -2
  91. package/lib/renderers/step/step-geometries/step-cone.d.ts.map +1 -1
  92. package/lib/renderers/step/step-geometries/step-cone.js +0 -1
  93. package/lib/renderers/step/step-geometries/step-cone.js.map +1 -1
  94. package/lib/renderers/step/step-geometries/step-cylinder.d.ts +2 -2
  95. package/lib/renderers/step/step-geometries/step-cylinder.d.ts.map +1 -1
  96. package/lib/renderers/step/step-geometries/step-cylinder.js +8 -23
  97. package/lib/renderers/step/step-geometries/step-cylinder.js.map +1 -1
  98. package/lib/renderers/step/step-geometries/step-plane.d.ts +2 -2
  99. package/lib/renderers/step/step-geometries/step-plane.d.ts.map +1 -1
  100. package/lib/renderers/step/step-geometries/step-plane.js +1 -1
  101. package/lib/renderers/step/step-geometries/step-plane.js.map +1 -1
  102. package/lib/renderers/step/step.d.ts +1 -1
  103. package/lib/renderers/step/step.d.ts.map +1 -1
  104. package/lib/renderers/step/step.js +1 -1
  105. package/lib/renderers/step/step.js.map +1 -1
  106. package/lib/renderers/stl/stl-encoding.d.ts +1 -1
  107. package/lib/renderers/stl/stl-encoding.d.ts.map +1 -1
  108. package/lib/renderers/stl/stl-encoding.js.map +1 -1
  109. package/lib/renderers/stl/stl-geometries/stl-box.d.ts +1 -1
  110. package/lib/renderers/stl/stl-geometries/stl-box.d.ts.map +1 -1
  111. package/lib/renderers/stl/stl-geometries/stl-box.js.map +1 -1
  112. package/lib/renderers/stl/stl-geometries/stl-cone.d.ts +1 -1
  113. package/lib/renderers/stl/stl-geometries/stl-cone.d.ts.map +1 -1
  114. package/lib/renderers/stl/stl-geometries/stl-cone.js.map +1 -1
  115. package/lib/renderers/stl/stl-geometries/stl-cylinder.d.ts +1 -1
  116. package/lib/renderers/stl/stl-geometries/stl-cylinder.d.ts.map +1 -1
  117. package/lib/renderers/stl/stl-geometries/stl-cylinder.js +1 -1
  118. package/lib/renderers/stl/stl-geometries/stl-cylinder.js.map +1 -1
  119. package/lib/renderers/stl/stl-geometries/stl-plane.d.ts +1 -1
  120. package/lib/renderers/stl/stl-geometries/stl-plane.d.ts.map +1 -1
  121. package/lib/renderers/stl/stl-geometries/stl-plane.js +1 -1
  122. package/lib/renderers/stl/stl-geometries/stl-plane.js.map +1 -1
  123. package/lib/renderers/stl/stl-geometries/stl-polygon.d.ts +1 -1
  124. package/lib/renderers/stl/stl-geometries/stl-polygon.d.ts.map +1 -1
  125. package/lib/renderers/stl/stl-geometries/stl-polygon.js.map +1 -1
  126. package/lib/renderers/stl/stl-geometries/stl-shape.d.ts +1 -1
  127. package/lib/renderers/stl/stl-geometries/stl-shape.d.ts.map +1 -1
  128. package/lib/renderers/stl/stl-geometries/stl-shape.js.map +1 -1
  129. package/lib/renderers/stl/stl.d.ts +1 -1
  130. package/lib/renderers/stl/stl.d.ts.map +1 -1
  131. package/lib/renderers/stl/stl.js.map +1 -1
  132. package/lib/renderers/svg/index.js +1 -0
  133. package/lib/renderers/svg/index.js.map +1 -1
  134. package/lib/renderers/svg/svg-encoding.d.ts +3 -3
  135. package/lib/renderers/svg/svg-encoding.d.ts.map +1 -1
  136. package/lib/renderers/svg/svg-encoding.js +6 -15
  137. package/lib/renderers/svg/svg-encoding.js.map +1 -1
  138. package/lib/renderers/svg/svg-geometries/shared.d.ts +1 -1
  139. package/lib/renderers/svg/svg-geometries/shared.d.ts.map +1 -1
  140. package/lib/renderers/svg/svg-geometries/shared.js.map +1 -1
  141. package/lib/renderers/svg/svg-geometries/svg-box.d.ts +2 -2
  142. package/lib/renderers/svg/svg-geometries/svg-box.d.ts.map +1 -1
  143. package/lib/renderers/svg/svg-geometries/svg-box.js +1 -1
  144. package/lib/renderers/svg/svg-geometries/svg-box.js.map +1 -1
  145. package/lib/renderers/svg/svg-geometries/svg-cone.d.ts +2 -2
  146. package/lib/renderers/svg/svg-geometries/svg-cone.d.ts.map +1 -1
  147. package/lib/renderers/svg/svg-geometries/svg-cone.js +2 -2
  148. package/lib/renderers/svg/svg-geometries/svg-cone.js.map +1 -1
  149. package/lib/renderers/svg/svg-geometries/svg-cylinder.d.ts +2 -2
  150. package/lib/renderers/svg/svg-geometries/svg-cylinder.d.ts.map +1 -1
  151. package/lib/renderers/svg/svg-geometries/svg-cylinder.js +2 -2
  152. package/lib/renderers/svg/svg-geometries/svg-cylinder.js.map +1 -1
  153. package/lib/renderers/svg/svg-geometries/svg-image.d.ts +2 -2
  154. package/lib/renderers/svg/svg-geometries/svg-image.d.ts.map +1 -1
  155. package/lib/renderers/svg/svg-geometries/svg-image.js +1 -1
  156. package/lib/renderers/svg/svg-geometries/svg-image.js.map +1 -1
  157. package/lib/renderers/svg/svg-geometries/svg-line.d.ts +2 -2
  158. package/lib/renderers/svg/svg-geometries/svg-line.d.ts.map +1 -1
  159. package/lib/renderers/svg/svg-geometries/svg-line.js.map +1 -1
  160. package/lib/renderers/svg/svg-geometries/svg-plane.d.ts +2 -2
  161. package/lib/renderers/svg/svg-geometries/svg-plane.d.ts.map +1 -1
  162. package/lib/renderers/svg/svg-geometries/svg-plane.js +1 -1
  163. package/lib/renderers/svg/svg-geometries/svg-plane.js.map +1 -1
  164. package/lib/renderers/svg/svg-geometries/svg-polygon.d.ts +2 -2
  165. package/lib/renderers/svg/svg-geometries/svg-polygon.d.ts.map +1 -1
  166. package/lib/renderers/svg/svg-geometries/svg-polygon.js +1 -1
  167. package/lib/renderers/svg/svg-geometries/svg-polygon.js.map +1 -1
  168. package/lib/renderers/svg/svg-geometries/svg-shape.d.ts +2 -2
  169. package/lib/renderers/svg/svg-geometries/svg-shape.d.ts.map +1 -1
  170. package/lib/renderers/svg/svg-geometries/svg-shape.js +1 -1
  171. package/lib/renderers/svg/svg-geometries/svg-shape.js.map +1 -1
  172. package/lib/renderers/svg/svg-geometries/svg-text.d.ts +2 -2
  173. package/lib/renderers/svg/svg-geometries/svg-text.d.ts.map +1 -1
  174. package/lib/renderers/svg/svg-geometries/svg-text.js.map +1 -1
  175. package/lib/renderers/svg/svg.d.ts +3 -3
  176. package/lib/renderers/svg/svg.d.ts.map +1 -1
  177. package/lib/renderers/svg/svg.js.map +1 -1
  178. package/lib/utils.d.ts +1 -1
  179. package/lib/utils.d.ts.map +1 -1
  180. package/lib/utils.js +0 -1
  181. package/lib/utils.js.map +1 -1
  182. package/package.json +3 -3
  183. package/src/abstract-3d.ts +93 -93
  184. package/src/custom_typings/react-three-fiber.d.ts +1 -1
  185. package/src/renderers/dxf/dxf-encoding/dxf-3dface.ts +1 -1
  186. package/src/renderers/dxf/dxf-encoding/dxf-color.ts +26 -26
  187. package/src/renderers/dxf/dxf-encoding/dxf-common.ts +23 -9
  188. package/src/renderers/dxf/dxf-encoding/dxf-dimension.ts +57 -13
  189. package/src/renderers/dxf/dxf-encoding/dxf-footer.ts +3 -2
  190. package/src/renderers/dxf/dxf-encoding/dxf-header.ts +15 -4
  191. package/src/renderers/dxf/dxf-encoding/dxf-line.ts +1 -1
  192. package/src/renderers/dxf/dxf-encoding/dxf-lwpolyline.ts +21 -17
  193. package/src/renderers/dxf/dxf-encoding/dxf-mtext.ts +12 -3
  194. package/src/renderers/dxf/dxf-encoding/dxf-polyline.ts +2 -3
  195. package/src/renderers/dxf/dxf-encoding/dxf-solid.ts +1 -1
  196. package/src/renderers/dxf/dxf-encoding/dxf-triangle.ts +1 -1
  197. package/src/renderers/dxf/dxf-geometries/dxf-box.ts +1 -1
  198. package/src/renderers/dxf/dxf-geometries/dxf-dimension.ts +18 -4
  199. package/src/renderers/dxf/dxf-geometries/dxf-image.ts +8 -20
  200. package/src/renderers/dxf/dxf-geometries/dxf-polygon.ts +16 -28
  201. package/src/renderers/dxf/dxf-geometries/dxf-shape.ts +13 -5
  202. package/src/renderers/dxf/dxf.ts +67 -16
  203. package/src/renderers/react/react-camera.tsx +7 -8
  204. package/src/renderers/react/react-dimension.tsx +5 -5
  205. package/src/renderers/react/react-group.tsx +6 -4
  206. package/src/renderers/react/react-hotspot.tsx +3 -2
  207. package/src/renderers/react/react-image-material.tsx +9 -9
  208. package/src/renderers/react/react-material.tsx +7 -7
  209. package/src/renderers/react/react-mesh.tsx +29 -40
  210. package/src/renderers/react/react-scene.tsx +6 -5
  211. package/src/renderers/react/react-types.ts +1 -1
  212. package/src/renderers/react/react.tsx +8 -7
  213. package/src/renderers/step/step-encoding.ts +43 -44
  214. package/src/renderers/step/step-geometries/step-box.ts +3 -8
  215. package/src/renderers/step/step-geometries/step-cone.ts +3 -14
  216. package/src/renderers/step/step-geometries/step-cylinder.ts +49 -251
  217. package/src/renderers/step/step-geometries/step-plane.ts +4 -11
  218. package/src/renderers/step/step.ts +3 -19
  219. package/src/renderers/stl/stl-encoding.ts +2 -1
  220. package/src/renderers/stl/stl-geometries/stl-box.ts +2 -1
  221. package/src/renderers/stl/stl-geometries/stl-cone.ts +2 -1
  222. package/src/renderers/stl/stl-geometries/stl-cylinder.ts +3 -2
  223. package/src/renderers/stl/stl-geometries/stl-plane.ts +2 -10
  224. package/src/renderers/stl/stl-geometries/stl-polygon.ts +2 -1
  225. package/src/renderers/stl/stl-geometries/stl-shape.ts +2 -1
  226. package/src/renderers/stl/stl.ts +2 -1
  227. package/src/renderers/svg/svg-encoding.ts +7 -31
  228. package/src/renderers/svg/svg-geometries/shared.ts +2 -1
  229. package/src/renderers/svg/svg-geometries/svg-box.ts +4 -13
  230. package/src/renderers/svg/svg-geometries/svg-cone.ts +5 -14
  231. package/src/renderers/svg/svg-geometries/svg-cylinder.ts +5 -14
  232. package/src/renderers/svg/svg-geometries/svg-image.ts +8 -14
  233. package/src/renderers/svg/svg-geometries/svg-line.ts +4 -2
  234. package/src/renderers/svg/svg-geometries/svg-plane.ts +4 -14
  235. package/src/renderers/svg/svg-geometries/svg-polygon.ts +4 -11
  236. package/src/renderers/svg/svg-geometries/svg-shape.ts +4 -12
  237. package/src/renderers/svg/svg-geometries/svg-text.ts +6 -8
  238. package/src/renderers/svg/svg.ts +13 -17
  239. package/src/utils.ts +26 -31
@@ -1,6 +1,13 @@
1
- import { dimensionMeshifyAlignedDimension, type Material, type Vec3, DimensionAligned, View, vec3RotCombine, vec3, vec3Cross } from "../../../abstract-3d.js";
1
+ import { dimensionMeshifyAlignedDimension } from "../../../abstract-3d.js";
2
+ import type { DimensionAligned, View, Material, Vec3 } from "../../../abstract-3d.js";
2
3
  import { type DxfColor, dxfColor } from "./dxf-color.js";
3
- import { DXF_BLOCK_RECORD_TABLE_HANDLE, DXF_MODEL_SPACE_HANDLE, dxfHandleNext, dxfRound, type Handle } from "./dxf-common.js";
4
+ import {
5
+ DXF_BLOCK_RECORD_TABLE_HANDLE,
6
+ DXF_MODEL_SPACE_HANDLE,
7
+ dxfHandleNext,
8
+ dxfRound,
9
+ type Handle,
10
+ } from "./dxf-common.js";
4
11
  import { dxfEncLine } from "./dxf-line.js";
5
12
  import { DxfMTextAttachment, dxfEncMText, encodeDxfFormattedText } from "./dxf-mtext.js";
6
13
  import { dxfEncSolidTriangle } from "./dxf-triangle.js";
@@ -26,8 +33,20 @@ export function dxfEncDimension(
26
33
  const blockName = `*D${blockRecordHandle}`;
27
34
  return {
28
35
  entity: dxfEncodeDimensionEntity(blockName, measurementStart, measurementEnd, linePosition, text, col, handleRef),
29
- block: dxfEncodeDimensionBlock(blockName, blockRecordHandle, measurementStart, measurementEnd, linePosition, text, col, sceneRotation, viewRotation, views, handleRef),
30
- blockRecord: dxfEncodeDimensionBlockRecord(blockName, blockRecordHandle)
36
+ block: dxfEncodeDimensionBlock(
37
+ blockName,
38
+ blockRecordHandle,
39
+ measurementStart,
40
+ measurementEnd,
41
+ linePosition,
42
+ text,
43
+ col,
44
+ sceneRotation,
45
+ viewRotation,
46
+ views,
47
+ handleRef
48
+ ),
49
+ blockRecord: dxfEncodeDimensionBlockRecord(blockName, blockRecordHandle),
31
50
  };
32
51
  }
33
52
 
@@ -88,10 +107,7 @@ ${dxfRound(measurementEnd.z)}
88
107
  `;
89
108
  }
90
109
 
91
- function dxfEncodeDimensionBlockRecord(
92
- blockName: string,
93
- blockRecordHandle: string,
94
- ): string {
110
+ function dxfEncodeDimensionBlockRecord(blockName: string, blockRecordHandle: string): string {
95
111
  return `0
96
112
  BLOCK_RECORD
97
113
  5
@@ -146,7 +162,18 @@ ${blockName}
146
162
  ${blockName}
147
163
  1
148
164
 
149
- ${dxfEncodeDimensionGeometry(blockRecordHandle, measurementStart, measurementEnd, linePosition, text, col, sceneRotation, viewRotation, views, handleRef)}0
165
+ ${dxfEncodeDimensionGeometry(
166
+ blockRecordHandle,
167
+ measurementStart,
168
+ measurementEnd,
169
+ linePosition,
170
+ text,
171
+ col,
172
+ sceneRotation,
173
+ viewRotation,
174
+ views,
175
+ handleRef
176
+ )}0
150
177
  ENDBLK
151
178
  5
152
179
  ${dxfHandleNext(handleRef)}
@@ -180,8 +207,25 @@ function dxfEncodeDimensionGeometry(
180
207
  const onCreateLine = (start: Vec3, end: Vec3, _norm: Vec3, _thickness: number, _mat: Material): void => {
181
208
  entities += dxfEncLine(start, end, col, handleRef, blockRecordHandle);
182
209
  };
183
- const onCreateText = (pos: Vec3, measurement: string, fontSize: number, _mat: Material, _rot: Vec3, dir: Vec3, norm: Vec3): void => {
184
- entities += dxfEncMText(pos, measurement, dir, norm, fontSize, handleRef, DxfMTextAttachment.MiddleCenter, blockRecordHandle);
210
+ const onCreateText = (
211
+ pos: Vec3,
212
+ measurement: string,
213
+ fontSize: number,
214
+ _mat: Material,
215
+ _rot: Vec3,
216
+ dir: Vec3,
217
+ norm: Vec3
218
+ ): void => {
219
+ entities += dxfEncMText(
220
+ pos,
221
+ measurement,
222
+ dir,
223
+ norm,
224
+ fontSize,
225
+ handleRef,
226
+ DxfMTextAttachment.MiddleCenter,
227
+ blockRecordHandle
228
+ );
185
229
  };
186
230
  const onCreatePolygon = (p1: Vec3, p2: Vec3, p3: Vec3, _mat: Material): void => {
187
231
  entities += dxfEncSolidTriangle(p1, p2, p3, col, handleRef, blockRecordHandle);
@@ -191,8 +235,8 @@ function dxfEncodeDimensionGeometry(
191
235
  measurementStart,
192
236
  measurementEnd,
193
237
  text,
194
- views
238
+ views,
195
239
  };
196
240
  dimensionMeshifyAlignedDimension(dimension, sceneRotation, viewRotation, onCreateLine, onCreateText, onCreatePolygon);
197
241
  return entities;
198
- }
242
+ }
@@ -1,6 +1,7 @@
1
+ // oxlint-disable-next-line import/no-cycle -- both sides only call each other from function bodies
1
2
  import { DXF_MODEL_SPACE_HANDLE } from "./dxf-common.js";
2
3
 
3
- /* eslint-disable max-lines */
4
+ /* oxlint-disable max-lines */
4
5
  export const dxfEncFooter = (blockId: string): string => ` 0
5
6
  ENDBLK
6
7
  5
@@ -16648,4 +16649,4 @@ RTVSPost2010PropOp57
16648
16649
  0
16649
16650
  ENDSEC
16650
16651
  0
16651
- EOF`;
16652
+ EOF`;
@@ -1,11 +1,22 @@
1
- /* eslint-disable max-lines */
1
+ /* oxlint-disable max-lines */
2
2
  import type { Bounds3, Vec3 } from "../../../abstract-3d.js";
3
+ // oxlint-disable-next-line import/no-cycle -- both sides only call each other from function bodies
3
4
  import { DXF_BLOCK_RECORD_TABLE_HANDLE, DXF_MODEL_SPACE_HANDLE } from "./dxf-common.js";
4
5
 
5
6
  const DXF_MAKER = "DXF Generated from Divid Abstract 3D";
6
7
  const DXF_STANDARD = "AC1015";
7
8
 
8
- export const dxfEncHeader = (bounds: Bounds3, center: Vec3, blockId: string, size: Vec3, dimBlocks: string, dimBlockRecords: string, dimScale: number = 44.0, dimArrowSize: number = 1.0, dimTextHeight: number = 1.0): string =>
9
+ export const dxfEncHeader = (
10
+ bounds: Bounds3,
11
+ center: Vec3,
12
+ blockId: string,
13
+ size: Vec3,
14
+ dimBlocks: string,
15
+ dimBlockRecords: string,
16
+ dimScale: number = 44.0,
17
+ dimArrowSize: number = 1.0,
18
+ dimTextHeight: number = 1.0
19
+ ): string =>
9
20
  ` 999
10
21
  ${DXF_MAKER}
11
22
  0
@@ -1093,7 +1104,7 @@ AcDbViewportTableRecord
1093
1104
  12
1094
1105
  ${-size.x / 2}
1095
1106
  22
1096
- ${0}
1107
+ 0
1097
1108
  13
1098
1109
  0.0
1099
1110
  23
@@ -1654,4 +1665,4 @@ ${blockId}
1654
1665
  ${blockId}
1655
1666
  1
1656
1667
 
1657
- `;
1668
+ `;
@@ -33,4 +33,4 @@ ${dxfRound(vecEnd.y)}
33
33
  31
34
34
  ${dxfRound(vecEnd.z)}
35
35
  `;
36
- }
36
+ }
@@ -28,18 +28,15 @@ export function dxfEncLwPolyline(
28
28
  return undefined;
29
29
  }
30
30
 
31
- if(points.length === 2) {
31
+ if (points.length === 2) {
32
32
  const a = points[0];
33
33
  const b = points[1];
34
- if(a === undefined || b === undefined) {
34
+ if (a === undefined || b === undefined) {
35
35
  return undefined;
36
36
  }
37
37
 
38
38
  const direction = vec3Normalize(vec3Sub(b, a));
39
- const reference =
40
- Math.abs(direction.z) < 0.9
41
- ? vec3(0, 0, 1)
42
- : vec3(0, 1, 0);
39
+ const reference = Math.abs(direction.z) < 0.9 ? vec3(0, 0, 1) : vec3(0, 1, 0);
43
40
  const normal = vec3Normalize(vec3Cross(direction, reference));
44
41
 
45
42
  const plane: LwPolylinePlane = {
@@ -52,13 +49,20 @@ export function dxfEncLwPolyline(
52
49
  }
53
50
 
54
51
  const plane = findPlane(planePos, points);
55
- if(!plane || !isCoplanar(points, plane)) {
52
+ if (!plane || !isCoplanar(points, plane)) {
56
53
  return undefined;
57
54
  }
58
55
  return encodeLwPolyline(points, plane, col, closed, handleRef, blockRefHandle);
59
56
  }
60
57
 
61
- function encodeLwPolyline(points: ReadonlyArray<Vec3>, plane: LwPolylinePlane, col: DxfColor, closed: boolean, handleRef: Handle, blockRefHandle?: string): string {
58
+ function encodeLwPolyline(
59
+ points: ReadonlyArray<Vec3>,
60
+ plane: LwPolylinePlane,
61
+ col: DxfColor,
62
+ closed: boolean,
63
+ handleRef: Handle,
64
+ blockRefHandle?: string
65
+ ): string {
62
66
  let dxf = "";
63
67
  const planeElevation = vec3Dot(plane.pos, plane.normal);
64
68
 
@@ -73,7 +77,7 @@ function encodeLwPolyline(points: ReadonlyArray<Vec3>, plane: LwPolylinePlane, c
73
77
  dxf += `70\n${closed ? 1 : 0}\n`;
74
78
  dxf += `38\n${planeElevation}\n`;
75
79
 
76
- for(const point of points) {
80
+ for (const point of points) {
77
81
  dxf += `10\n${vec3Dot(point, plane.xAxis)}\n`;
78
82
  dxf += `20\n${vec3Dot(point, plane.yAxis)}\n`;
79
83
  }
@@ -86,29 +90,29 @@ function encodeLwPolyline(points: ReadonlyArray<Vec3>, plane: LwPolylinePlane, c
86
90
  }
87
91
 
88
92
  function findPlane(planePos: Vec3, points: ReadonlyArray<Vec3>): LwPolylinePlane | undefined {
89
- if(points.length < 3) {
93
+ if (points.length < 3) {
90
94
  return undefined;
91
95
  }
92
- for(let i = 1; i < points.length; i++) {
96
+ for (let i = 1; i < points.length; i++) {
93
97
  const aRaw = points[i];
94
- if(aRaw === undefined) {
98
+ if (aRaw === undefined) {
95
99
  continue;
96
100
  }
97
101
  const a = vec3Sub(aRaw, planePos);
98
- for(let j = i + 1; j < points.length; j++) {
102
+ for (let j = i + 1; j < points.length; j++) {
99
103
  const bRaw = points[j];
100
- if(bRaw === undefined) {
104
+ if (bRaw === undefined) {
101
105
  continue;
102
106
  }
103
107
  const b = vec3Sub(bRaw, planePos);
104
108
  const normal = vec3Cross(a, b);
105
- if(vec3Length(normal) > EPSILON) {
109
+ if (vec3Length(normal) > EPSILON) {
106
110
  const normalizedNormal = vec3Normalize(normal);
107
111
  return {
108
112
  normal: normalizedNormal,
109
113
  pos: planePos,
110
114
  ...dxfOCSXYAxis(normalizedNormal),
111
- }
115
+ };
112
116
  }
113
117
  }
114
118
  }
@@ -120,4 +124,4 @@ function isCoplanar(points: ReadonlyArray<Vec3>, plane: LwPolylinePlane): boolea
120
124
  const distance = vec3Dot(vec3Sub(p, plane.pos), plane.normal);
121
125
  return Math.abs(distance) < EPSILON;
122
126
  });
123
- }
127
+ }
@@ -11,9 +11,18 @@ export enum DxfMTextAttachment {
11
11
  BottomLeft = 7,
12
12
  BottomCenter = 8,
13
13
  BottomRight = 9,
14
- };
14
+ }
15
15
 
16
- export function dxfEncMText(pos: Vec3, text: string, dir: Vec3, normal: Vec3, fontSize: number, handleRef: Handle, attachment: DxfMTextAttachment = DxfMTextAttachment.MiddleCenter, blockRefHandle?: string): string {
16
+ export function dxfEncMText(
17
+ pos: Vec3,
18
+ text: string,
19
+ dir: Vec3,
20
+ normal: Vec3,
21
+ fontSize: number,
22
+ handleRef: Handle,
23
+ attachment: DxfMTextAttachment = DxfMTextAttachment.MiddleCenter,
24
+ blockRefHandle?: string
25
+ ): string {
17
26
  return `0
18
27
  MTEXT
19
28
  5
@@ -55,4 +64,4 @@ ${encodeDxfFormattedText(text)}
55
64
 
56
65
  export function encodeDxfFormattedText(text: string): string {
57
66
  return text.replace(/\r\n|\r|\n/g, "\\P");
58
- }
67
+ }
@@ -17,7 +17,7 @@ export function dxfEncPolyline(
17
17
  const seqEndHandle = dxfHandleNext(handleRef);
18
18
  const vertices = points
19
19
  .map((p) => {
20
- return ` 0
20
+ return ` 0
21
21
  VERTEX
22
22
  5
23
23
  ${dxfHandleNext(handleRef)}
@@ -42,7 +42,6 @@ ${dxfRound(p.z)}
42
42
  32`;
43
43
  })
44
44
  .join("\n");
45
-
46
45
 
47
46
  return ` 0
48
47
  POLYLINE
@@ -79,4 +78,4 @@ AcDbEntity
79
78
  8
80
79
  0
81
80
  `;
82
- }
81
+ }
@@ -45,4 +45,4 @@ ${dxfRound(vec4.x)}
45
45
  ${dxfRound(vec4.y)}
46
46
  33
47
47
  ${dxfRound(vec4.z)}
48
- `;
48
+ `;
@@ -20,4 +20,4 @@ export const dxfEncSolidTriangle = (
20
20
  col: DxfColor,
21
21
  handleRef: Handle,
22
22
  blockRefHandle?: string
23
- ): string => dxfEncSolid(vec1, vec2, vec3, vec3, col, handleRef, blockRefHandle);
23
+ ): string => dxfEncSolid(vec1, vec2, vec3, vec3, col, handleRef, blockRefHandle);
@@ -4,7 +4,7 @@ import {
4
4
  type Vec3,
5
5
  vec3,
6
6
  vec3RotCombine,
7
- vec3Scale,
7
+ vec3Scale,
8
8
  vec3TransRot,
9
9
  vec3Zero,
10
10
  } from "../../../abstract-3d.js";
@@ -1,9 +1,23 @@
1
- import { type Dimension, dimensionIsOfTypeMesh, type Vec3, vec3Length, vec3Sub, vec3TransRot } from "../../../abstract-3d.js";
1
+ import {
2
+ type Dimension,
3
+ dimensionIsOfTypeMesh,
4
+ type Vec3,
5
+ vec3Length,
6
+ vec3Sub,
7
+ vec3TransRot,
8
+ } from "../../../abstract-3d.js";
2
9
  import type { Handle } from "../dxf-encoding/dxf-common.js";
3
10
  import { type DxfDimensionDefinition, dxfEncDimension } from "../dxf-encoding/dxf-dimension.js";
4
11
 
5
- export function dxfDimension(dimension: Dimension, parentPos: Vec3, parentRot: Vec3, sceneRotation: Vec3, viewRotation: Vec3, handleRef: Handle): DxfDimensionDefinition {
6
- if(dimensionIsOfTypeMesh(dimension)) {
12
+ export function dxfDimension(
13
+ dimension: Dimension,
14
+ parentPos: Vec3,
15
+ parentRot: Vec3,
16
+ sceneRotation: Vec3,
17
+ viewRotation: Vec3,
18
+ handleRef: Handle
19
+ ): DxfDimensionDefinition {
20
+ if (dimensionIsOfTypeMesh(dimension)) {
7
21
  return {
8
22
  block: "",
9
23
  entity: "",
@@ -15,4 +29,4 @@ export function dxfDimension(dimension: Dimension, parentPos: Vec3, parentRot: V
15
29
  const lp = vec3TransRot(dimension.linePosition, parentPos, parentRot);
16
30
  const text = dimension.text ?? `${vec3Length(vec3Sub(me, ms))}`;
17
31
  return dxfEncDimension(ms, me, lp, text, 7, sceneRotation, viewRotation, dimension.views ?? ["front"], handleRef);
18
- }
32
+ }
@@ -35,29 +35,17 @@ export function dxfImage(i: ImageMesh, parentPos: Vec3, parentRot: Vec3, handleR
35
35
  }
36
36
 
37
37
  function abstractImageToDxf3D(image: AbstractImage, pos: Vec3, rot: Vec3, scale: Vec3, handleRef: Handle): string {
38
- const strokeScale = Math.max(scale.x, scale.y, scale.z);
39
- return image.components
40
- .map((comp) => abstractImageComponentToDxf3D(comp, pos, rot, scale, strokeScale, handleRef))
41
- .join("");
38
+ return image.components.map((comp) => abstractImageComponentToDxf3D(comp, pos, rot, scale, handleRef)).join("");
42
39
  }
43
40
 
44
- function abstractImageComponentToDxf3D(
45
- comp: Component,
46
- pos: Vec3,
47
- rot: Vec3,
48
- scale: Vec3,
49
- strokeScale: number,
50
- handleRef: Handle
51
- ): string {
41
+ function abstractImageComponentToDxf3D(comp: Component, pos: Vec3, rot: Vec3, scale: Vec3, handleRef: Handle): string {
52
42
  const vec3tr = (x: number, y: number): Vec3 => vec3TransRot(vec3(x * scale.x, y * scale.y, 0), pos, rot);
53
43
  const strokeColor: DxfDynamicColor = 7;
54
44
 
55
45
  let dxf = "";
56
46
  switch (comp.type) {
57
47
  case "group": {
58
- dxf += comp.children
59
- .map((child) => abstractImageComponentToDxf3D(child, pos, rot, scale, strokeScale, handleRef))
60
- .join("");
48
+ dxf += comp.children.map((child) => abstractImageComponentToDxf3D(child, pos, rot, scale, handleRef)).join("");
61
49
  break;
62
50
  }
63
51
  case "line": {
@@ -89,11 +77,11 @@ function abstractImageComponentToDxf3D(
89
77
  }
90
78
  case "rectangle": {
91
79
  const points = [
92
- //these points form a loop
93
- vec3tr(comp.topLeft.x, comp.topLeft.y),
94
- vec3tr(comp.bottomRight.x, comp.topLeft.y),
95
- vec3tr(comp.bottomRight.x, comp.bottomRight.y),
96
- vec3tr(comp.topLeft.x, comp.bottomRight.y),
80
+ //these points form a loop
81
+ vec3tr(comp.topLeft.x, comp.topLeft.y),
82
+ vec3tr(comp.bottomRight.x, comp.topLeft.y),
83
+ vec3tr(comp.bottomRight.x, comp.bottomRight.y),
84
+ vec3tr(comp.topLeft.x, comp.bottomRight.y),
97
85
  ];
98
86
  dxf += dxfEncLwPolyline(pos, points, strokeColor, true, handleRef) ?? "";
99
87
  break;
@@ -1,4 +1,11 @@
1
- import { type Polygon, type Material, type Vec3, vec3RotCombine, vec3TransRot, vec3Zero } from "../../../abstract-3d.js";
1
+ import {
2
+ type Polygon,
3
+ type Material,
4
+ type Vec3,
5
+ vec3RotCombine,
6
+ vec3TransRot,
7
+ vec3Zero,
8
+ } from "../../../abstract-3d.js";
2
9
  import type { Handle } from "../dxf-encoding/dxf-common.js";
3
10
  import { dxfEnc3DFace } from "../dxf-encoding/dxf-3dface.js";
4
11
  import { dxfEnc3DFaceTriangle } from "../dxf-encoding/dxf-triangle.js";
@@ -13,20 +20,13 @@ export function dxfPolygon(p: Polygon, m: Material, parentPos: Vec3, parentRot:
13
20
  const rot = vec3RotCombine(parentRot, p.rot ?? vec3Zero);
14
21
  const points = p.points.map((p) => vec3TransRot(p, pos, rot));
15
22
  let i = 0;
16
- while((points.length - i) >= QUAD_STRIDE) {
23
+ while (points.length - i >= QUAD_STRIDE) {
17
24
  const vec1 = points[i];
18
25
  const vec2 = points[i + 1];
19
26
  const vec3 = points[i + 2];
20
27
  const vec4 = points[i + 3];
21
- if(vec1 && vec2 && vec3 && vec4) {
22
- polygonString += dxfEnc3DFace(
23
- vec1,
24
- vec2,
25
- vec3,
26
- vec4,
27
- col,
28
- handleRef
29
- );
28
+ if (vec1 && vec2 && vec3 && vec4) {
29
+ polygonString += dxfEnc3DFace(vec1, vec2, vec3, vec4, col, handleRef);
30
30
  }
31
31
  i += QUAD_STRIDE;
32
32
  }
@@ -38,7 +38,7 @@ export function dxfPolygon(p: Polygon, m: Material, parentPos: Vec3, parentRot:
38
38
  const vec1 = points[i];
39
39
  const vec2 = points[i - 1];
40
40
  const vec3 = points[i - 2];
41
- if(vec1 && vec2 && vec3) {
41
+ if (vec1 && vec2 && vec3) {
42
42
  polygonString += dxfEnc3DFaceTriangle(vec3, vec2, vec1, col, handleRef);
43
43
  }
44
44
  break;
@@ -47,14 +47,8 @@ export function dxfPolygon(p: Polygon, m: Material, parentPos: Vec3, parentRot:
47
47
  const vec1 = points[i];
48
48
  const vec2 = points[i - 1];
49
49
  const vec3 = points[i + 1];
50
- if(vec1 && vec2 && vec3) {
51
- polygonString += dxfEnc3DFaceTriangle(
52
- vec2,
53
- vec1,
54
- vec3,
55
- col,
56
- handleRef
57
- );
50
+ if (vec1 && vec2 && vec3) {
51
+ polygonString += dxfEnc3DFaceTriangle(vec2, vec1, vec3, col, handleRef);
58
52
  }
59
53
  break;
60
54
  }
@@ -62,14 +56,8 @@ export function dxfPolygon(p: Polygon, m: Material, parentPos: Vec3, parentRot:
62
56
  const vec1 = points[i];
63
57
  const vec2 = points[i + 1];
64
58
  const vec3 = points[i + 2];
65
- if(vec1 && vec2 && vec3) {
66
- polygonString += dxfEnc3DFaceTriangle(
67
- vec1,
68
- vec2,
69
- vec3,
70
- col,
71
- handleRef
72
- );
59
+ if (vec1 && vec2 && vec3) {
60
+ polygonString += dxfEnc3DFaceTriangle(vec1, vec2, vec3, col, handleRef);
73
61
  }
74
62
  break;
75
63
  }
@@ -1,4 +1,12 @@
1
- import { type Shape, type Material, type Vec3, vec3TransRot, vec3RotCombine, vec3Zero, vec3 } from "../../../abstract-3d.js";
1
+ import {
2
+ type Shape,
3
+ type Material,
4
+ type Vec3,
5
+ vec3TransRot,
6
+ vec3RotCombine,
7
+ vec3Zero,
8
+ vec3,
9
+ } from "../../../abstract-3d.js";
2
10
  import type { Handle } from "../dxf-encoding/dxf-common.js";
3
11
  import { dxfEnc3DFace } from "../dxf-encoding/dxf-3dface.js";
4
12
  import { dxfEnc3DFaceTriangle } from "../dxf-encoding/dxf-triangle.js";
@@ -18,7 +26,7 @@ export function dxfPolygon(s: Shape, m: Material, parentPos: Vec3, parentRot: Ve
18
26
  const p2 = points[i + 1];
19
27
  const p3 = points[i + 2];
20
28
  const p4 = points[i + 3];
21
- if(p1 && p2 && p3 && p4) {
29
+ if (p1 && p2 && p3 && p4) {
22
30
  polygonString += dxfEnc3DFace(p1, p2, p3, p4, m.normal, handleRef);
23
31
  }
24
32
  }
@@ -31,7 +39,7 @@ export function dxfPolygon(s: Shape, m: Material, parentPos: Vec3, parentRot: Ve
31
39
  const p1 = points[i - 2];
32
40
  const p2 = points[i - 1];
33
41
  const p3 = points[i];
34
- if(p1 && p2 && p3) {
42
+ if (p1 && p2 && p3) {
35
43
  polygonString += dxfEnc3DFaceTriangle(p1, p2, p3, m.normal, handleRef);
36
44
  }
37
45
  break;
@@ -40,7 +48,7 @@ export function dxfPolygon(s: Shape, m: Material, parentPos: Vec3, parentRot: Ve
40
48
  const p1 = points[i - 1];
41
49
  const p2 = points[i];
42
50
  const p3 = points[i + 1];
43
- if(p1 && p2 && p3) {
51
+ if (p1 && p2 && p3) {
44
52
  polygonString += dxfEnc3DFaceTriangle(p1, p2, p3, m.normal, handleRef);
45
53
  }
46
54
  break;
@@ -49,7 +57,7 @@ export function dxfPolygon(s: Shape, m: Material, parentPos: Vec3, parentRot: Ve
49
57
  const p1 = points[i];
50
58
  const p2 = points[i + 1];
51
59
  const p3 = points[i + 2];
52
- if(p1 && p2 && p3) {
60
+ if (p1 && p2 && p3) {
53
61
  polygonString += dxfEnc3DFaceTriangle(p1, p2, p3, m.normal, handleRef);
54
62
  }
55
63
  break;