abstract-3d 1.6.3 → 1.6.5

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 (52) hide show
  1. package/lib/renderers/dxf/color.d.ts +2 -0
  2. package/lib/renderers/dxf/color.d.ts.map +1 -1
  3. package/lib/renderers/dxf/color.js +3 -0
  4. package/lib/renderers/dxf/color.js.map +1 -1
  5. package/lib/renderers/dxf/dxf-encoding.d.ts +9 -8
  6. package/lib/renderers/dxf/dxf-encoding.d.ts.map +1 -1
  7. package/lib/renderers/dxf/dxf-encoding.js +48 -117
  8. package/lib/renderers/dxf/dxf-encoding.js.map +1 -1
  9. package/lib/renderers/dxf/dxf-geometries/dxf-box.d.ts.map +1 -1
  10. package/lib/renderers/dxf/dxf-geometries/dxf-box.js +7 -8
  11. package/lib/renderers/dxf/dxf-geometries/dxf-box.js.map +1 -1
  12. package/lib/renderers/dxf/dxf-geometries/dxf-cone.d.ts.map +1 -1
  13. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js +7 -8
  14. package/lib/renderers/dxf/dxf-geometries/dxf-cone.js.map +1 -1
  15. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.d.ts.map +1 -1
  16. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js +13 -16
  17. package/lib/renderers/dxf/dxf-geometries/dxf-cylinder.js.map +1 -1
  18. package/lib/renderers/dxf/dxf-geometries/dxf-image.d.ts.map +1 -1
  19. package/lib/renderers/dxf/dxf-geometries/dxf-image.js +12 -79
  20. package/lib/renderers/dxf/dxf-geometries/dxf-image.js.map +1 -1
  21. package/lib/renderers/dxf/dxf-geometries/dxf-plane.d.ts.map +1 -1
  22. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js +2 -2
  23. package/lib/renderers/dxf/dxf-geometries/dxf-plane.js.map +1 -1
  24. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.d.ts.map +1 -1
  25. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js +5 -5
  26. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js.map +1 -1
  27. package/lib/renderers/dxf/dxf-geometries/dxf-shape.d.ts.map +1 -1
  28. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js +37 -13
  29. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js.map +1 -1
  30. package/lib/renderers/dxf/dxf.d.ts.map +1 -1
  31. package/lib/renderers/dxf/dxf.js +10 -10
  32. package/lib/renderers/dxf/dxf.js.map +1 -1
  33. package/lib/renderers/svg/svg-encoding.d.ts.map +1 -1
  34. package/lib/renderers/svg/svg-encoding.js +42 -2
  35. package/lib/renderers/svg/svg-encoding.js.map +1 -1
  36. package/lib/renderers/svg/svg.js +2 -1
  37. package/lib/renderers/svg/svg.js.map +1 -1
  38. package/package.json +3 -3
  39. package/src/renderers/dxf/color.ts +5 -0
  40. package/src/renderers/dxf/dxf-encoding.ts +61 -127
  41. package/src/renderers/dxf/dxf-geometries/dxf-box.ts +7 -9
  42. package/src/renderers/dxf/dxf-geometries/dxf-cone.ts +7 -9
  43. package/src/renderers/dxf/dxf-geometries/dxf-cylinder.ts +15 -18
  44. package/src/renderers/dxf/dxf-geometries/dxf-image.ts +27 -97
  45. package/src/renderers/dxf/dxf-geometries/dxf-plane.ts +2 -3
  46. package/src/renderers/dxf/dxf-geometries/dxf-polygon.ts +5 -8
  47. package/src/renderers/dxf/dxf-geometries/dxf-shape.ts +37 -14
  48. package/src/renderers/dxf/dxf.ts +28 -22
  49. package/src/renderers/svg/svg-encoding.ts +45 -3
  50. package/src/renderers/svg/svg.ts +3 -5
  51. package/src/.DS_Store +0 -0
  52. package/src/renderers/.DS_Store +0 -0
@@ -1,39 +1,36 @@
1
1
  import { vec3TransRot, vec3RotCombine, vec3Zero, vec3, vec3Scale, equals, } from "../../../abstract-3d.js";
2
- import { dxf3DFACE } from "../dxf-encoding.js";
2
+ import { dxfQuad, dxfTriangle } from "../dxf-encoding.js";
3
3
  import { dxfPlane } from "./dxf-plane.js";
