abstract-3d 2.7.29 → 2.7.32

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 (208) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/abstract-3d.d.ts +1 -1
  3. package/lib/abstract-3d.d.ts.map +1 -1
  4. package/lib/abstract-3d.js +20 -12
  5. package/lib/abstract-3d.js.map +1 -1
  6. package/lib/renderers/dxf/dxf-encoding/dxf-3dface.d.ts.map +1 -1
  7. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts +1 -1
  8. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.d.ts.map +1 -1
  9. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js +3 -3
  10. package/lib/renderers/dxf/dxf-encoding/dxf-dimension.js.map +1 -1
  11. package/lib/renderers/dxf/dxf-encoding/dxf-footer.d.ts.map +1 -1
  12. package/lib/renderers/dxf/dxf-encoding/dxf-header.d.ts.map +1 -1
  13. package/lib/renderers/dxf/dxf-encoding/dxf-header.js.map +1 -1
  14. package/lib/renderers/dxf/dxf-encoding/dxf-lwpolyline.d.ts.map +1 -1
  15. package/lib/renderers/dxf/dxf-encoding/dxf-lwpolyline.js.map +1 -1
  16. package/lib/renderers/dxf/dxf-encoding/dxf-mtext.js.map +1 -1
  17. package/lib/renderers/dxf/dxf-encoding/dxf-solid.d.ts.map +1 -1
  18. package/lib/renderers/dxf/dxf-encoding/dxf-triangle.d.ts.map +1 -1
  19. package/lib/renderers/dxf/dxf-geometries/dxf-image.d.ts +1 -1
  20. package/lib/renderers/dxf/dxf-geometries/dxf-image.d.ts.map +1 -1
  21. package/lib/renderers/dxf/dxf-geometries/dxf-image.js +1 -1
  22. package/lib/renderers/dxf/dxf-geometries/dxf-image.js.map +1 -1
  23. package/lib/renderers/dxf/dxf-geometries/dxf-polygon.js.map +1 -1
  24. package/lib/renderers/dxf/dxf-geometries/dxf-shape.js.map +1 -1
  25. package/lib/renderers/dxf/dxf.d.ts.map +1 -1
  26. package/lib/renderers/dxf/dxf.js +9 -5
  27. package/lib/renderers/dxf/dxf.js.map +1 -1
  28. package/lib/renderers/react/react-camera.d.ts +2 -2
  29. package/lib/renderers/react/react-camera.d.ts.map +1 -1
  30. package/lib/renderers/react/react-camera.js +3 -5
  31. package/lib/renderers/react/react-camera.js.map +1 -1
  32. package/lib/renderers/react/react-dimension.d.ts +2 -2
  33. package/lib/renderers/react/react-dimension.d.ts.map +1 -1
  34. package/lib/renderers/react/react-dimension.js +3 -3
  35. package/lib/renderers/react/react-dimension.js.map +1 -1
  36. package/lib/renderers/react/react-group.d.ts +4 -4
  37. package/lib/renderers/react/react-group.d.ts.map +1 -1
  38. package/lib/renderers/react/react-group.js.map +1 -1
  39. package/lib/renderers/react/react-hotspot.d.ts +2 -2
  40. package/lib/renderers/react/react-hotspot.d.ts.map +1 -1
  41. package/lib/renderers/react/react-hotspot.js +1 -1
  42. package/lib/renderers/react/react-hotspot.js.map +1 -1
  43. package/lib/renderers/react/react-image-material.d.ts +2 -2
  44. package/lib/renderers/react/react-image-material.d.ts.map +1 -1
  45. package/lib/renderers/react/react-image-material.js +1 -0
  46. package/lib/renderers/react/react-image-material.js.map +1 -1
  47. package/lib/renderers/react/react-material.d.ts +1 -1
  48. package/lib/renderers/react/react-material.d.ts.map +1 -1
  49. package/lib/renderers/react/react-material.js +1 -0
  50. package/lib/renderers/react/react-material.js.map +1 -1
  51. package/lib/renderers/react/react-mesh.d.ts +1 -1
  52. package/lib/renderers/react/react-mesh.d.ts.map +1 -1
  53. package/lib/renderers/react/react-mesh.js +4 -12
  54. package/lib/renderers/react/react-mesh.js.map +1 -1
  55. package/lib/renderers/react/react-scene.d.ts +5 -5
  56. package/lib/renderers/react/react-scene.d.ts.map +1 -1
  57. package/lib/renderers/react/react-scene.js +1 -0
  58. package/lib/renderers/react/react-scene.js.map +1 -1
  59. package/lib/renderers/react/react-types.d.ts +1 -1
  60. package/lib/renderers/react/react-types.d.ts.map +1 -1
  61. package/lib/renderers/react/react.d.ts +5 -5
  62. package/lib/renderers/react/react.d.ts.map +1 -1
  63. package/lib/renderers/react/react.js +1 -1
  64. package/lib/renderers/react/react.js.map +1 -1
  65. package/lib/renderers/step/step-encoding.d.ts +1 -1
  66. package/lib/renderers/step/step-encoding.d.ts.map +1 -1
  67. package/lib/renderers/step/step-encoding.js.map +1 -1
  68. package/lib/renderers/step/step-geometries/step-box.d.ts +2 -2
  69. package/lib/renderers/step/step-geometries/step-box.d.ts.map +1 -1
  70. package/lib/renderers/step/step-geometries/step-box.js.map +1 -1
  71. package/lib/renderers/step/step-geometries/step-cone.d.ts +2 -2
  72. package/lib/renderers/step/step-geometries/step-cone.d.ts.map +1 -1
  73. package/lib/renderers/step/step-geometries/step-cone.js +0 -1
  74. package/lib/renderers/step/step-geometries/step-cone.js.map +1 -1
  75. package/lib/renderers/step/step-geometries/step-cylinder.d.ts +2 -2
  76. package/lib/renderers/step/step-geometries/step-cylinder.d.ts.map +1 -1
  77. package/lib/renderers/step/step-geometries/step-cylinder.js +8 -23
  78. package/lib/renderers/step/step-geometries/step-cylinder.js.map +1 -1
  79. package/lib/renderers/step/step-geometries/step-plane.d.ts +2 -2
  80. package/lib/renderers/step/step-geometries/step-plane.d.ts.map +1 -1
  81. package/lib/renderers/step/step-geometries/step-plane.js +1 -1
  82. package/lib/renderers/step/step-geometries/step-plane.js.map +1 -1
  83. package/lib/renderers/step/step.d.ts +1 -1
  84. package/lib/renderers/step/step.d.ts.map +1 -1
  85. package/lib/renderers/step/step.js +1 -1
  86. package/lib/renderers/step/step.js.map +1 -1
  87. package/lib/renderers/stl/stl-encoding.d.ts +1 -1
  88. package/lib/renderers/stl/stl-encoding.d.ts.map +1 -1
  89. package/lib/renderers/stl/stl-encoding.js.map +1 -1
  90. package/lib/renderers/stl/stl-geometries/stl-box.d.ts +1 -1
  91. package/lib/renderers/stl/stl-geometries/stl-box.d.ts.map +1 -1
  92. package/lib/renderers/stl/stl-geometries/stl-box.js.map +1 -1
  93. package/lib/renderers/stl/stl-geometries/stl-cone.d.ts +1 -1
  94. package/lib/renderers/stl/stl-geometries/stl-cone.d.ts.map +1 -1
  95. package/lib/renderers/stl/stl-geometries/stl-cone.js.map +1 -1
  96. package/lib/renderers/stl/stl-geometries/stl-cylinder.d.ts +1 -1
  97. package/lib/renderers/stl/stl-geometries/stl-cylinder.d.ts.map +1 -1
  98. package/lib/renderers/stl/stl-geometries/stl-cylinder.js +1 -1
  99. package/lib/renderers/stl/stl-geometries/stl-cylinder.js.map +1 -1
  100. package/lib/renderers/stl/stl-geometries/stl-plane.d.ts +1 -1
  101. package/lib/renderers/stl/stl-geometries/stl-plane.d.ts.map +1 -1
  102. package/lib/renderers/stl/stl-geometries/stl-plane.js +1 -1
  103. package/lib/renderers/stl/stl-geometries/stl-plane.js.map +1 -1
  104. package/lib/renderers/stl/stl-geometries/stl-polygon.d.ts +1 -1
  105. package/lib/renderers/stl/stl-geometries/stl-polygon.d.ts.map +1 -1
  106. package/lib/renderers/stl/stl-geometries/stl-polygon.js.map +1 -1
  107. package/lib/renderers/stl/stl-geometries/stl-shape.d.ts +1 -1
  108. package/lib/renderers/stl/stl-geometries/stl-shape.d.ts.map +1 -1
  109. package/lib/renderers/stl/stl-geometries/stl-shape.js.map +1 -1
  110. package/lib/renderers/stl/stl.d.ts +1 -1
  111. package/lib/renderers/stl/stl.d.ts.map +1 -1
  112. package/lib/renderers/stl/stl.js.map +1 -1
  113. package/lib/renderers/svg/index.js +1 -0
  114. package/lib/renderers/svg/index.js.map +1 -1
  115. package/lib/renderers/svg/svg-encoding.d.ts +3 -3
  116. package/lib/renderers/svg/svg-encoding.d.ts.map +1 -1
  117. package/lib/renderers/svg/svg-encoding.js +6 -15
  118. package/lib/renderers/svg/svg-encoding.js.map +1 -1
  119. package/lib/renderers/svg/svg-geometries/shared.d.ts +1 -1
  120. package/lib/renderers/svg/svg-geometries/shared.d.ts.map +1 -1
  121. package/lib/renderers/svg/svg-geometries/shared.js.map +1 -1
  122. package/lib/renderers/svg/svg-geometries/svg-box.d.ts +2 -2
  123. package/lib/renderers/svg/svg-geometries/svg-box.d.ts.map +1 -1
  124. package/lib/renderers/svg/svg-geometries/svg-box.js +1 -1
  125. package/lib/renderers/svg/svg-geometries/svg-box.js.map +1 -1
  126. package/lib/renderers/svg/svg-geometries/svg-cone.d.ts +2 -2
  127. package/lib/renderers/svg/svg-geometries/svg-cone.d.ts.map +1 -1
  128. package/lib/renderers/svg/svg-geometries/svg-cone.js +1 -1
  129. package/lib/renderers/svg/svg-geometries/svg-cone.js.map +1 -1
  130. package/lib/renderers/svg/svg-geometries/svg-cylinder.d.ts +2 -2
  131. package/lib/renderers/svg/svg-geometries/svg-cylinder.d.ts.map +1 -1
  132. package/lib/renderers/svg/svg-geometries/svg-cylinder.js +1 -1
  133. package/lib/renderers/svg/svg-geometries/svg-cylinder.js.map +1 -1
  134. package/lib/renderers/svg/svg-geometries/svg-image.d.ts +2 -2
  135. package/lib/renderers/svg/svg-geometries/svg-image.d.ts.map +1 -1
  136. package/lib/renderers/svg/svg-geometries/svg-image.js +1 -1
  137. package/lib/renderers/svg/svg-geometries/svg-image.js.map +1 -1
  138. package/lib/renderers/svg/svg-geometries/svg-line.d.ts +2 -2
  139. package/lib/renderers/svg/svg-geometries/svg-line.d.ts.map +1 -1
  140. package/lib/renderers/svg/svg-geometries/svg-line.js.map +1 -1
  141. package/lib/renderers/svg/svg-geometries/svg-plane.d.ts +2 -2
  142. package/lib/renderers/svg/svg-geometries/svg-plane.d.ts.map +1 -1
  143. package/lib/renderers/svg/svg-geometries/svg-plane.js +1 -1
  144. package/lib/renderers/svg/svg-geometries/svg-plane.js.map +1 -1
  145. package/lib/renderers/svg/svg-geometries/svg-polygon.d.ts +2 -2
  146. package/lib/renderers/svg/svg-geometries/svg-polygon.d.ts.map +1 -1
  147. package/lib/renderers/svg/svg-geometries/svg-polygon.js +1 -1
  148. package/lib/renderers/svg/svg-geometries/svg-polygon.js.map +1 -1
  149. package/lib/renderers/svg/svg-geometries/svg-shape.d.ts +2 -2
  150. package/lib/renderers/svg/svg-geometries/svg-shape.d.ts.map +1 -1
  151. package/lib/renderers/svg/svg-geometries/svg-shape.js +1 -1
  152. package/lib/renderers/svg/svg-geometries/svg-shape.js.map +1 -1
  153. package/lib/renderers/svg/svg-geometries/svg-text.d.ts +2 -2
  154. package/lib/renderers/svg/svg-geometries/svg-text.d.ts.map +1 -1
  155. package/lib/renderers/svg/svg-geometries/svg-text.js.map +1 -1
  156. package/lib/renderers/svg/svg.d.ts +3 -3
  157. package/lib/renderers/svg/svg.d.ts.map +1 -1
  158. package/lib/renderers/svg/svg.js.map +1 -1
  159. package/lib/utils.d.ts +1 -1
  160. package/lib/utils.d.ts.map +1 -1
  161. package/lib/utils.js +0 -1
  162. package/lib/utils.js.map +1 -1
  163. package/package.json +3 -3
  164. package/src/abstract-3d.ts +91 -91
  165. package/src/custom_typings/react-three-fiber.d.ts +1 -1
  166. package/src/renderers/dxf/dxf-encoding/dxf-dimension.ts +57 -13
  167. package/src/renderers/dxf/dxf-encoding/dxf-lwpolyline.ts +1 -1
  168. package/src/renderers/dxf/dxf-geometries/dxf-image.ts +9 -9
  169. package/src/renderers/dxf/dxf.ts +67 -16
  170. package/src/renderers/react/react-camera.tsx +3 -4
  171. package/src/renderers/react/react-dimension.tsx +5 -5
  172. package/src/renderers/react/react-group.tsx +6 -4
  173. package/src/renderers/react/react-hotspot.tsx +3 -2
  174. package/src/renderers/react/react-image-material.tsx +3 -2
  175. package/src/renderers/react/react-material.tsx +1 -1
  176. package/src/renderers/react/react-mesh.tsx +28 -39
  177. package/src/renderers/react/react-scene.tsx +6 -5
  178. package/src/renderers/react/react-types.ts +1 -1
  179. package/src/renderers/react/react.tsx +7 -6
  180. package/src/renderers/step/step-encoding.ts +43 -44
  181. package/src/renderers/step/step-geometries/step-box.ts +3 -8
  182. package/src/renderers/step/step-geometries/step-cone.ts +3 -14
  183. package/src/renderers/step/step-geometries/step-cylinder.ts +49 -251
  184. package/src/renderers/step/step-geometries/step-plane.ts +4 -11
  185. package/src/renderers/step/step.ts +3 -19
  186. package/src/renderers/stl/stl-encoding.ts +2 -1
  187. package/src/renderers/stl/stl-geometries/stl-box.ts +2 -1
  188. package/src/renderers/stl/stl-geometries/stl-cone.ts +2 -1
  189. package/src/renderers/stl/stl-geometries/stl-cylinder.ts +3 -2
  190. package/src/renderers/stl/stl-geometries/stl-plane.ts +2 -10
  191. package/src/renderers/stl/stl-geometries/stl-polygon.ts +2 -1
  192. package/src/renderers/stl/stl-geometries/stl-shape.ts +2 -1
  193. package/src/renderers/stl/stl.ts +2 -1
  194. package/src/renderers/svg/svg-encoding.ts +7 -31
  195. package/src/renderers/svg/svg-geometries/shared.ts +2 -1
  196. package/src/renderers/svg/svg-geometries/svg-box.ts +4 -13
  197. package/src/renderers/svg/svg-geometries/svg-cone.ts +4 -13
  198. package/src/renderers/svg/svg-geometries/svg-cylinder.ts +4 -13
  199. package/src/renderers/svg/svg-geometries/svg-image.ts +6 -12
  200. package/src/renderers/svg/svg-geometries/svg-line.ts +4 -2
  201. package/src/renderers/svg/svg-geometries/svg-plane.ts +4 -14
  202. package/src/renderers/svg/svg-geometries/svg-polygon.ts +4 -11
  203. package/src/renderers/svg/svg-geometries/svg-shape.ts +4 -12
  204. package/src/renderers/svg/svg-geometries/svg-text.ts +6 -8
  205. package/src/renderers/svg/svg.ts +13 -17
  206. package/src/utils.ts +22 -27
  207. package/src/.DS_Store +0 -0
  208. package/src/renderers/.DS_Store +0 -0
