abstract-3d 2.7.10 → 2.7.12

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 (81) hide show
  1. package/lib/abstract-3d.d.ts +4 -2
  2. package/lib/abstract-3d.d.ts.map +1 -1
  3. package/lib/abstract-3d.js +36 -18
  4. package/lib/abstract-3d.js.map +1 -1
  5. package/lib/renderers/dxf/dxf-encoding/dxf-3dface.d.ts +5 -0
  6. package/lib/renderers/dxf/dxf-encoding/dxf-3dface.d.ts.map +1 -0
  7. package/lib/renderers/dxf/dxf-encoding/{dxf-quad.js → dxf-3dface.js} +3 -3
  8. package/lib/renderers/dxf/dxf-encoding/dxf-3dface.js.map +1 -0
  9. package/lib/renderers/dxf/dxf-encoding/dxf-common.d.ts +3 -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 +2 -1
  12. package/lib/renderers/dxf/dxf-encoding/dxf-common.js.map +1 -1
  13. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts +7 -2
  14. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts.map +1 -1
  15. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js +107 -4
  16. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js.map +1 -1
  17. package/lib/renderers/dxf/dxf-encoding/dxf-header.d.ts +1 -1
  18. package/lib/renderers/dxf/dxf-encoding/dxf-header.d.ts.map +1 -1
  19. package/lib/renderers/dxf/dxf-encoding/dxf-header.js +8 -8
  20. package/lib/renderers/dxf/dxf-encoding/dxf-header.js.map +1 -1
  21. package/lib/renderers/dxf/dxf-encoding/dxf-line.d.ts +1 -1
  22. package/lib/renderers/dxf/dxf-encoding/dxf-line.d.ts.map +1 -1
  23. package/lib/renderers/dxf/dxf-encoding/dxf-line.js +2 -2
  24. package/lib/renderers/dxf/dxf-encoding/dxf-line.js.map +1 -1
  25. package/lib/renderers/dxf/dxf-encoding/dxf-mtext.d.ts +15 -0
  26. package/lib/renderers/dxf/dxf-encoding/dxf-mtext.d.ts.map +1 -0
  27. package/lib/renderers/dxf/dxf-encoding/dxf-mtext.js +44 -0
  28. package/lib/renderers/dxf/dxf-encoding/dxf-mtext.js.map +1 -0
  29. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.d.ts +1 -1
  30. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.d.ts.map +1 -1
  31. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.js +3 -4
  32. package/lib/renderers/dxf/dxf-encoding/dxf-polyline.js.map +1 -1
  33. package/lib/renderers/dxf/dxf-encoding/dxf-solid.d.ts +5 -0
  34. package/lib/renderers/dxf/dxf-encoding/dxf-solid.d.ts.map +1 -0
  35. package/lib/renderers/dxf/dxf-encoding/dxf-solid.js +39 -0
  36. package/lib/renderers/dxf/dxf-encoding/dxf-solid.js.map +1 -0
  37. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.d.ts +2 -1
  38. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.d.ts.map +1 -1
  39. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.js +4 -2
  40. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.js.map +1 -1
  41. package/lib/renderers/dxf/dxf-geometries/dxf-box.js +7 -7
  42. package/lib/renderers/dxf/dxf-geometries/dxf-box.js.map +1 -1
  43. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js +3 -3
  44. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js.map +1 -1
  45. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js +5 -5
  46. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js.map +1 -1
  47. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.d.ts +2 -1
  48. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.d.ts.map +1 -1
  49. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.js +5 -1
  50. package/lib/renderers/dxf/dxf-geometries/dxf-dimension.js.map +1 -1
  51. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js +2 -2
  52. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js.map +1 -1
  53. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js +6 -6
  54. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js.map +1 -1
  55. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js +6 -6
  56. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js.map +1 -1
  57. package/lib/renderers/dxf/dxf.d.ts.map +1 -1
  58. package/lib/renderers/dxf/dxf.js +17 -4
  59. package/lib/renderers/dxf/dxf.js.map +1 -1
  60. package/package.json +2 -2
  61. package/src/abstract-3d.ts +48 -19
  62. package/src/renderers/dxf/dxf-encoding/dxf-3dface.ts +48 -0
  63. package/src/renderers/dxf/dxf-encoding/dxf-common.ts +4 -2
  64. package/src/renderers/dxf/dxf-encoding/dxf-dimension.ts +147 -6
  65. package/src/renderers/dxf/dxf-encoding/dxf-header.ts +8 -8
  66. package/src/renderers/dxf/dxf-encoding/dxf-line.ts +3 -2
  67. package/src/renderers/dxf/dxf-encoding/dxf-mtext.ts +44 -0
  68. package/src/renderers/dxf/dxf-encoding/dxf-polyline.ts +4 -5
  69. package/src/renderers/dxf/dxf-encoding/{dxf-quad.ts → dxf-solid.ts} +6 -5
  70. package/src/renderers/dxf/dxf-encoding/dxf-triangle.ts +15 -4
  71. package/src/renderers/dxf/dxf-geometries/dxf-box.ts +7 -7
  72. package/src/renderers/dxf/dxf-geometries/dxf-cone.ts +3 -3
  73. package/src/renderers/dxf/dxf-geometries/dxf-cylinder.ts +5 -5
  74. package/src/renderers/dxf/dxf-geometries/dxf-dimension.ts +7 -3
  75. package/src/renderers/dxf/dxf-geometries/dxf-plane.ts +2 -2
  76. package/src/renderers/dxf/dxf-geometries/dxf-polygon.ts +6 -6
  77. package/src/renderers/dxf/dxf-geometries/dxf-shape.ts +6 -6
  78. package/src/renderers/dxf/dxf.ts +21 -6
  79. package/lib/renderers/dxf/dxf-encoding/dxf-quad.d.ts +0 -5
  80. package/lib/renderers/dxf/dxf-encoding/dxf-quad.d.ts.map +0 -1
  81. package/lib/renderers/dxf/dxf-encoding/dxf-quad.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dxf-dimension.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-dimension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,qBAAqB,EAAa,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE9H,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,MAAM,UAAU,YAAY,CAAC,SAAoB,EAAE,SAAe,EAAE,SAAe,EAAE,SAAiB;IACpG,IAAG,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACxE,MAAM,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"dxf-dimension.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-dimension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,qBAAqB,EAAa,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE9H,OAAO,EAA+B,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEhG,MAAM,UAAU,YAAY,CAAC,SAAoB,EAAE,SAAe,EAAE,SAAe,EAAE,SAAiB;IACpG,IAAG,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACxE,MAAM,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IAChE,OAAO,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { vec2Scale, vec3, vec3TransRot, vec3RotCombine, vec3Zero, } from "../../../abstract-3d.js";