4
4
  export function dxfCylinder(c, m, sides, parentPos, parentRot, handleRef) {
5
- const angleStart = c.angleStart ?? 0.0;
6
- const angleLength = c.angleLength ?? Math.PI * 2;
7
- const angleEnd = angleStart + angleLength;
8
- let dxfString = "";
9
5
  const pos = vec3TransRot(c.pos, parentPos, parentRot);
10
6
  const rot = vec3RotCombine(parentRot, c.rot ?? vec3Zero);
11
7
  const vec3tr = (x, y, z) => vec3TransRot(vec3(x, y, z), pos, rot);
12
- const mat = m.normal;
8
+ const angleStart = c.angleStart ?? 0.0;
9
+ const angleLength = c.angleLength ?? Math.PI * 2;
10
+ const angleEnd = angleStart + angleLength;
13
11
  const angleStep = angleLength / sides;
14
12
  let currentAngle = angleStart;
13
+ let dxfString = "";
15
14
  const half = c.length / 2;
16
15
  const topPos = vec3tr(0, half, 0);
17
16
  const botPos = vec3tr(0, -half, 0);
18
- const botVec3Array = Array();
19
- const topVec3Array = Array();
17
+ let prevBot = undefined;
18
+ let prevTop = undefined;
20
19
  for (let i = 0; i <= sides; i++) {
21
20
  const x = Math.sin(currentAngle) * c.radius;
22
21
  const z = Math.cos(currentAngle) * c.radius;
23
22
  const currBot = vec3tr(x, -half, z);
24
23
  const currTop = vec3tr(x, half, z);
25
- botVec3Array.push(currBot);
26
- topVec3Array.push(currTop);
27
- if (i !== 0) {
28
- const prevBot = botVec3Array[i - 1];
29
- const prevTop = topVec3Array[i - 1];
24
+ if (i !== 0 && prevBot && prevTop) {
30
25
  if (!c.open) {
31
26
  dxfString +=
32
- dxf3DFACE(botPos, prevBot, currBot, currBot, mat, handleRef) +
33
- dxf3DFACE(topPos, prevTop, currTop, currTop, mat, handleRef);
27
+ dxfTriangle(botPos, prevBot, currBot, m.normal, handleRef) +
28
+ dxfTriangle(topPos, prevTop, currTop, m.normal, handleRef);
34
29
  }
35
- dxfString += dxf3DFACE(currBot, prevBot, prevTop, currTop, mat, handleRef);
30
+ dxfString += dxfQuad(currBot, prevBot, prevTop, currTop, m.normal, handleRef);
36
31
  }
32
+ prevBot = currBot;
33
+ prevTop = currTop;
37
34
  currentAngle += angleStep;
38
35
  }
39
36
  if (!equals(angleStart, angleEnd - Math.PI * 2) && angleLength > 0.0) {
@@ -1 +1 @@
1
- {"version":3,"file":"dxf-cylinder.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-cylinder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dxf-cylinder.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-cylinder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dxf-image.d.ts","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-image.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EACL,IAAI,EAYL,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAwB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGlE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAmB9F"}
1
+ {"version":3,"file":"dxf-image.d.ts","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-image.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EACL,IAAI,EAQL,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAoE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE9G,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAiB9F"}
@@ -1,5 +1,5 @@
1
- import { vec2Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3, vec3Rot, vec3Add, vec3Sub, vec3Normalize, vec3Cross, vec3Scale, } from "../../../abstract-3d.js";
2
- import { dxf3DFACE } from "../dxf-encoding.js";
1
+ import { vec2Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3, vec3Rot, vec3Add, } from "../../../abstract-3d.js";
2
+ import { DEFAULT_CIRCLE_SIDE_COUNT, dxfLine, dxfPolyline } from "../dxf-encoding.js";
3
3
  export function dxfImage(i, parentPos, parentRot, handleRef) {
4
4
  const half = vec2Scale(i.size, 0.5);
5
5
  const offset = vec3Rot(vec3(-half.x, half.y, 0), vec3Zero, i.rot ?? vec3Zero);
@@ -20,60 +20,42 @@ export function dxfImage(i, parentPos, parentRot, handleRef) {
20
20
  }
21
21
  function abstractImageToDxf3D(image, pos, rot, scale, handleRef) {
22
22
  const strokeScale = Math.max(scale.x, scale.y, scale.z);
23
- let dxf = "";
24
- //create the background and place it slightly below the stroke elements
25
- // const normal = eulerToVector(rot);
26
- // const bgSize = { x: image.size.width * scale.x, y: image.size.height * scale.y, z: 1 };
27
- // const bgHalf = vec3Rot(vec3Scale(bgSize, 0.5), vec3Zero, rot);
28
- // const bgPos = vec3Add(vec3Add(pos, bgHalf), vec3Scale(normal, -1));
29
- // dxf += dxfPlane({
30
- // type: "Plane",
31
- // size: bgSize,
32
- // pos: bgPos,
33
- // rot,
34
- // }, {normal: `normal(0, 0, 1)`}, vec3Zero, vec3Zero, handleRef);
35
- for (const comp of image.components) {
36
- dxf += abstractImageComponentToDxf3D(comp, pos, rot, scale, strokeScale, handleRef);
37
- }
38
- return dxf;
23
+ return image.components.map((comp) => abstractImageComponentToDxf3D(comp, pos, rot, scale, strokeScale, handleRef)).join("");
39
24
  }
40
25
  function abstractImageComponentToDxf3D(comp, pos, rot, scale, strokeScale, handleRef) {
41
26
  const vec3tr = (x, y) => vec3TransRot(vec3(x * scale.x, y * scale.y, 0), pos, rot);
42
- const strokeColor = { a: 255.0, r: 0.0, g: 0.0, b: 0.0 };
27
+ const strokeColor = 7;
43
28
  let dxf = "";
44
29
  switch (comp.type) {
45
30
  case "group": {
46
- for (const child of comp.children) {
47
- dxf += abstractImageComponentToDxf3D(child, pos, rot, scale, strokeScale, handleRef);
48
- }
31
+ dxf += comp.children.map((child) => abstractImageComponentToDxf3D(child, pos, rot, scale, strokeScale, handleRef)).join("");
49
32
  break;
50
33
  }
51
34
  case "line": {
52
- dxf += dxfLine(vec3tr(comp.start.x, comp.start.y), vec3tr(comp.end.x, comp.end.y), strokeColor, comp.strokeThickness * strokeScale, rot, handleRef);
35
+ dxf += dxfLine(vec3tr(comp.start.x, comp.start.y), vec3tr(comp.end.x, comp.end.y), strokeColor, handleRef);
53
36
  break;
54
37
  }
55
38
  case "polyline": {
56
39
  const points = comp.points.map((p) => vec3tr(p.x, p.y));
57
- dxf += dxfPolyline(points, strokeColor, false, comp.strokeThickness * strokeScale, rot, handleRef);
40
+ dxf += dxfPolyline(points, strokeColor, false, handleRef);
58
41
  break;
59
42
  }
60
43
  case "polygon": {
61
44
  const points = comp.points.map((p) => vec3tr(p.x, p.y));
62
- dxf += dxfPolyline(points, strokeColor, true, comp.strokeThickness * strokeScale, rot, handleRef);
45
+ dxf += dxfPolyline(points, strokeColor, true, handleRef);
63
46
  break;
64
47
  }
65
48
  case "ellipse": {
66
49
  const points = [];
67
50
  const r1 = Math.abs(comp.bottomRight.x - comp.topLeft.x) / 2.0;
68
51
  const r2 = Math.abs(comp.topLeft.y - comp.bottomRight.y) / 2.0;
69
- const numPoints = 32;
70
- for (let i = 0; i < numPoints; i++) {
71
- const t = (2 * Math.PI * i) / numPoints;
52
+ for (let i = 0; i < DEFAULT_CIRCLE_SIDE_COUNT; i++) {
53
+ const t = (2 * Math.PI * i) / DEFAULT_CIRCLE_SIDE_COUNT;
72
54
  const x = comp.topLeft.x + r1 + r1 * Math.cos(t);
73
55
  const y = comp.topLeft.y + r2 + r2 * Math.sin(t);
74
56
  points.push(vec3tr(x, y));
75
57
  }
76
- dxf += dxfPolyline(points, strokeColor, true, comp.strokeThickness * strokeScale, rot, handleRef);
58
+ dxf += dxfPolyline(points, strokeColor, true, handleRef);
77
59
  break;
78
60
  }
79
61
  case "rectangle": {
@@ -87,7 +69,7 @@ function abstractImageComponentToDxf3D(comp, pos, rot, scale, strokeScale, handl
87
69
  vec3tr(size.x, size.y),
88
70
  vec3tr(0, size.y),
89
71
  ];
90
- dxf += dxfPolyline(points, strokeColor, true, comp.strokeThickness * strokeScale, rot, handleRef);
72
+ dxf += dxfPolyline(points, strokeColor, true, handleRef);
91
73
  break;
92
74
  }
93
75
  default:
@@ -95,53 +77,4 @@ function abstractImageComponentToDxf3D(comp, pos, rot, scale, strokeScale, handl
95
77
  }
96
78
  return dxf;
97
79
  }
98
- function dxfLine(vecStart, vecEnd, color, strokeThickness, normal, handleRef) {
99
- const norm = eulerToVector(normal);
100
- strokeThickness = 0;
101
- const dir = vec3Normalize(vec3Sub(vecEnd, vecStart));
102
- const right = vec3Cross(dir, norm);
103
- const s1 = vec3Add(vecStart, vec3Scale(right, strokeThickness / 2));
104
- const s2 = vec3Add(vecStart, vec3Scale(right, -strokeThickness / 2));
105
- const e1 = vec3Add(vecEnd, vec3Scale(right, strokeThickness / 2));
106
- const e2 = vec3Add(vecEnd, vec3Scale(right, -strokeThickness / 2));
107
- //return dxf3DFACE(s1, e1, e2, s2, abstractImageColorToHex(color), handleRef);
108
- return dxf3DFACE(s1, e1, e2, s2, 7, handleRef);
109
- }
110
- function dxfPolyline(points, color, closed, strokeThickness, normal, handleRef) {
111
- let dxf = "";
112
- for (let i = 0; i < points.length - 1; i++) {
113
- const p1 = points[i];
114
- const p2 = points[i + 1];
115
- if (!p1 || !p2) {
116
- continue;
117
- }
118
- dxf += dxfLine(p1, p2, color, strokeThickness, normal, handleRef);
119
- }
120
- if (closed) {
121
- const start = points[0];
122
- const end = points[points.length - 1];
123
- if (start && end) {
124
- dxf += dxfLine(start, end, color, strokeThickness, normal, handleRef);
125
- }
126
- }
127
- return dxf;
128
- }
129
- function abstractImageColorToHex(color) {
130
- const col = `rgb(${color.r}, ${color.g}, ${color.b})`;
131
- return col;
132
- }
133
- function eulerToVector(euler) {
134
- const cx = Math.cos(euler.x);
135
- const sx = Math.sin(euler.x);
136
- const cy = Math.cos(euler.y);
137
- const sy = Math.sin(euler.y);
138
- //const cz = Math.cos(euler.z); ?
139
- //const sz = Math.sin(euler.z); ?
140
- const norm = {
141
- x: sy,
142
- y: -sx * cy,
143
- z: cx * cy
144
- };
145
- return norm;
146
- }
147
80
  //# sourceMappingURL=dxf-image.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dxf-image.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dxf-image.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-image.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dxf-plane.d.ts","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-plane.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EAML,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAa,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEvD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAa3G"}
1
+ {"version":3,"file":"dxf-plane.d.ts","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-plane.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,QAAQ,EACR,IAAI,EAML,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAW,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAErD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAa3G"}
@@ -1,10 +1,10 @@
1
1
  import { vec2Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3, } from "../../../abstract-3d.js";
2
- import { dxf3DFACE } from "../dxf-encoding.js";
2
+ import { dxfQuad } from "../dxf-encoding.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 dxf3DFACE(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 dxfQuad(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,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,IAAI,GACL,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAU,MAAM,oBAAoB,CAAC;AAEvD,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,SAAS,CACd,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,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,IAAI,GACL,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAU,MAAM,oBAAoB,CAAC;AAErD,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,OAAO,CACZ,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 +1 @@
1
- {"version":3,"file":"dxf-polygon.d.ts","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-polygon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAA0C,MAAM,yBAAyB,CAAC;AAE1G,OAAO,EAAa,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAKvD,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA2E/G"}
1
+ {"version":3,"file":"dxf-polygon.d.ts","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-polygon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAA0C,MAAM,yBAAyB,CAAC;AAC1G,OAAO,EAAwB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAKlE,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAyE/G"}
@@ -1,5 +1,5 @@
1
1
  import { vec3TransRot, vec3RotCombine, vec3Zero } from "../../../abstract-3d.js";
2
- import { dxf3DFACE } from "../dxf-encoding.js";
2
+ import { dxfQuad, dxfTriangle } from "../dxf-encoding.js";
3
3
  const QUAD_STRIDE = 4;
4
4
  const TRIANGLE_STRIDE = 3;
5
5
  export function dxfPolygon(p, m, parentPos, parentRot, handleRef) {
@@ -15,7 +15,7 @@ export function dxfPolygon(p, m, parentPos, parentRot, handleRef) {
15
15
  const vec3 = points[i + 2];
16
16
  const vec4 = points[i + 3];
17
17
  if (vec1 && vec2 && vec3 && vec4) {
18
- polygonString += dxf3DFACE(vec1, vec2, vec3, vec4, col, handleRef);
18
+ polygonString += dxfQuad(vec1, vec2, vec3, vec4, col, handleRef);
19
19
  }
20
20
  i += QUAD_STRIDE;
21
21
  }
@@ -27,7 +27,7 @@ export function dxfPolygon(p, m, parentPos, parentRot, handleRef) {
27
27
  const vec2 = points[i - 1];
28
28
  const vec3 = points[i - 2];
29
29
  if (vec1 && vec2 && vec3) {
30
- polygonString += dxf3DFACE(vec3, vec2, vec1, vec1, col, handleRef);
30
+ polygonString += dxfTriangle(vec3, vec2, vec1, col, handleRef);
31
31
  }
32
32
  break;
33
33
  }
@@ -36,7 +36,7 @@ export function dxfPolygon(p, m, parentPos, parentRot, handleRef) {
36
36
  const vec2 = points[i - 1];
37
37
  const vec3 = points[i + 1];
38
38
  if (vec1 && vec2 && vec3) {
39
- polygonString += dxf3DFACE(vec2, vec1, vec3, vec3, col, handleRef);
39
+ polygonString += dxfTriangle(vec2, vec1, vec3, col, handleRef);
40
40
  }
41
41
  break;
42
42
  }
@@ -45,7 +45,7 @@ export function dxfPolygon(p, m, parentPos, parentRot, handleRef) {
45
45
  const vec2 = points[i + 1];
46
46
  const vec3 = points[i + 2];
47
47
  if (vec1 && vec2 && vec3) {
48
- polygonString += dxf3DFACE(vec1, vec2, vec3, vec3, col, handleRef);
48
+ polygonString += dxfTriangle(vec1, vec2, vec3, col, handleRef);
49
49
  }
50
50
  break;
51
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dxf-polygon.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-polygon.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE1G,OAAO,EAAE,SAAS,EAAU,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,MAAM,UAAU,UAAU,CAAC,CAAU,EAAE,CAAW,EAAE,SAAe,EAAE,SAAe,EAAE,SAAiB;IACrG,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;IACrB,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,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,IAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAChC,aAAa,IAAI,SAAS,CACxB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,SAAS,CACV,CAAC;QACJ,CAAC;QACD,CAAC,IAAI,WAAW,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3D,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,QAAQ,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,IAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;oBACxB,aAAa,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,IAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;oBACxB,aAAa,IAAI,SAAS,CACxB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,SAAS,CACV,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,IAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;oBACxB,aAAa,IAAI,SAAS,CACxB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,SAAS,CACV,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,CAAC;YACD;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"dxf-polygon.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-polygon.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dxf-shape.d.ts","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAgD,MAAM,yBAAyB,CAAC;AAE9G,OAAO,EAAa,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAIvD,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA+B7G"}
1
+ {"version":3,"file":"dxf-shape.d.ts","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAgD,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EAAwB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAKlE,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAsD7G"}
@@ -1,30 +1,54 @@
1
1
  import { vec3TransRot, vec3RotCombine, vec3Zero, vec3 } from "../../../abstract-3d.js";
2
- import { dxf3DFACE } from "../dxf-encoding.js";
3
- const chunkSize = 4;
2
+ import { dxfQuad, dxfTriangle } from "../dxf-encoding.js";
3
+ const QUAD_STRIDE = 4;
4
+ const TRIANGLE_STRIDE = 3;
4
5
  export function dxfPolygon(s, m, parentPos, parentRot, handleRef) {
5
6
  let polygonString = "";
6
7
  const pos = vec3TransRot(s.pos, parentPos, parentRot);
7
8
  const rot = vec3RotCombine(parentRot, s.rot ?? vec3Zero);
8
9
  const points = s.points.map((p) => vec3TransRot(vec3(p.x, p.y, 0), pos, rot));
9
- const mat = m.normal;
10
10
  let i = 0;
11
- if (points.length >= chunkSize) {
12
- for (i; i < points.length; i += chunkSize) {
13
- polygonString += dxf3DFACE(points[i], points[i + 1], points[i + 2], points[i + 3], mat, handleRef);
11
+ if (points.length >= QUAD_STRIDE) {
12
+ for (i; i < points.length; i += QUAD_STRIDE) {
13
+ const p1 = points[i];
14
+ const p2 = points[i + 1];
15
+ const p3 = points[i + 2];
16
+ const p4 = points[i + 3];
17
+ if (p1 && p2 && p3 && p4) {
18
+ polygonString += dxfQuad(p1, p2, p3, p4, m.normal, handleRef);
19
+ }
14
20
  }
15
21
  }
16
- if (i <= points.length && chunkSize - 1 <= points.length) {
22
+ if (i <= points.length && TRIANGLE_STRIDE <= points.length) {
17
23
  const lastArrayLength = points.length - i;
18
24
  switch (lastArrayLength) {
19
- case 1:
20
- polygonString += dxf3DFACE(points[i - 2], points[i - 1], points[i], points[i], mat, handleRef);
25
+ case 1: {
26
+ const p1 = points[i - 2];
27
+ const p2 = points[i - 1];
28
+ const p3 = points[i];
29
+ if (p1 && p2 && p3) {
30
+ polygonString += dxfTriangle(p1, p2, p3, m.normal, handleRef);
31
+ }
21
32
  break;
22
- case 2:
23
- polygonString += dxf3DFACE(points[i - 1], points[i], points[i + 1], points[i + 1], mat, handleRef);
33
+ }
34
+ case 2: {
35
+ const p1 = points[i - 1];
36
+ const p2 = points[i];
37
+ const p3 = points[i + 1];
38
+ if (p1 && p2 && p3) {
39
+ polygonString += dxfTriangle(p1, p2, p3, m.normal, handleRef);
40
+ }
24
41
  break;
25
- case 3:
26
- polygonString += dxf3DFACE(points[i], points[i + 1], points[i + 2], points[i + 2], mat, handleRef);
42
+ }
43
+ case 3: {
44
+ const p1 = points[i];
45
+ const p2 = points[i + 1];
46
+ const p3 = points[i + 2];
47
+ if (p1 && p2 && p3) {
48
+ polygonString += dxfTriangle(p1, p2, p3, m.normal, handleRef);
49
+ }
27
50
  break;
51
+ }
28
52
  default:
29
53
  break;
30
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dxf-shape.js","sourceRoot":"","sources":["../../../../src/renderers/dxf/dxf-geometries/dxf-shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE9G,OAAO,EAAE,SAAS,EAAU,MAAM,oBAAoB,CAAC;AAEvD,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,MAAM,UAAU,UAAU,CAAC,CAAQ,EAAE,CAAW,EAAE,SAAe,EAAE,SAAe,EAAE,SAAiB;IACnG,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,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,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1C,aAAa,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,QAAQ,eAAe,EAAE,CAAC;YACxB,KAAK,CAAC;gBACJ,aAAa,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACnG,MAAM;YACR,KAAK,CAAC;gBACJ,aAAa,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACvG,MAAM;YACR,KAAK,CAAC;gBACJ,aAAa,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;gBACvG,MAAM;YACR;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
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,EACL,KAAK,EACL,IAAI,EAIJ,IAAI,EAcL,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAO,SAAS,EAAU,MAAM,mBAAmB,CAAC;AAM3D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjH,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAAC;AAE9G,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAiBxG;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,UAAU,QAAQ,CAAC,UAAU,CAAC,KAAG,MAKrE,CAAC;AAyGF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,UAAU,QAAQ,CAAC,UAAU,CAAC,KAAG,MAyBxE,CAAC"}
1
+ {"version":3,"file":"dxf.d.ts","sourceRoot":"","sources":["../../../src/renderers/dxf/dxf.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,IAAI,EAIJ,IAAI,EAeL,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAmD,SAAS,EAAU,MAAM,mBAAmB,CAAC;AAMvG,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,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;CACpC,CAAC;AAEF,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,UAAU,CAAC,GAAG,MAAM,CAiBxG;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,UAAU,QAAQ,CAAC,UAAU,CAAC,KAAG,MAKrE,CAAC;AAsGF,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,UAAU,QAAQ,CAAC,UAAU,CAAC,KAAG,MA2BxE,CAAC"}
@@ -1,16 +1,15 @@
1
- import { vec3RotCombine, vec3Zero, vec3TransRot, group, bounds3ToSize, vec3, rotationForCameraPos, bounds3FromPosAndSize, bounds3Merge, bounds3Center, vec3Add, sizeCenterBoundsForCameraPos, boundsScene, vec3Sub, } from "../../abstract-3d.js";
2
- import { dxf } from "./dxf-encoding.js";
1
+ import { vec3RotCombine, vec3Zero, vec3TransRot, group, bounds3ToSize, vec3, rotationForCameraPos, bounds3FromPosAndSize, bounds3Merge, bounds3Center, vec3Add, sizeCenterBoundsForCameraPos, boundsScene, vec3Sub, vec3Rot, } from "../../abstract-3d.js";
2
+ import { DEFAULT_CIRCLE_SIDE_COUNT, dxf, dxfHandleCreate } from "./dxf-encoding.js";
3
3
  import { dxfPlane } from "./dxf-geometries/dxf-plane.js";
4
4
  import { dxfBox } from "./dxf-geometries/dxf-box.js";
5
5
  import { dxfCylinder } from "./dxf-geometries/dxf-cylinder.js";
6
6
  import { dxfCone } from "./dxf-geometries/dxf-cone.js";
7
7
  import { dxfPolygon } from "./dxf-geometries/dxf-polygon.js";
8
8
  import { dxfImage } from "./dxf-geometries/dxf-image.js";
9
- const DEFAULT_CYLINDER_SIDE_COUNT = 18;
10
9
  export function renderScenes(scenes, baseOptions) {
11
10
  let allGroups = "";
12
11
  const allBounds = Array();
13
- const handle = { handle: 0x1000 };
12
+ const handle = dxfHandleCreate();
14
13
  const originOffset = originOffsetFromScenes(scenes, baseOptions?.origin ?? "Center");
15
14
  for (const view of scenes) {
16
15
  const { groups, size, center } = renderInternal(view.scene, optionsDef({ ...baseOptions, ...view.options, origin: "Center" }), vec3Add(view.pos, originOffset), handle);
@@ -23,12 +22,13 @@ export function renderScenes(scenes, baseOptions) {
23
22
  export const render = (scene, options) => {
24
23
  const opts = optionsDef(options);
25
24
  const bounds = boundsScene(scene);
26
- const { groups, size, center } = renderInternal(scene, opts, vec3Zero, { handle: 0x1000 });
25
+ const { groups, size, center } = renderInternal(scene, opts, vec3Zero, dxfHandleCreate());
27
26
  return dxf(groups, bounds, size, center);
28
27
  };
29
28
  const renderInternal = (scene, options, offset, handleRef) => {
30
29
  const unitRot = vec3RotCombine(rotationForCameraPos(options.view), scene.rotation_deprecated ?? vec3Zero);
31
- const [size, center] = sizeCenterBoundsForCameraPos(scene.size_deprecated, scene.center_deprecated ?? vec3Zero, unitRot);
30
+ const rotatedCenter = vec3Rot(scene.center_deprecated ?? vec3Zero, vec3Zero, scene.rotation_deprecated ?? vec3Zero);
31
+ const [size, center] = sizeCenterBoundsForCameraPos(scene.size_deprecated, rotatedCenter, unitRot);
32
32
  const bounds = bounds3FromPosAndSize(center, size);
33
33
  const dxfOriginOffset = originOffsetFromBounds(bounds, options.origin);
34
34
  const pos = vec3NegateY(vec3Add(center, vec3Add(offset, dxfOriginOffset)));
@@ -42,7 +42,7 @@ function vec3NegateY(vec) {
42
42
  return {
43
43
  x: vec.x,
44
44
  y: -vec.y,
45
- z: vec.z
45
+ z: vec.z,
46
46
  };
47
47
  }
48
48
  function originOffsetFromScenes(scenes, origin) {
@@ -107,7 +107,7 @@ function optionsDef(options) {
107
107
  return {
108
108
  view: options?.view ?? "front",
109
109
  origin: options?.origin ?? "BottomLeftFront",
110
- cylinderSideCount: DEFAULT_CYLINDER_SIDE_COUNT,
110
+ cylinderSideCount: DEFAULT_CIRCLE_SIDE_COUNT,
111
111
  };
112
112
  }
113
113
  // This is the original
@@ -127,11 +127,11 @@ export const renderOld = (scene, options) => {
127
127
  x: bounds.min.x + offset.x,
128
128
  y: bounds.min.y + offset.y,
129
129
  z: bounds.min.z + offset.z,
130
- }
130
+ },
131
131
  };
132
132
  const bounds2 = bounds3FromPosAndSize(offset, scene.size_deprecated);
133
133
  const groupRoot = group([], offset, vec3Zero, scene.groups);
134
- const handleRef = { handle: 0x1000 };
134
+ const handleRef = dxfHandleCreate();
135
135
  return dxf(dxfGroup(groupRoot, center, unitRot, opts, handleRef), bounds2, scene.size_deprecated, center);
136
136
  };
137
137
  //# sourceMappingURL=dxf.js.map
@@ -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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"svg-encoding.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/svg-encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,IAAI,EAEJ,IAAI,EAKJ,IAAI,EAGL,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,GAAG,GAAI,KAAK,IAAI,EAAE,MAAM,IAAI,EAAE,UAAU,MAAM,KAAG,MAI7D,CAAC;AACF,eAAO,MAAM,OAAO,GAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,QAAQ,MAAM,EAAE,aAAa,MAAM,KAAG,MAGxB,CAAC;AAE3D,wBAAgB,UAAU,CACxB,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,GAC1B,MAAM,CAUR;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EAEnB,KAAK,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,GAC1B,MAAM,CASR;AAED,eAAO,MAAM,UAAU,GACrB,QAAQ,MAAM,EACd,KAAK,IAAI,EACT,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,QAAQ,aAAa,CAAC,IAAI,CAAC,KAC1B,MAGsE,CAAC;AA8C1E,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,MACyD,CAAC;AAEhK,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,eAAO,MAAM,QAAQ,GAAI,GAAG,IAAI,EAAE,MAAM,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,EAAE,QAAQ,IAAI,KAAG,MAM3F,CAAC"}
1
+ {"version":3,"file":"svg-encoding.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/svg-encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,IAAI,EAEJ,IAAI,EAKJ,IAAI,EAGL,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,GAAG,GAAI,KAAK,IAAI,EAAE,MAAM,IAAI,EAAE,UAAU,MAAM,KAAG,MAI7D,CAAC;AACF,eAAO,MAAM,OAAO,GAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,QAAQ,MAAM,EAAE,aAAa,MAAM,KAAG,MAGxB,CAAC;AAE3D,wBAAgB,UAAU,CACxB,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,GAC1B,MAAM,CAWR;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,GAC1B,MAAM,CASR;AA4CD,eAAO,MAAM,UAAU,GACrB,QAAQ,MAAM,EACd,KAAK,IAAI,EACT,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,aAAa,MAAM,EACnB,QAAQ,aAAa,CAAC,IAAI,CAAC,KAC1B,MAGsE,CAAC;AA8C1E,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,MACyD,CAAC;AAEhK,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,eAAO,MAAM,QAAQ,GAAI,GAAG,IAAI,EAAE,MAAM,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,EAAE,QAAQ,IAAI,KAAG,MAM3F,CAAC"}
@@ -7,17 +7,57 @@ export const svgLine = (p1, p2, stroke, strokeWidth) => `<line x1="${p1.x.toFixe
7
7
  export function svgPolygon(rot, points, fill, opacity, stroke, strokeWidth, holes) {
8
8
  const bounds = bounds2FromVec2Array(points);
9
9
  const size = vec2Sub(bounds.max, bounds.min);
10
+ const pos = vec2Scale(vec2Add(bounds.max, bounds.min), 0.5);
10
11
  const [mask, maskAttribute] = svgHoleMask(rot, size, holes ?? []);
11
12
  const pol = `<polygon points="${points
12
13
  .reduce((a, c) => (a += `${c.x.toFixed(0)},${c.y.toFixed(0)} `), "")
13
14
  .slice(0, -1)}" fill="${fill}" fill-opacity="${opacity.toFixed(1)}" stroke="${stroke}" stroke-width="${strokeWidth}" ${maskAttribute}/>`;
14
- return mask + pol;
15
+ return mask + pol + svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth);
15
16
  }
16
17
  export function svgCircle(radius, rot, pos, fill, opacity, stroke, strokeWidth, holes) {
17
18
  const size = vec2Scale(vec2(radius, radius), 2);
18
19
  const [mask, maskAttribute] = svgHoleMask(rot, size, holes ?? []);
19
20
  const cir = `<circle r="${radius.toFixed(0)}" cx="${pos.x.toFixed(0)}" cy="${pos.y.toFixed(0)}" fill="${fill}" fill-opacity="${opacity.toFixed(1)}" stroke="${stroke}" stroke-width="${strokeWidth}" ${maskAttribute}/>`;
20
- return mask + cir;
21
+ return mask + cir + svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth);
22
+ }
23
+ function svgStrokedHoles(pos, rot, holes, strokeColor, strokeThickness) {
24
+ if (strokeThickness <= Number.EPSILON) {
25
+ return "";
26
+ }
27
+ let svgHoles = "";
28
+ for (const hole of holes) {
29
+ const matrix = svgTrsMatrix(vec2Add(pos, hole.pos), rot);
30
+ switch (hole.type) {
31
+ case "RoundHole": {
32
+ svgHoles += `<circle
33
+ r="${hole.radius.toFixed(0)}"
34
+ transform="${matrix}"
35
+ fill="none"
36
+ stroke="${strokeColor}"
37
+ stroke-width="${strokeThickness}"
38
+ />`;
39
+ break;
40
+ }
41
+ case "SquareHole": {
42
+ const half = vec2Scale(hole.size, 0.5);
43
+ const points = [
44
+ vec2(-half.x, half.y),
45
+ vec2(half.x, half.y),
46
+ vec2(half.x, -half.y),
47
+ vec2(-half.x, -half.y),
48
+ ].map(((p) => `${p.x.toFixed(0)},${p.y.toFixed(0)}`)).join(" ");
49
+ svgHoles += `<polygon
50
+ points="${points}"
51
+ transform="${matrix}"
52
+ fill="none"
53
+ stroke="${strokeColor}"
54
+ stroke-width="${strokeThickness}"
55
+ />`;
56
+ break;
57
+ }
58
+ }
59
+ }
60
+ return svgHoles;
21
61
  }
22
62
  export const svgCircle2 = (radius, pos, fill, stroke, strokeWidth, holes) => `<circle r="${radius.toFixed(0)}" cx="${pos.x.toFixed(0)}" cy="${pos.y.toFixed(0)}" fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" />`;
23
63
  function svgHoleMask(rot, size, holes) {