@@ -1,4 +1,5 @@
1
- import { Box, Material, Vec3, vec3Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3 } from "../../../abstract-3d.js";
1
+ import type { Box, Material, Vec3 } from "../../../abstract-3d.js";
2
+ import { vec3Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3 } from "../../../abstract-3d.js";
2
3
  import { stlTriangle } from "../stl-encoding.js";
3
4
 
4
5
  export function stlBox(b: Box, _m: Material, parentPos: Vec3, parentRot: Vec3): string {
@@ -1,4 +1,5 @@
1
- import { Cone, Material, Vec3, vec3TransRot, vec3RotCombine, vec3Zero, vec3 } from "../../../abstract-3d.js";
1
+ import type { Cone, Material, Vec3 } from "../../../abstract-3d.js";
2
+ import { vec3TransRot, vec3RotCombine, vec3Zero, vec3 } from "../../../abstract-3d.js";
2
3
  import { stlPlaneOfVertices } from "../stl-encoding.js";
3
4
 
4
5
  export function stlCone(c: Cone, _m: Material, sides: number, parentPos: Vec3, parentRot: Vec3): string {
@@ -1,4 +1,5 @@
1
- import { Cylinder, Material, Vec3, vec3TransRot, vec3RotCombine, vec3Zero, vec3, equals, vec3Scale } from "../../../abstract-3d.js";
1
+ import type { Cylinder, Material, Vec3 } from "../../../abstract-3d.js";
2
+ import { vec3TransRot, vec3RotCombine, vec3Zero, vec3, equals, vec3Scale } from "../../../abstract-3d.js";
2
3
  import { stlPlaneOfVertices } from "../stl-encoding.js";
3
4
  import { stlPlane } from "./stl-plane.js";
4
5
 
@@ -9,7 +10,7 @@ export function stlCylinder(c: Cylinder, m: Material, sides: number, parentPos:
9
10
  const vec3tr = (x: number, y: number, z: number): Vec3 => vec3TransRot(vec3(x, y, z), pos, rot);
10
11
 
11
12
  const angleStart = c.angleStart ?? 0.0;
12
- const angleLength = c.angleLength ?? (Math.PI * 2);
13
+ const angleLength = c.angleLength ?? Math.PI * 2;
13
14
  const angleEnd = angleStart + angleLength;
14
15
  const angleStep = angleLength / sides;
15
16
  let currentAngle = angleStart;
@@ -1,13 +1,5 @@
1
- import {
2
- Plane,
3
- Material,
4
- Vec3,
5
- vec2Scale,
6
- vec3TransRot,
7
- vec3RotCombine,
8
- vec3Zero,
9
- vec3,
10
- } from "../../../abstract-3d.js";
1
+ import type { Plane, Material, Vec3 } from "../../../abstract-3d.js";
2
+ import { vec2Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3 } from "../../../abstract-3d.js";
11
3
  import { stlTriangle } from "../stl-encoding.js";
12
4
 
13
5
  export function stlPlane(p: Plane, _m: Material, parentPos: Vec3, parentRot: Vec3): string {
@@ -1,4 +1,5 @@
1
- import { Polygon, Material, Vec3, vec3TransRot, vec3RotCombine, vec3Zero } from "../../../abstract-3d.js";
1
+ import type { Polygon, Material, Vec3 } from "../../../abstract-3d.js";
2
+ import { vec3TransRot, vec3RotCombine, vec3Zero } from "../../../abstract-3d.js";
2
3
  import { stlTriangle } from "../stl-encoding.js";
3
4
 
4
5
  const chunkSize = 3;
@@ -1,4 +1,5 @@
1
- import { Shape, Material, Vec3, vec3TransRot, vec3RotCombine, vec3Zero, vec3 } from "../../../abstract-3d.js";
1
+ import type { Shape, Material, Vec3 } from "../../../abstract-3d.js";
2
+ import { vec3TransRot, vec3RotCombine, vec3Zero, vec3 } from "../../../abstract-3d.js";
2
3
  import { stlTriangle } from "../stl-encoding.js";
3
4
 
4
5
  const chunkSize = 3;
@@ -1,4 +1,5 @@
1
- import { Scene, vec3Zero, Group, Vec3, vec3TransRot, vec3RotCombine } from "../../abstract-3d.js";
1
+ import type { Scene, Group, Vec3 } from "../../abstract-3d.js";
2
+ import { vec3Zero, vec3TransRot, vec3RotCombine } from "../../abstract-3d.js";
2
3
  import { stlPlane } from "./stl-geometries/stl-plane.js";
3
4
  import { stlBox } from "./stl-geometries/stl-box.js";
4
5
  import { stlCylinder } from "./stl-geometries/stl-cylinder.js";
@@ -1,16 +1,5 @@
1
- import {
2
- bounds2FromVec2Array,
3
- Hole,
4
- vec2,
5
- Vec2,
6
- vec2Add,
7
- vec2Scale,
8
- vec2Sub,
9
- vec3,
10
- Vec3,
11
- vec3Rot,
12
- vec3Zero,
13
- } from "../../abstract-3d.js";
1
+ import type { Hole, Vec2, Vec3 } from "../../abstract-3d.js";
2
+ import { bounds2FromVec2Array, vec2, vec2Add, vec2Scale, vec2Sub, vec3, vec3Rot, vec3Zero } from "../../abstract-3d.js";
14
3
  import { svgTrsMatrix } from "./svg-geometries/shared.js";
15
4
 
16
5
  export const svg = (min: Vec2, size: Vec2, children: string): string => {
@@ -31,7 +20,7 @@ export function svgPolygon(
31
20
  stroke: string,
32
21
  strokeWidth: number,
33
22
  holes?: ReadonlyArray<Hole>,
34
- parentPos?: Vec3,
23
+ _parentPos?: Vec3
35
24
  ): string {
36
25
  const bounds = bounds2FromVec2Array(points);
37
26
  const size = vec2Sub(bounds.max, bounds.min);
@@ -42,11 +31,7 @@ export function svgPolygon(
42
31
  .slice(0, -1)}" fill="${fill}" fill-opacity="${opacity.toFixed(
43
32
  1
44
33
  )}" stroke="${stroke}" stroke-width="${strokeWidth}" ${maskAttribute}/>`;
45
- return (
46
- mask +
47
- pol +
48
- svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth)
49
- );
34
+ return mask + pol + svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth);
50
35
  }
51
36
 
52
37
  export function svgCircle(
@@ -66,11 +51,7 @@ export function svgCircle(
66
51
  )}" fill="${fill}" fill-opacity="${opacity.toFixed(
67
52
  1
68
53
  )}" stroke="${stroke}" stroke-width="${strokeWidth}" ${maskAttribute}/>`;
69
- return (
70
- mask +
71
- cir +
72
- svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth)
73
- );
54
+ return mask + cir + svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth);
74
55
  }