2
- import { dxfEncQuad } from "../dxf-encoding/dxf-quad.js";
2
+ import { dxfEnc3DFace } from "../dxf-encoding/dxf-3dface.js";
3
3
  export function dxfPlane(p, m, parentPos, parentRot, handleRef) {
4
4
  const half = vec2Scale(p.size, 0.5);
5
5
  const pos = vec3TransRot(p.pos, parentPos, parentRot);
6
6
  const rot = vec3RotCombine(parentRot, p.rot ?? vec3Zero);
7
7
  const vec3tr = (x, y) => vec3TransRot(vec3(x, y, 0), pos, rot);
8
- return dxfEncQuad(vec3tr(-half.x, -half.y), vec3tr(half.x, -half.y), vec3tr(half.x, half.y), vec3tr(-half.x, half.y), m.normal, handleRef);
8
+ return dxfEnc3DFace(vec3tr(-half.x, -half.y), vec3tr(half.x, -half.y), vec3tr(half.x, half.y), vec3tr(-half.x, half.y), m.normal, handleRef);
9
9
  }
10
10
  //# sourceMappingURL=dxf-plane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dxf-plane.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-plane.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,QAAQ,GACT,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,MAAM,UAAU,QAAQ,CAAC,CAAQ,EAAE,CAAW,EAAE,SAAe,EAAE,SAAe,EAAE,SAAiB;IACjG,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAQ,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrF,OAAO,UAAU,CACf,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EACxB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EACvB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EACtB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EACvB,CAAC,CAAC,MAAM,EACR,SAAS,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"dxf-plane.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-plane.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,QAAQ,GACT,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,UAAU,QAAQ,CAAC,CAAQ,EAAE,CAAW,EAAE,SAAe,EAAE,SAAe,EAAE,SAAiB;IACjG,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAQ,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrF,OAAO,YAAY,CACjB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EACxB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EACvB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EACtB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EACvB,CAAC,CAAC,MAAM,EACR,SAAS,CACV,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { vec3RotCombine, vec3TransRot, vec3Zero } from "../../../abstract-3d.js";
2
- import { dxfEncQuad } from "../dxf-encoding/dxf-quad.js";
3
- import { dxfEncTriangle } from "../dxf-encoding/dxf-triangle.js";
2
+ import { dxfEnc3DFace } from "../dxf-encoding/dxf-3dface.js";
3
+ import { dxfEnc3DFaceTriangle } from "../dxf-encoding/dxf-triangle.js";
4
4
  const QUAD_STRIDE = 4;
5
5
  const TRIANGLE_STRIDE = 3;