75
56
 
76
57
  function svgStrokedHoles(
@@ -104,12 +85,7 @@ function svgStrokedHoles(
104
85
 
105
86
  case "SquareHole": {
106
87
  const half = vec2Scale(hole.size, 0.5);
107
- const points = [
108
- vec2(-half.x, -half.y),
109
- vec2(half.x, -half.y),
110
- vec2(half.x, half.y),
111
- vec2(-half.x, half.y),
112
- ]
88
+ const points = [vec2(-half.x, -half.y), vec2(half.x, -half.y), vec2(half.x, half.y), vec2(-half.x, half.y)]
113
89
  .map((p) => `${p.x.toFixed(0)},${p.y.toFixed(0)}`)
114
90
  .join(" ");
115
91
 
@@ -135,7 +111,7 @@ export const svgCircle2 = (
135
111
  fill: string,
136
112
  stroke: string,
137
113
  strokeWidth: number,
138
- holes?: ReadonlyArray<Hole>
114
+ _holes?: ReadonlyArray<Hole>
139
115
  ): string =>
140
116
  `<circle r="${radius.toFixed(0)}" cx="${pos.x.toFixed(0)}" cy="${pos.y.toFixed(
141
117
  0
@@ -1,4 +1,5 @@
1
- import { vec2, Vec2, vec3, Vec3, vec3TransRot, vec3Zero, View } from "../../../abstract-3d.js";
1
+ import type { Vec2, Vec3, View } from "../../../abstract-3d.js";
2
+ import { vec3TransRot, vec3Zero } from "../../../abstract-3d.js";
2
3
 
3
4
  export type zOrderElement = { readonly element: string; readonly zOrder: number };
4
5
  export const zElem = (element: string, zOrder: number): zOrderElement => ({ element, zOrder });
@@ -1,16 +1,7 @@
1
- import {
2
- Box,
3
- Vec2,
4
- Vec3,
5
- vec3Scale,
6
- vec3TransRot,
7
- vec3RotCombine,
8
- vec3Zero,
9
- vec3,
10
- vec3ZMean,
11
- Material,
12
- } from "../../../abstract-3d.js";
13
- import { gray, black, zElem, zOrderElement, SvgOptions } from "./shared.js";
1
+ import type { Box, Vec2, Vec3, Material } from "../../../abstract-3d.js";
2
+ import { vec3Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3, vec3ZMean } from "../../../abstract-3d.js";
3
+ import type { zOrderElement, SvgOptions } from "./shared.js";
4
+ import { gray, black, zElem } from "./shared.js";
14
5
  import { svgPolygon } from "../svg-encoding.js";
15
6
  import { rgbGrayScale } from "../../../utils.js";
16
7
 
@@ -1,16 +1,7 @@
1
- import {
2
- Cone,
3
- Vec2,
4
- Vec3,
5
- vec3,
6
- vec3TransRot,
7
- vec3RotCombine,
8
- vec3Zero,
9
- vec3ZMean,
10
- equals,
11
- Material,
12
- } from "../../../abstract-3d.js";
13
- import { gray, stBW, zElem, zOrderElement, transparent, SvgOptions } from "./shared.js";
1
+ import type { Cone, Vec2, Vec3, Material } from "../../../abstract-3d.js";
2
+ import { vec3, vec3TransRot, vec3RotCombine, vec3Zero, vec3ZMean, equals } from "../../../abstract-3d.js";
3
+ import type { zOrderElement, SvgOptions } from "./shared.js";
4
+ import { gray, stBW, zElem, transparent } from "./shared.js";
14
5
  import { svgCircle, svgPolygon } from "../svg-encoding.js";
15
6
  import { rgbGrayScale } from "../../../utils.js";
16
7
 
@@ -1,16 +1,7 @@
1
- import {
2
- Cylinder,
3
- Vec2,
4
- Vec3,
5
- vec3,
6
- vec3TransRot,
7
- vec3RotCombine,
8
- vec3Zero,
9
- vec3ZMean,
10
- equals,
11
- Material,
12
- } from "../../../abstract-3d.js";
13
- import { gray, stBW, SvgOptions, transparent, zElem, zOrderElement } from "./shared.js";
1
+ import type { Cylinder, Vec2, Vec3, Material } from "../../../abstract-3d.js";
2
+ import { vec3, vec3TransRot, vec3RotCombine, vec3Zero, vec3ZMean, equals } from "../../../abstract-3d.js";
3
+ import type { SvgOptions, zOrderElement } from "./shared.js";
4
+ import { gray, stBW, transparent, zElem } from "./shared.js";
14
5
  import { svgCircle, svgPolygon } from "../svg-encoding.js";
15
6
  import { rgbGrayScale } from "../../../utils.js";
16
7
 
@@ -1,16 +1,10 @@
1
1
  import { createSVG } from "abstract-image";
2
- import {
3
- ImageMesh,
4
- Vec2,
5
- Vec3,
6
- vec2Scale,
7
- vec3TransRot,
8
- vec3RotCombine,
9
- vec3Zero,
10
- vec3,
11
- } from "../../../abstract-3d.js";
12
- import { zElem, zOrderElement, SvgOptions } from "./shared.js";
13
- import { EmbededImage, rawSvgPrefix, svgImage } from "../svg-encoding.js";
2
+ import type { ImageMesh, Vec2, Vec3 } from "../../../abstract-3d.js";
3
+ import { vec2Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3 } from "../../../abstract-3d.js";
4
+ import type { zOrderElement, SvgOptions } from "./shared.js";
5
+ import { zElem } from "./shared.js";
6
+ import type { EmbededImage } from "../svg-encoding.js";
7
+ import { rawSvgPrefix, svgImage } from "../svg-encoding.js";
14
8
  import { exhaustiveCheck } from "ts-exhaustive-check";
15
9
 
16
10
  export function image(
@@ -1,5 +1,7 @@
1
- import { CulledLine, Line, Vec2, Vec3, vec3TransRot, vec3ZMean } from "../../../abstract-3d.js";
2
- import { SvgOptions, zElem, zOrderElement } from "./shared.js";
1
+ import type { CulledLine, Line, Vec2, Vec3 } from "../../../abstract-3d.js";
2
+ import { vec3TransRot, vec3ZMean } from "../../../abstract-3d.js";
3
+ import type { SvgOptions, zOrderElement } from "./shared.js";
4
+ import { zElem } from "./shared.js";
3
5
  import { svgLine } from "../svg-encoding.js";
4
6
  import { rgbGrayScale } from "../../../utils.js";
5
7
 
@@ -1,17 +1,7 @@
1
- import {
2
- Plane,
3
- Vec2,
4
- Vec3,
5
- vec2Scale,
6
- vec3TransRot,
7
- vec3RotCombine,
8
- vec3Zero,
9
- vec3,
10
- vec3ZMean,
11
- Material,
12
- Hole,
13
- } from "../../../abstract-3d.js";
14
- import { gray, black, zElem, zOrderElement, SvgOptions } from "./shared.js";
1
+ import type { Plane, Vec2, Vec3, Material, Hole } from "../../../abstract-3d.js";
2
+ import { vec2Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3, vec3ZMean } from "../../../abstract-3d.js";
3
+ import type { zOrderElement, SvgOptions } from "./shared.js";
4
+ import { gray, black, zElem } from "./shared.js";
15
5
  import { svgPolygon } from "../svg-encoding.js";
16
6
  import { rgbGrayScale } from "../../../utils.js";
17
7
 
@@ -1,14 +1,7 @@
1
- import {
2
- Polygon,
3
- vec3ZMean,
4
- Vec3,
5
- Vec2,
6
- vec3TransRot,
7
- vec3RotCombine,
8
- vec3Zero,
9
- Material,
10
- } from "../../../abstract-3d.js";
11
- import { gray, zElem, zOrderElement, transparent, SvgOptions } from "./shared.js";
1
+ import type { Polygon, Vec3, Vec2, Material } from "../../../abstract-3d.js";
2
+ import { vec3ZMean, vec3TransRot, vec3RotCombine, vec3Zero } from "../../../abstract-3d.js";
3
+ import type { zOrderElement, SvgOptions } from "./shared.js";
4
+ import { gray, zElem, transparent } from "./shared.js";
12
5
  import { svgPolygon } from "../svg-encoding.js";
13
6
  import { rgbGrayScale } from "../../../utils.js";
14
7
 
@@ -1,15 +1,7 @@
1
- import {
2
- vec3ZMean,
3
- Vec3,
4
- Vec2,
5
- vec3TransRot,
6
- vec3RotCombine,
7
- Shape,
8
- vec3,
9
- vec3Zero,
10
- Material,
11
- } from "../../../abstract-3d.js";
12
- import { gray, zElem, zOrderElement, transparent, SvgOptions } from "./shared.js";
1
+ import type { Vec3, Vec2, Shape, Material } from "../../../abstract-3d.js";
2
+ import { vec3ZMean, vec3TransRot, vec3RotCombine, vec3, vec3Zero } from "../../../abstract-3d.js";
3
+ import type { zOrderElement, SvgOptions } from "./shared.js";
4
+ import { gray, zElem, transparent } from "./shared.js";
13
5
  import { svgPolygon } from "../svg-encoding.js";
14
6
  import { rgbGrayScale } from "../../../utils.js";
15
7
 
@@ -1,5 +1,7 @@
1
- import { Text, Vec2, Vec3, vec3TransRot, vec3RotCombine, vec3Zero, vec3, View, vec3Flip, rotationForCameraPos, vec3Dot, vec3Rot } from "../../../abstract-3d.js";
2
- import { svgTrsMatrix, SvgOptions, zElem, zOrderElement } from "./shared.js";
1
+ import type { Text, Vec2, Vec3 } from "../../../abstract-3d.js";
2
+ import { vec3TransRot, vec3RotCombine, vec3Zero, vec3, vec3Dot, vec3Rot } from "../../../abstract-3d.js";
3
+ import type { SvgOptions, zOrderElement } from "./shared.js";
4
+ import { svgTrsMatrix, zElem } from "./shared.js";
3
5
  import { svgText } from "../svg-encoding.js";
4
6
 
5
7
  const SVG_FORWARD: Vec3 = vec3(0.0, 0.0, 1.0);
@@ -17,14 +19,10 @@ export function text(
17
19
  const pos = vec3TransRot(t.pos, parentPos, parentRot);
18
20
  const rot = vec3RotCombine(parentRot, t.rot ?? vec3Zero);
19
21
 
20
- const textForward = vec3Rot(
21
- { x: 0, y: 0, z: 1 },
22
- vec3Zero,
23
- rot,
24
- );
22
+ const textForward = vec3Rot({ x: 0, y: 0, z: 1 }, vec3Zero, rot);
25
23
 
26
24
  //discard texts that are pointing away
27
- if(vec3Dot(textForward, SVG_FORWARD) <= SVG_DOT_OPPOSITE_THRESHOLD) {
25
+ if (vec3Dot(textForward, SVG_FORWARD) <= SVG_DOT_OPPOSITE_THRESHOLD) {
28
26
  return [];
29
27
  }
30
28
 
@@ -1,31 +1,22 @@
1
1
  import { exhaustiveCheck } from "ts-exhaustive-check";
2
+ import type { Scene, Vec3, Mesh, Vec2, Group, Material, Bounds2 } from "../../abstract-3d.js";
2
3
  import {
3
4
  vec2,
4
- Scene,
5
- Vec3,
6
- Mesh,
7
5
  vec3Rot,
8
6
  vec3Zero,
9
7
  vec3RotCombine,
10
8
  vec3,
11
- Vec2,
12
- Group,
13
9
  vec3TransRot,
14
- Material,
15
10
  rotationForCameraPos,
16
11
  sizeBoundsForCameraPos,
17
- Bounds2,
18
12
  bounds2FromPosAndSize,
19
13
  bounds2ToSize,
20
14
  bounds2Merge,
21
15
  vec2Zero,
22
16
  vec3Flip,
23
- vec2Add,
24
- View,
25
- vec3RotInverse,
26
17
  dimensionConvertToTypeMesh,
27
18
  } from "../../abstract-3d.js";
28
- import { SvgOptions, zOrderElement } from "./svg-geometries/shared.js";
19
+ import type { SvgOptions, zOrderElement } from "./svg-geometries/shared.js";
29
20
  import { box } from "./svg-geometries/svg-box.js";
30
21
  import { cylinder } from "./svg-geometries/svg-cylinder.js";
31
22
  import { line } from "./svg-geometries/svg-line.js";
@@ -34,7 +25,8 @@ import { shape } from "./svg-geometries/svg-shape.js";
34
25
  import { polygon } from "./svg-geometries/svg-polygon.js";
35
26
  import { text } from "./svg-geometries/svg-text.js";
36
27
  import { cone } from "./svg-geometries/svg-cone.js";
37
- import { calculateVisibleViews, isViewVisible, Optional } from "../../utils.js";
28
+ import type { Optional } from "../../utils.js";
29
+ import { calculateVisibleViews, isViewVisible } from "../../utils.js";
38
30
  import { svg } from "./svg-encoding.js";
39
31
  import { image } from "./svg-geometries/svg-image.js";
40
32
 
@@ -114,13 +106,17 @@ function renderInternal(
114
106
  }
115
107
  const dimOpts: SvgOptions = { ...opts, only_stroke: false, gray_scale: false };
116
108
  elements.sort((a, b) => a.zOrder - b.zOrder);
117
- const visibleViews = calculateVisibleViews(opts.view, scene.rotation_deprecated);
109
+ const visibleViews = calculateVisibleViews(opts.view, scene.rotation_deprecated);
118
110
 
119
111
  for (const dim of scene.dimensions_deprecated?.dimensions ?? []) {
120
- const d = dimensionConvertToTypeMesh(dim, scene.rotation_deprecated ?? vec3Zero, scene.dimensions_deprecated?.material);
121
- if(isViewVisible(d.views[0], visibleViews)) {
112
+ const d = dimensionConvertToTypeMesh(
113
+ dim,
114
+ scene.rotation_deprecated ?? vec3Zero,
115
+ scene.dimensions_deprecated?.material
116
+ );
117
+ if (isViewVisible(d.views[0], visibleViews)) {
122
118
  const pos = vec3TransRot(d.pos, unitCenterFlipped, unitRot);
123
- const rot = vec3RotCombine(unitRot, d.rot);
119
+ const rot = vec3RotCombine(unitRot, d.rot);
124
120
  for (const m of d.meshes) {
125
121
  elements.push(...svgMesh(m, pos, rot, point, scene.dimensions_deprecated?.material ?? { normal: "" }, dimOpts));
126
122
  }
@@ -182,4 +178,4 @@ function svgMesh(
182
178
  default:
183
179
  return exhaustiveCheck(mesh.geometry);
184
180
  }
185
- }
181
+ }
package/src/utils.ts CHANGED
@@ -1,6 +1,5 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */
2
-
3
- import { vec3, Vec3, vec3Rot, vec3Zero, View } from "./abstract-3d.js";
1
+ import type { Vec3, View } from "./abstract-3d.js";
2
+ import { vec3, vec3Rot, vec3Zero } from "./abstract-3d.js";
4
3
 
5
4
  // dummy
6
5
  export function parseRgb(color: string): { readonly r: number; readonly g: number; readonly b: number } {
@@ -153,35 +152,31 @@ export function shade(p: number, from: string, to?: string): string | undefined
153
152
 
154
153
  export function calculateVisibleViews(originalView: View, sceneRotation: Vec3 | undefined): Record<string, boolean> {
155
154
  const cameraPositionForView = (view: View): Vec3 => {
156
- switch (view) {
157
- case "front":
158
- return vec3(0, 0, 1);
159
- case "back":
160
- return vec3(0, 0, -1);
161
- case "top":
162
- return vec3(0, 1, 0);
163
- case "bottom":
164
- return vec3(0, -1, 0);
165
- case "right":
166
- return vec3(1, 0, 0);
167
- case "left":
168
- return vec3(-1, 0, 0);
155
+ switch (view) {
156
+ case "front":
157
+ return vec3(0, 0, 1);
158
+ case "back":
159
+ return vec3(0, 0, -1);
160
+ case "top":
161
+ return vec3(0, 1, 0);
162
+ case "bottom":
163
+ return vec3(0, -1, 0);
164
+ case "right":
165
+ return vec3(1, 0, 0);
166
+ case "left":
167
+ return vec3(-1, 0, 0);
169
168
  default:
170
169
  return vec3(0, 0, 1);
171
- }
172
- };
170
+ }
171
+ };
173
172
 
174
- const cam = vec3Rot(
175
- cameraPositionForView(originalView),
176
- vec3Zero,
177
- sceneRotation ?? vec3Zero
178
- );
173
+ const cam = vec3Rot(cameraPositionForView(originalView), vec3Zero, sceneRotation ?? vec3Zero);
179
174
 
180
175
  return {
181
- [cam.x >= 0 ? "right" : "left"]: originalView === "right" || originalView === "left",
182
- [cam.y >= 0 ? "top" : "bottom"]: originalView === "top" || originalView === "bottom",
183
- [cam.z >= 0 ? "front" : "back"]: originalView === "front" || originalView === "back",
184
- };
176
+ [cam.x >= 0 ? "right" : "left"]: originalView === "right" || originalView === "left",
177
+ [cam.y >= 0 ? "top" : "bottom"]: originalView === "top" || originalView === "bottom",
178
+ [cam.z >= 0 ? "front" : "back"]: originalView === "front" || originalView === "back",
179
+ };
185
180
  }
186
181
 
187
182
  export function isViewVisible(view: View | undefined, visibleViews: Record<string, boolean>): boolean {
package/src/.DS_Store DELETED
Binary file
Binary file