6
6
  export function dxfPolygon(p, m, parentPos, parentRot, handleRef) {
@@ -16,7 +16,7 @@ export function dxfPolygon(p, m, parentPos, parentRot, handleRef) {
16
16
  const vec3 = points[i + 2];
17
17
  const vec4 = points[i + 3];
18
18
  if (vec1 && vec2 && vec3 && vec4) {
19
- polygonString += dxfEncQuad(vec1, vec2, vec3, vec4, col, handleRef);
19
+ polygonString += dxfEnc3DFace(vec1, vec2, vec3, vec4, col, handleRef);
20
20
  }
21
21
  i += QUAD_STRIDE;
22
22
  }
@@ -28,7 +28,7 @@ export function dxfPolygon(p, m, parentPos, parentRot, handleRef) {
28
28
  const vec2 = points[i - 1];
29
29
  const vec3 = points[i - 2];
30
30
  if (vec1 && vec2 && vec3) {
31
- polygonString += dxfEncTriangle(vec3, vec2, vec1, col, handleRef);
31
+ polygonString += dxfEnc3DFaceTriangle(vec3, vec2, vec1, col, handleRef);
32
32
  }
33
33
  break;
34
34
  }
@@ -37,7 +37,7 @@ export function dxfPolygon(p, m, parentPos, parentRot, handleRef) {
37
37
  const vec2 = points[i - 1];
38
38
  const vec3 = points[i + 1];
39
39
  if (vec1 && vec2 && vec3) {
40
- polygonString += dxfEncTriangle(vec2, vec1, vec3, col, handleRef);
40
+ polygonString += dxfEnc3DFaceTriangle(vec2, vec1, vec3, col, handleRef);
41
41
  }
42
42
  break;
43
43
  }
@@ -46,7 +46,7 @@ export function dxfPolygon(p, m, parentPos, parentRot, handleRef) {
46
46
  const vec2 = points[i + 1];
47
47
  const vec3 = points[i + 2];
48
48
  if (vec1 && vec2 && vec3) {
49
- polygonString += dxfEncTriangle(vec1, vec2, vec3, col, handleRef);
49
+ polygonString += dxfEnc3DFaceTriangle(vec1, vec2, vec3, col, handleRef);
50
50
  }
51
51
  break;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dxf-polygon.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-polygon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dxf-polygon.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-polygon.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { vec3TransRot, vec3RotCombine, vec3Zero, vec3 } from "../../../abstract-3d.js";
2
- import { dxfEncQuad } from "../dxf-encoding/dxf-quad.js";
3
- import { dxfEncTriangle } from "../dxf-encoding/dxf-triangle.js";
2
+ import { dxfEnc3DFace } from "../dxf-encoding/dxf-3dface.js";
3
+ import { dxfEnc3DFaceTriangle } from "../dxf-encoding/dxf-triangle.js";
4
4
  const QUAD_STRIDE = 4;
5
5
  const TRIANGLE_STRIDE = 3;
6
6
  export function dxfPolygon(s, m, parentPos, parentRot, handleRef) {
@@ -16,7 +16,7 @@ export function dxfPolygon(s, m, parentPos, parentRot, handleRef) {
16
16
  const p3 = points[i + 2];
17
17
  const p4 = points[i + 3];
18
18
  if (p1 && p2 && p3 && p4) {
19
- polygonString += dxfEncQuad(p1, p2, p3, p4, m.normal, handleRef);
19
+ polygonString += dxfEnc3DFace(p1, p2, p3, p4, m.normal, handleRef);
20
20
  }
21
21
  }
22
22
  }
@@ -28,7 +28,7 @@ export function dxfPolygon(s, m, parentPos, parentRot, handleRef) {
28
28
  const p2 = points[i - 1];
29
29
  const p3 = points[i];
30
30
  if (p1 && p2 && p3) {
31
- polygonString += dxfEncTriangle(p1, p2, p3, m.normal, handleRef);
31
+ polygonString += dxfEnc3DFaceTriangle(p1, p2, p3, m.normal, handleRef);
32
32
  }
33
33
  break;
34
34
  }
@@ -37,7 +37,7 @@ export function dxfPolygon(s, m, parentPos, parentRot, handleRef) {
37
37
  const p2 = points[i];
38
38
  const p3 = points[i + 1];
39
39
  if (p1 && p2 && p3) {
40
- polygonString += dxfEncTriangle(p1, p2, p3, m.normal, handleRef);
40
+ polygonString += dxfEnc3DFaceTriangle(p1, p2, p3, m.normal, handleRef);
41
41
  }
42
42
  break;
43
43
  }
@@ -46,7 +46,7 @@ export function dxfPolygon(s, m, parentPos, parentRot, handleRef) {
46
46
  const p2 = points[i + 1];
47
47
  const p3 = points[i + 2];
48
48
  if (p1 && p2 && p3) {
49
- polygonString += dxfEncTriangle(p1, p2, p3, m.normal, handleRef);
49
+ polygonString += dxfEnc3DFaceTriangle(p1, p2, p3, m.normal, handleRef);
50
50
  }
51
51
  break;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dxf-shape.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dxf-shape.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-shape.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dxf.d.ts","sourceRoot":"","sources":["../../../src/renderers/dxf/dxf.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,IAAI,EAeV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA6B,KAAK,SAAS,EAAwC,MAAM,8BAA8B,CAAC;AAC/H,OAAO,EAAE,KAAK,QAAQ,EAAyB,MAAM,gBAAgB,CAAC;AAWtE,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;CAAE,CAAC;AAEvH,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;CACpB,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAmBlH;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,UAAU,QAAQ,CAAC,UAAU,CAAC,KAAG,MAKrE,CAAC;AAoHF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,UAAU,QAAQ,CAAC,UAAU,CAAC,KAAG,MAiBxE,CAAC"}
1
+ {"version":3,"file":"dxf.d.ts","sourceRoot":"","sources":["../../../src/renderers/dxf/dxf.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,IAAI,EAeV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA6B,KAAK,SAAS,EAAwC,MAAM,8BAA8B,CAAC;AAC/H,OAAO,EAAE,KAAK,QAAQ,EAAyB,MAAM,gBAAgB,CAAC;AAYtE,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;CAAE,CAAC;AAEvH,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;CACpB,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,MAAM,CA4BlH;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,UAAU,QAAQ,CAAC,UAAU,CAAC,KAAG,MAKrE,CAAC;AAyHF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,UAAU,QAAQ,CAAC,UAAU,CAAC,KAAG,MAiBxE,CAAC"}
@@ -10,14 +10,22 @@ import { dxfImage } from "./dxf-geometries/dxf-image.js";
10
10
  import { dxfDimension } from "./dxf-geometries/dxf-dimension.js";
11
11
  export function renderScenes(scenes, baseOptions) {
12
12
  let allGroups = "";
13
- let allDimensions = "";
13
+ let allDimensions = {
14
+ block: "",
15
+ entity: "",
16
+ blockRecord: "",
17
+ };
14
18
  const allBounds = Array();
15
19
  const handle = dxfHandleInit();
16
20
  const originOffset = originOffsetFromScenes(scenes, baseOptions?.origin ?? "Center");
17
21
  for (const view of scenes) {
18
22
  const { groups, dimensions, size, center } = renderInternal(view.scene, optionsDef({ ...baseOptions, ...view.options, origin: "Center" }), vec3Add(view.pos, originOffset), handle);
19
23
  allGroups += groups;
20
- allDimensions += dimensions;
24
+ allDimensions = {
25
+ entity: allDimensions.entity + dimensions.entity,
26
+ block: allDimensions.block + dimensions.block,
27
+ blockRecord: allDimensions.blockRecord + dimensions.blockRecord
28
+ };
21
29
  allBounds.push(bounds3FromPosAndSize(center, size));
22
30
  }
23
31
  const bounds = bounds3Merge(...allBounds);
@@ -111,11 +119,16 @@ function dxfGroup(g, parentPos, parentRot, options, handleRef) {
111
119
  }
112
120
  function dxfDimensions(d, parentPos, parentRot, visibleViews, options, handleRef) {
113
121
  if (!d || !options.showDimensions) {
114
- return "";
122
+ return {
123
+ entity: "",
124
+ block: "",
125
+ blockRecord: ""
126
+ };
115
127
  }
116
128
  return d.dimensions
117
129
  .filter((d) => d.views?.[0] && visibleViews[d.views[0]] === true)
118
- .map((d) => dxfDimension(d, parentPos, parentRot, handleRef)).join("");
130
+ .map((d) => dxfDimension(d, parentPos, parentRot, handleRef))
131
+ .reduce((prev, curr) => ({ block: prev.block + curr.block, entity: prev.block + curr.block, blockRecord: prev.blockRecord + curr.blockRecord }), { block: "", entity: "", blockRecord: "" });
119
132
  }
120
133
  function optionsDef(options) {
121
134
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"dxf.js","sourceRoot":"","sources":["../../../src/renderers/dxf/dxf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dxf.js","sourceRoot":"","sources":["../../../src/renderers/dxf/dxf.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,KAAK,EACL,oBAAoB,EACpB,sBAAsB,EACtB,IAAI,EACJ,OAAO,EACP,cAAc,EACd,OAAO,EACP,YAAY,EACZ,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAA+B,QAAQ,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC/H,OAAO,EAAiB,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAkBjE,MAAM,UAAU,YAAY,CAAC,MAA+B,EAAE,WAA4C;IACxG,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,aAAa,GAA2B;QAC1C,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,EAAE;KAChB,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,EAAW,CAAC;IACnC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,IAAI,QAAQ,CAAC,CAAC;IACrF,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CACzD,IAAI,CAAC,KAAK,EACV,UAAU,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EACjE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAC/B,MAAM,CACP,CAAC;QACF,SAAS,IAAI,MAAM,CAAC;QACpB,aAAa,GAAG;YACd,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM;YAChD,KAAK,EAAE,aAAa,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK;YAC7C,WAAW,EAAE,aAAa,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW;SAChE,CAAC;QACF,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1C,OAAO,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,OAA8B,EAAU,EAAE;IAC7E,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IACpG,OAAO,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,KAAY,EACZ,OAAmB,EACnB,MAAY,EACZ,SAAiB,EACqG,EAAE;IACxH,MAAM,OAAO,GAAG,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,mBAAmB,IAAI,QAAQ,CAAC,CAAC;IAC1G,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,IAAI,QAAQ,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,GAAG,GACP,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACnH,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAEpF,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;QAC5F,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC;QACtG,IAAI;QACJ,MAAM,EAAE,GAAG;KACZ,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,WAAW,CAAC,GAAS;IAC5B,OAAO;QACL,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACT,CAAC,EAAE,GAAG,CAAC,CAAC;KACT,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAA+B,EAAE,MAAiB;IAChF,MAAM,SAAS,GAAG,KAAK,EAAW,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,IAAI,QAAQ,CAAC;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC;QACzC,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,sBAAsB,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAe,EAAE,MAAiB;IAChE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAQ,EAAE,SAAe,EAAE,SAAe,EAAE,OAAmB,EAAE,SAAiB;IAClG,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;IAEzD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAClC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACnE,MAAM;YACR,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACjE,MAAM;YACR,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACjG,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC7F,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACrE,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACpD,MAAM;YACR,CAAC;YACD;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACnC,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,CAAyB,EAAE,SAAe,EAAE,SAAe,EAAE,YAAqC,EAAE,OAAmB,EAAE,SAAiB;IAC/J,IAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAClC,OAAO;YACN,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;SACf,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,UAAU;SAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;SAChE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;SAC5D,MAAM,CAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC,CAAC;AACvN,CAAC;AAED,SAAS,UAAU,CAAC,OAAyC;IAC3D,OAAO;QACL,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO;QAC9B,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,iBAAiB;QAC5C,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,IAAI,yBAAyB;QAC1E,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,IAAI;KAChD,CAAC;AACJ,CAAC;AAED,uBAAuB;AACvB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,OAA8B,EAAU,EAAE;IAChF,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,IAAI,QAAQ,CAAC;IACnD,MAAM,OAAO,GAAG,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,mBAAmB,IAAI,QAAQ,CAAC,CAAC;IACvG,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,OAAO,CACpB,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EACzG,MAAM,CACP,CAAC;IACF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAEjF,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,qBAAqB,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACrH,OAAO,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAC7H,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abstract-3d",
3
- "version": "2.7.10",
3
+ "version": "2.7.12",
4
4
  "description": "Abstract 3D",
5
5
  "author": "Divid AB <info@divid.se>",
6
6
  "repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-3d",
@@ -65,5 +65,5 @@
65
65
  "@types/three": "^0.180.0",
66
66
  "react": "^19.2.6"
67
67
  },
68
- "gitHead": "0195de98281bd2d66e82e540172c12857942a646"
68
+ "gitHead": "3eb3ccf56e9d16acd15cec3a2f425691668b18fb"
69
69
  }
@@ -43,6 +43,7 @@ export type DimensionAligned = {
43
43
  */
44
44
  readonly text?: string;
45
45
  readonly views?: ReadonlyArray<View>;
46
+ readonly material?: Material;
46
47
  };
47
48
 
48
49
  type DimensionSide = "top" | "bottom" | "left" | "right";
@@ -1021,13 +1022,15 @@ export const alignedDimension = (
1021
1022
  measurementEnd: Vec3,
1022
1023
  linePosition: Vec3,
1023
1024
  text: string,
1024
- views?: ReadonlyArray<View>
1025
+ views?: ReadonlyArray<View>,
1026
+ material?: Material,
1025
1027
  ): DimensionAligned => ({
1026
1028
  measurementStart,
1027
1029
  measurementEnd,
1028
1030
  linePosition,
1029
1031
  text,
1030
- views
1032
+ views,
1033
+ material,
1031
1034
  });
1032
1035
 
1033
1036
  export function dimensionIsOfTypeAligned(dimension: Dimension): dimension is DimensionAligned {
@@ -1038,15 +1041,20 @@ export function dimensionIsOfTypeMesh(dimension: Dimension): dimension is Dimens
1038
1041
  return "meshes" in dimension;
1039
1042
  }
1040
1043
 
1041
- export function dimensionConvertToTypeMesh(dimension: Dimension, sceneRotation: Vec3, material: Material = { normal: "rgb(0, 0, 0)", opacity: 1.0, roughness: 1.0, metalness: 0.0 }): DimensionMesh {
1042
- if(dimensionIsOfTypeMesh(dimension)) {
1043
- return dimension;
1044
- }
1045
- const meshes: Array<Mesh> = [];
1044
+ export function dimensionMeshifyAlignedDimension(
1045
+ dimension: DimensionAligned,
1046
+ sceneRotation: Vec3,
1047
+ onCreateLine: (start: Vec3, end: Vec3, norm: Vec3, thickness: number, mat: Material) => void,
1048
+ onCreateText: (pos: Vec3, measurement: string, fontSize: number, mat: Material, rot: Vec3) => void,
1049
+ onCreatePolygon: (p1: Vec3, p2: Vec3, p3: Vec3, mat: Material) => void,
1050
+ dimensionsMaterial?: Material,
1051
+ ): void {
1052
+ const defaultMaterial = { normal: "rgb(0, 0, 0)", opacity: 1.0, roughness: 1.0, metalness: 0.0 };
1053
+ const material = dimension.material ?? (dimensionsMaterial ?? defaultMaterial);
1046
1054
  const fontGlyphWidthRatio = 0.4815;
1047
1055
  const textSize = 44;
1048
1056
  const textOffset = 8;
1049
- const textThreshold = textOffset + textSize * fontGlyphWidthRatio * 5;
1057
+ const textThreshold = textOffset + textSize * fontGlyphWidthRatio * 7;
1050
1058
  const lineThickness = 0.5;
1051
1059
  const arrowLength = 40;
1052
1060
  const arrowHalfBase = 10;
@@ -1079,8 +1087,8 @@ export function dimensionConvertToTypeMesh(dimension: Dimension, sceneRotation:
1079
1087
  const leDisplaced = vec3Add(me, offsetDisplaced);
1080
1088
  const lcDisplaced = vec3Scale(vec3Add(lsDisplaced, leDisplaced), 0.5);
1081
1089
 
1082
- meshes.push(culledLine(ms, ls, basis.normal, lineThickness, material));
1083
- meshes.push(culledLine(me, le, basis.normal, lineThickness, material));
1090
+ onCreateLine(ms, ls, basis.normal, lineThickness, material);
1091
+ onCreateLine(me, le, basis.normal, lineThickness, material);
1084
1092
 
1085
1093
  const rotatedDirBetweenLines = vec3TransRot(
1086
1094
  dirBetweenLines,
@@ -1108,7 +1116,7 @@ export function dimensionConvertToTypeMesh(dimension: Dimension, sceneRotation:
1108
1116
  textDir,
1109
1117
  basis.normal
1110
1118
  );
1111
- meshes.push(text(lcDisplaced, measurement, textSize, material, textRot));
1119
+ onCreateText(lcDisplaced, measurement, textSize, material, textRot)
1112
1120
 
1113
1121
  if(measurementLength > textThreshold) {
1114
1122
  const textWidth = Math.max(...measurementRows.map((t) => t.length)) * (textSize * fontGlyphWidthRatio);
@@ -1123,8 +1131,8 @@ export function dimensionConvertToTypeMesh(dimension: Dimension, sceneRotation:
1123
1131
  vec3Scale(lineDir, halfTextWidth)
1124
1132
  );
1125
1133
 
1126
- meshes.push(culledLine(lsDisplaced, leftEnd, basis.normal, lineThickness, material));
1127
- meshes.push(culledLine(rightStart, leDisplaced, basis.normal, lineThickness, material));
1134
+ onCreateLine(lsDisplaced, leftEnd, basis.normal, lineThickness, material);
1135
+ onCreateLine(rightStart, leDisplaced, basis.normal, lineThickness, material);
1128
1136
 
1129
1137
  //arrows
1130
1138
  const arrowBaseStart = vec3Add(lsDisplaced, vec3Scale(lineDir, arrowLength));
@@ -1135,17 +1143,38 @@ export function dimensionConvertToTypeMesh(dimension: Dimension, sceneRotation:
1135
1143
  const arrowBaseEnd2 = vec3Add(arrowBaseEnd, vec3Scale(dirBetweenLines, -arrowHalfBase));
1136
1144
 
1137
1145
  //the winding order needs to be correct according to the normal
1138
- const polygonFacing = (a: Vec3, b: Vec3, c: Vec3): PolygonMesh => {
1146
+ const polygonFacing = (a: Vec3, b: Vec3, c: Vec3): void => {
1139
1147
  const ab = vec3Sub(b, a);
1140
1148
  const ac = vec3Sub(c, a);
1141
1149
  const triangleNormal = vec3Cross(ab, ac);
1142
- return vec3Dot(triangleNormal, basis.normal) >= 0
1143
- ? polygon([a, b, c], material)
1144
- : polygon([a, c, b], material);
1150
+
1151
+ if(vec3Dot(triangleNormal, basis.normal) >= 0) {
1152
+ onCreatePolygon(a, b, c, material);
1153
+ } else {
1154
+ onCreatePolygon(a, c, b, material);
1155
+ }
1145
1156
  };
1146
- meshes.push(polygonFacing(lsDisplaced, arrowBaseStart2, arrowBaseStart1));
1147
- meshes.push(polygonFacing(leDisplaced, arrowBaseEnd1, arrowBaseEnd2));
1157
+ polygonFacing(lsDisplaced, arrowBaseStart2, arrowBaseStart1);
1158
+ polygonFacing(leDisplaced, arrowBaseEnd1, arrowBaseEnd2);
1148
1159
  }
1160
+ }
1161
+
1162
+ export function dimensionConvertToTypeMesh(dimension: Dimension, sceneRotation: Vec3, dimensionsMaterial?: Material): DimensionMesh {
1163
+ if(dimensionIsOfTypeMesh(dimension)) {
1164
+ return dimension;
1165
+ }
1166
+ const meshes: Array<Mesh> = [];
1167
+
1168
+ const onCreateLine = (start: Vec3, end: Vec3, norm: Vec3, thickness: number, mat: Material): void => {
1169
+ meshes.push(culledLine(start, end, norm, thickness, mat));
1170
+ };
1171
+ const onCreateText = (pos: Vec3, measurement: string, fontSize: number, mat: Material, rot: Vec3): void => {
1172
+ meshes.push(text(pos, measurement, fontSize, mat, rot))
1173
+ };
1174
+ const onCreatePolygon = (p1: Vec3, p2: Vec3, p3: Vec3, mat: Material): void => {
1175
+ meshes.push(polygon([p1, p2, p3], mat));
1176
+ };
1177
+ dimensionMeshifyAlignedDimension(dimension, sceneRotation, onCreateLine, onCreateText, onCreatePolygon, dimensionsMaterial);
1149
1178
 
1150
1179
  return {
1151
1180
  meshes,
@@ -0,0 +1,48 @@
1
+ import type { Vec3 } from "../../../abstract-3d.js";
2
+ import { type DxfColor, dxfColor } from "./dxf-color.js";
3
+ import { DXF_MODEL_SPACE_HANDLE, dxfHandleNext, dxfRound, type Handle } from "./dxf-common.js";
4
+
5
+ export const dxfEnc3DFace = (
6
+ vec1: Vec3,
7
+ vec2: Vec3,
8
+ vec3: Vec3,
9
+ vec4: Vec3,
10
+ col: DxfColor,
11
+ handleRef: Handle,
12
+ blockRefHandle?: string
13
+ ): string => ` 0
14
+ 3DFACE
15
+ 5
16
+ ${dxfHandleNext(handleRef)}
17
+ 330
18
+ ${blockRefHandle ?? DXF_MODEL_SPACE_HANDLE}
19
+ 100
20
+ AcDbEntity
21
+ ${dxfColor(col)}
22
+ 100
23
+ AcDbFace
24
+ 10
25
+ ${dxfRound(vec1.x)}
26
+ 20
27
+ ${dxfRound(vec1.y)}
28
+ 30
29
+ ${dxfRound(vec1.z)}
30
+ 11
31
+ ${dxfRound(vec2.x)}
32
+ 21
33
+ ${dxfRound(vec2.y)}
34
+ 31
35
+ ${dxfRound(vec2.z)}
36
+ 12
37
+ ${dxfRound(vec3.x)}
38
+ 22
39
+ ${dxfRound(vec3.y)}
40
+ 32
41
+ ${dxfRound(vec3.z)}
42
+ 13
43
+ ${dxfRound(vec4.x)}
44
+ 23
45
+ ${dxfRound(vec4.y)}
46
+ 33
47
+ ${dxfRound(vec4.z)}
48
+ `;
@@ -1,11 +1,13 @@
1
1
  import { generateUUID } from "three/src/math/MathUtils.js";
2
2
  import type { Bounds3, Vec3 } from "../../../abstract-3d.js";
3
+ import type { DxfDimensionDefinition } from "./dxf-dimension.js";
3
4
  import { dxfEncFooter } from "./dxf-footer.js";
4
5
  import { dxfEncHeader } from "./dxf-header.js";
5
6
 
6
7
  export const DEFAULT_CIRCLE_SIDE_COUNT = 16;
7
8
  export const DXF_DEFAULT_HANDLE = 0x1000;
8
9
  export const DXF_MODEL_SPACE_HANDLE = "1D";
10
+ export const DXF_BLOCK_RECORD_HANDLE = "1";
9
11
 
10
12
  export type DxfOrigin = "BottomLeftFront" | "Center" | "SameAsScene";
11
13
  export type Handle = { handle: number };
@@ -25,7 +27,7 @@ export function dxfRound(n: number): number {
25
27
  return Math.round((n + Number.EPSILON) * 10 ** d) / 10 ** d;
26
28
  }
27
29
 
28
- export function dxfBuild(groups: string, dimensions: string, bounds: Bounds3, size: Vec3, center: Vec3): string {
30
+ export function dxfBuild(groups: string, dimensions: DxfDimensionDefinition, bounds: Bounds3, size: Vec3, center: Vec3): string {
29
31
  const id = generateUUID();
30
- return dxfEncHeader(bounds, center, id, size) + groups + dimensions + dxfEncFooter(id);
32
+ return dxfEncHeader(bounds, center, id, size, dimensions.block, dimensions.blockRecord) + groups + dimensions.entity + dxfEncFooter(id);
31
33
  }
@@ -1,6 +1,15 @@
1
- import type { Vec3 } from "../../../abstract-3d.js";
1
+ import { dimensionMeshifyAlignedDimension, type Material, vec3Zero, type Vec3 } from "../../../abstract-3d.js";
2
2
  import { type DxfColor, dxfColor } from "./dxf-color.js";
3
- import { DXF_MODEL_SPACE_HANDLE, dxfHandleNext, dxfRound, type Handle } from "./dxf-common.js";
3
+ import { DXF_BLOCK_RECORD_HANDLE, DXF_MODEL_SPACE_HANDLE, dxfHandleNext, dxfRound, type Handle } from "./dxf-common.js";
4
+ import { dxfEncLine } from "./dxf-line.js";
5
+ import { DxfMTextAttachment, dxfEncMText } from "./dxf-mtext.js";
6
+ import { dxfEncSolidTriangle } from "./dxf-triangle.js";
7
+
8
+ export type DxfDimensionDefinition = {
9
+ readonly entity: string;
10
+ readonly block: string;
11
+ readonly blockRecord: string;
12
+ };
4
13
 
5
14
  export function dxfEncDimension(
6
15
  measurementStart: Vec3,
@@ -9,8 +18,25 @@ export function dxfEncDimension(
9
18
  text: string,
10
19
  col: DxfColor,
11
20
  handleRef: Handle
12
- ): string {
21
+ ): DxfDimensionDefinition {
22
+ const blockRecordHandle = dxfHandleNext(handleRef);
23
+ const blockName = `*D${blockRecordHandle}`;
24
+ return {
25
+ entity: dxfEncodeDimensionEntity(blockName, measurementStart, measurementEnd, linePosition, text, col, handleRef),
26
+ block: dxfEncodeDimensionBlock(blockName, blockRecordHandle, measurementStart, measurementEnd, linePosition, text, col, handleRef),
27
+ blockRecord: dxfEncodeDimensionBlockRecord(blockName, blockRecordHandle)
28
+ };
29
+ }
13
30
 
31
+ function dxfEncodeDimensionEntity(
32
+ blockName: string,
33
+ measurementStart: Vec3,
34
+ measurementEnd: Vec3,
35
+ linePosition: Vec3,
36
+ text: string,
37
+ col: DxfColor,
38
+ handleRef: Handle
39
+ ): string {
14
40
  return `0
15
41
  DIMENSION
16
42
  5
@@ -24,20 +50,38 @@ AcDbEntity
24
50
  ${dxfColor(col)}
25
51
  100
26
52
  AcDbDimension
27
- 280
28
- 0
53
+ 2
54
+ ${blockName}
29
55
  10
30
- ${dxfRound(linePosition.x)}
56
+ ${dxfRound(measurementEnd.x)}
31
57
  20
32
58
  ${dxfRound(linePosition.y)}
33
59
  30
34
60
  ${dxfRound(linePosition.z)}
61
+ 11
62
+ ${dxfRound(linePosition.x)}
63
+ 21
64
+ ${dxfRound(linePosition.y)}
65
+ 31
66
+ ${dxfRound(linePosition.z)}
35
67
  70
36
68
  33
37
69
  1
38
70
  ${encodeDxfFormattedText(text)}
71
+ 71
72
+ 5
73
+ 72
74
+ 0
39
75
  3
40
76
  Standard
77
+ 53
78
+ 0
79
+ 210
80
+ 0
81
+ 220
82
+ 0
83
+ 230
84
+ 1
41
85
  100
42
86
  AcDbAlignedDimension
43
87
  13
@@ -55,6 +99,103 @@ ${dxfRound(measurementEnd.z)}
55
99
  `;
56
100
  }
57
101
 
102
+ function dxfEncodeDimensionBlockRecord(
103
+ blockName: string,
104
+ blockRecordHandle: string,
105
+ ): string {
106
+ return `0
107
+ BLOCK_RECORD
108
+ 5
109
+ ${blockRecordHandle}
110
+ 330
111
+ ${DXF_BLOCK_RECORD_HANDLE}
112
+ 100
113
+ AcDbSymbolTableRecord
114
+ 100
115
+ AcDbBlockTableRecord
116
+ 2
117
+ ${blockName}
118
+ `;
119
+ }
120
+
121
+ function dxfEncodeDimensionBlock(
122
+ blockName: string,
123
+ blockRecordHandle: string,
124
+ measurementStart: Vec3,
125
+ measurementEnd: Vec3,
126
+ linePosition: Vec3,
127
+ text: string,
128
+ col: DxfColor,
129
+ handleRef: Handle
130
+ ): string {
131
+ return `0
132
+ BLOCK
133
+ 5
134
+ ${dxfHandleNext(handleRef)}
135
+ 330
136
+ ${blockRecordHandle}
137
+ 100
138
+ AcDbEntity
139
+ 8
140
+ 0
141
+ 100
142
+ AcDbBlockBegin
143
+ 2
144
+ ${blockName}
145
+ 70
146
+ 1
147
+ 10
148
+ 0.0
149
+ 20
150
+ 0.0
151
+ 30
152
+ 0.0
153
+ 3
154
+ ${blockName}
155
+ 1
156
+
157
+ ${dxfEncodeDimensionGeometry(blockRecordHandle, measurementStart, measurementEnd, linePosition, text, col, handleRef)}0
158
+ ENDBLK
159
+ 5
160
+ ${dxfHandleNext(handleRef)}
161
+ 330
162
+ ${blockRecordHandle}
163
+ 100
164
+ AcDbEntity
165
+ 67
166
+ 1
167
+ 8
168
+ 0
169
+ 100
170
+ AcDbBlockEnd
171
+ `;
172
+ }
173
+
174
+ function dxfEncodeDimensionGeometry(
175
+ blockRecordHandle: string,
176
+ measurementStart: Vec3,
177
+ measurementEnd: Vec3,
178
+ linePosition: Vec3,
179
+ text: string,
180
+ col: DxfColor,
181
+ handleRef: Handle
182
+ ): string {
183
+ let entities = "";
184
+
185
+ const onCreateLine = (start: Vec3, end: Vec3, _norm: Vec3, _thickness: number, _mat: Material): void => {
186
+ entities += dxfEncLine(start, end, col, handleRef, blockRecordHandle);
187
+ };
188
+ const onCreateText = (pos: Vec3, measurement: string, fontSize: number, _mat: Material, rot: Vec3): void => {
189
+ entities += dxfEncMText(pos, measurement, rot.z, fontSize, handleRef, DxfMTextAttachment.MiddleCenter, blockRecordHandle);
190
+ };
191
+ const onCreatePolygon = (p1: Vec3, p2: Vec3, p3: Vec3, _mat: Material): void => {
192
+ entities += dxfEncSolidTriangle(p1, p2, p3, col, handleRef, blockRecordHandle);
193
+ };
194
+
195
+ dimensionMeshifyAlignedDimension({linePosition, measurementEnd, measurementStart, text}, vec3Zero, onCreateLine, onCreateText, onCreatePolygon);
196
+ return entities;
197
+ }
198
+
58
199
  export function encodeDxfFormattedText(text: string): string {
59
200
  return text.replace(/\r\n|\r|\n/g, "\\P");
60
201
  }