abstract-3d 4.1.0 → 4.1.2

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 (184) hide show
  1. package/lib/renderers/svg/svg-encoding.d.ts +0 -2
  2. package/lib/renderers/svg/svg-encoding.d.ts.map +1 -1
  3. package/lib/renderers/svg/svg-encoding.js +0 -12
  4. package/lib/renderers/svg/svg-encoding.js.map +1 -1
  5. package/lib/renderers/svg/svg-geometries/shared.d.ts +2 -19
  6. package/lib/renderers/svg/svg-geometries/shared.d.ts.map +1 -1
  7. package/lib/renderers/svg/svg-geometries/shared.js +1 -16
  8. package/lib/renderers/svg/svg-geometries/shared.js.map +1 -1
  9. package/lib/renderers/svg/svg-geometries/svg-box.d.ts.map +1 -1
  10. package/lib/renderers/svg/svg-geometries/svg-box.js +30 -44
  11. package/lib/renderers/svg/svg-geometries/svg-box.js.map +1 -1
  12. package/lib/renderers/svg/svg-geometries/svg-cone.d.ts.map +1 -1
  13. package/lib/renderers/svg/svg-geometries/svg-cone.js +3 -3
  14. package/lib/renderers/svg/svg-geometries/svg-cone.js.map +1 -1
  15. package/lib/renderers/svg/svg-geometries/svg-cylinder.d.ts.map +1 -1
  16. package/lib/renderers/svg/svg-geometries/svg-cylinder.js +6 -19
  17. package/lib/renderers/svg/svg-geometries/svg-cylinder.js.map +1 -1
  18. package/lib/renderers/svg/svg-geometries/svg-image.d.ts.map +1 -1
  19. package/lib/renderers/svg/svg-geometries/svg-image.js +2 -3
  20. package/lib/renderers/svg/svg-geometries/svg-image.js.map +1 -1
  21. package/lib/renderers/svg/svg-geometries/svg-line.d.ts.map +1 -1
  22. package/lib/renderers/svg/svg-geometries/svg-line.js +1 -3
  23. package/lib/renderers/svg/svg-geometries/svg-line.js.map +1 -1
  24. package/lib/renderers/svg/svg-geometries/svg-plane.d.ts.map +1 -1
  25. package/lib/renderers/svg/svg-geometries/svg-plane.js +2 -6
  26. package/lib/renderers/svg/svg-geometries/svg-plane.js.map +1 -1
  27. package/lib/renderers/svg/svg-geometries/svg-polygon.d.ts.map +1 -1
  28. package/lib/renderers/svg/svg-geometries/svg-polygon.js +2 -10
  29. package/lib/renderers/svg/svg-geometries/svg-polygon.js.map +1 -1
  30. package/lib/renderers/svg/svg-geometries/svg-shape.d.ts.map +1 -1
  31. package/lib/renderers/svg/svg-geometries/svg-shape.js +2 -5
  32. package/lib/renderers/svg/svg-geometries/svg-shape.js.map +1 -1
  33. package/lib/renderers/svg/svg-geometries/svg-text.js +1 -1
  34. package/lib/renderers/svg/svg-geometries/svg-text.js.map +1 -1
  35. package/lib/renderers/svg/svg-order.d.ts +5 -6
  36. package/lib/renderers/svg/svg-order.d.ts.map +1 -1
  37. package/lib/renderers/svg/svg-order.js +124 -233
  38. package/lib/renderers/svg/svg-order.js.map +1 -1
  39. package/lib/renderers/svg/svg.d.ts.map +1 -1
  40. package/lib/renderers/svg/svg.js +12 -11
  41. package/lib/renderers/svg/svg.js.map +1 -1
  42. package/lib/renderers/svg-bsp/class-names.d.ts +11 -0
  43. package/lib/renderers/svg-bsp/class-names.d.ts.map +1 -0
  44. package/lib/renderers/svg-bsp/class-names.js +11 -0
  45. package/lib/renderers/svg-bsp/class-names.js.map +1 -0
  46. package/lib/renderers/svg-bsp/index.d.ts +5 -0
  47. package/lib/renderers/svg-bsp/index.d.ts.map +1 -0
  48. package/lib/renderers/svg-bsp/index.js +4 -0
  49. package/lib/renderers/svg-bsp/index.js.map +1 -0
  50. package/lib/renderers/svg-bsp/svg-encoding.d.ts +19 -0
  51. package/lib/renderers/svg-bsp/svg-encoding.d.ts.map +1 -0
  52. package/lib/renderers/svg-bsp/svg-encoding.js +135 -0
  53. package/lib/renderers/svg-bsp/svg-encoding.js.map +1 -0
  54. package/lib/renderers/svg-bsp/svg-geometries/shared.d.ts +47 -0
  55. package/lib/renderers/svg-bsp/svg-geometries/shared.d.ts.map +1 -0
  56. package/lib/renderers/svg-bsp/svg-geometries/shared.js +45 -0
  57. package/lib/renderers/svg-bsp/svg-geometries/shared.js.map +1 -0
  58. package/lib/renderers/svg-bsp/svg-geometries/svg-box.d.ts +4 -0
  59. package/lib/renderers/svg-bsp/svg-geometries/svg-box.d.ts.map +1 -0
  60. package/lib/renderers/svg-bsp/svg-geometries/svg-box.js +58 -0
  61. package/lib/renderers/svg-bsp/svg-geometries/svg-box.js.map +1 -0
  62. package/lib/renderers/svg-bsp/svg-geometries/svg-cone.d.ts +4 -0
  63. package/lib/renderers/svg-bsp/svg-geometries/svg-cone.d.ts.map +1 -0
  64. package/lib/renderers/svg-bsp/svg-geometries/svg-cone.js +39 -0
  65. package/lib/renderers/svg-bsp/svg-geometries/svg-cone.js.map +1 -0
  66. package/lib/renderers/svg-bsp/svg-geometries/svg-cylinder.d.ts +4 -0
  67. package/lib/renderers/svg-bsp/svg-geometries/svg-cylinder.d.ts.map +1 -0
  68. package/lib/renderers/svg-bsp/svg-geometries/svg-cylinder.js +62 -0
  69. package/lib/renderers/svg-bsp/svg-geometries/svg-cylinder.js.map +1 -0
  70. package/lib/renderers/svg-bsp/svg-geometries/svg-image.d.ts +4 -0
  71. package/lib/renderers/svg-bsp/svg-geometries/svg-image.d.ts.map +1 -0
  72. package/lib/renderers/svg-bsp/svg-geometries/svg-image.js +44 -0
  73. package/lib/renderers/svg-bsp/svg-geometries/svg-image.js.map +1 -0
  74. package/lib/renderers/svg-bsp/svg-geometries/svg-line.d.ts +4 -0
  75. package/lib/renderers/svg-bsp/svg-geometries/svg-line.d.ts.map +1 -0
  76. package/lib/renderers/svg-bsp/svg-geometries/svg-line.js +12 -0
  77. package/lib/renderers/svg-bsp/svg-geometries/svg-line.js.map +1 -0
  78. package/lib/renderers/svg-bsp/svg-geometries/svg-plane.d.ts +4 -0
  79. package/lib/renderers/svg-bsp/svg-geometries/svg-plane.d.ts.map +1 -0
  80. package/lib/renderers/svg-bsp/svg-geometries/svg-plane.js +24 -0
  81. package/lib/renderers/svg-bsp/svg-geometries/svg-plane.js.map +1 -0
  82. package/lib/renderers/svg-bsp/svg-geometries/svg-polygon.d.ts +4 -0
  83. package/lib/renderers/svg-bsp/svg-geometries/svg-polygon.d.ts.map +1 -0
  84. package/lib/renderers/svg-bsp/svg-geometries/svg-polygon.js +24 -0
  85. package/lib/renderers/svg-bsp/svg-geometries/svg-polygon.js.map +1 -0
  86. package/lib/renderers/svg-bsp/svg-geometries/svg-shape.d.ts +4 -0
  87. package/lib/renderers/svg-bsp/svg-geometries/svg-shape.d.ts.map +1 -0
  88. package/lib/renderers/svg-bsp/svg-geometries/svg-shape.js +19 -0
  89. package/lib/renderers/svg-bsp/svg-geometries/svg-shape.js.map +1 -0
  90. package/lib/renderers/svg-bsp/svg-geometries/svg-text.d.ts +4 -0
  91. package/lib/renderers/svg-bsp/svg-geometries/svg-text.d.ts.map +1 -0
  92. package/lib/renderers/svg-bsp/svg-geometries/svg-text.js +26 -0
  93. package/lib/renderers/svg-bsp/svg-geometries/svg-text.js.map +1 -0
  94. package/lib/renderers/svg-bsp/svg-order.d.ts +10 -0
  95. package/lib/renderers/svg-bsp/svg-order.d.ts.map +1 -0
  96. package/lib/renderers/svg-bsp/svg-order.js +257 -0
  97. package/lib/renderers/svg-bsp/svg-order.js.map +1 -0
  98. package/lib/renderers/svg-bsp/svg.d.ts +16 -0
  99. package/lib/renderers/svg-bsp/svg.d.ts.map +1 -0
  100. package/lib/renderers/svg-bsp/svg.js +120 -0
  101. package/lib/renderers/svg-bsp/svg.js.map +1 -0
  102. package/lib/renderers/three/build/parts.d.ts +2 -1
  103. package/lib/renderers/three/build/parts.d.ts.map +1 -1
  104. package/lib/renderers/three/build/parts.js +25 -15
  105. package/lib/renderers/three/build/parts.js.map +1 -1
  106. package/package.json +6 -1
  107. package/src/renderers/svg/svg-encoding.ts +0 -13
  108. package/src/renderers/svg/svg-geometries/shared.ts +3 -31
  109. package/src/renderers/svg/svg-geometries/svg-box.ts +36 -51
  110. package/src/renderers/svg/svg-geometries/svg-cone.ts +3 -18
  111. package/src/renderers/svg/svg-geometries/svg-cylinder.ts +6 -26
  112. package/src/renderers/svg/svg-geometries/svg-image.ts +2 -3
  113. package/src/renderers/svg/svg-geometries/svg-line.ts +1 -3
  114. package/src/renderers/svg/svg-geometries/svg-plane.ts +2 -12
  115. package/src/renderers/svg/svg-geometries/svg-polygon.ts +2 -10
  116. package/src/renderers/svg/svg-geometries/svg-shape.ts +2 -11
  117. package/src/renderers/svg/svg-geometries/svg-text.ts +1 -1
  118. package/src/renderers/svg/svg.ts +12 -14
  119. package/src/renderers/svg-bsp/class-names.ts +10 -0
  120. package/src/renderers/svg-bsp/index.ts +4 -0
  121. package/src/renderers/svg-bsp/svg-encoding.ts +190 -0
  122. package/src/renderers/svg-bsp/svg-geometries/shared.ts +88 -0
  123. package/src/renderers/svg-bsp/svg-geometries/svg-box.ts +76 -0
  124. package/src/renderers/svg-bsp/svg-geometries/svg-cone.ts +68 -0
  125. package/src/renderers/svg-bsp/svg-geometries/svg-cylinder.ts +82 -0
  126. package/src/renderers/svg-bsp/svg-geometries/svg-image.ts +56 -0
  127. package/src/renderers/svg-bsp/svg-geometries/svg-line.ts +21 -0
  128. package/src/renderers/svg-bsp/svg-geometries/svg-plane.ts +43 -0
  129. package/src/renderers/svg-bsp/svg-geometries/svg-polygon.ts +33 -0
  130. package/src/renderers/svg-bsp/svg-geometries/svg-shape.ts +34 -0
  131. package/src/renderers/svg-bsp/svg-geometries/svg-text.ts +40 -0
  132. package/src/renderers/svg-bsp/svg.ts +183 -0
  133. package/src/renderers/three/build/build.test.ts +8 -4
  134. package/src/renderers/three/build/parts.ts +27 -19
  135. package/lib/renderers/dxf/color.d.ts +0 -7
  136. package/lib/renderers/dxf/color.d.ts.map +0 -1
  137. package/lib/renderers/dxf/color.js +0 -311
  138. package/lib/renderers/dxf/color.js.map +0 -1
  139. package/lib/renderers/dxf/dxf-encoding.d.ts +0 -17
  140. package/lib/renderers/dxf/dxf-encoding.d.ts.map +0 -1
  141. package/lib/renderers/dxf/dxf-encoding.js +0 -18379
  142. package/lib/renderers/dxf/dxf-encoding.js.map +0 -1
  143. package/lib/renderers/react/react-camera.d.ts +0 -71
  144. package/lib/renderers/react/react-camera.d.ts.map +0 -1
  145. package/lib/renderers/react/react-camera.js +0 -174
  146. package/lib/renderers/react/react-camera.js.map +0 -1
  147. package/lib/renderers/react/react-dimension.d.ts +0 -17
  148. package/lib/renderers/react/react-dimension.d.ts.map +0 -1
  149. package/lib/renderers/react/react-dimension.js +0 -15
  150. package/lib/renderers/react/react-dimension.js.map +0 -1
  151. package/lib/renderers/react/react-group.d.ts +0 -23
  152. package/lib/renderers/react/react-group.d.ts.map +0 -1
  153. package/lib/renderers/react/react-group.js +0 -69
  154. package/lib/renderers/react/react-group.js.map +0 -1
  155. package/lib/renderers/react/react-hotspot.d.ts +0 -27
  156. package/lib/renderers/react/react-hotspot.d.ts.map +0 -1
  157. package/lib/renderers/react/react-hotspot.js +0 -37
  158. package/lib/renderers/react/react-hotspot.js.map +0 -1
  159. package/lib/renderers/react/react-image-material.d.ts +0 -28
  160. package/lib/renderers/react/react-image-material.d.ts.map +0 -1
  161. package/lib/renderers/react/react-image-material.js +0 -81
  162. package/lib/renderers/react/react-image-material.js.map +0 -1
  163. package/lib/renderers/react/react-material.d.ts +0 -19
  164. package/lib/renderers/react/react-material.d.ts.map +0 -1
  165. package/lib/renderers/react/react-material.js +0 -39
  166. package/lib/renderers/react/react-material.js.map +0 -1
  167. package/lib/renderers/react/react-mesh.d.ts +0 -11
  168. package/lib/renderers/react/react-mesh.d.ts.map +0 -1
  169. package/lib/renderers/react/react-mesh.js +0 -337
  170. package/lib/renderers/react/react-mesh.js.map +0 -1
  171. package/lib/renderers/react/react-scene.d.ts +0 -28
  172. package/lib/renderers/react/react-scene.d.ts.map +0 -1
  173. package/lib/renderers/react/react-scene.js +0 -13
  174. package/lib/renderers/react/react-scene.js.map +0 -1
  175. package/lib/renderers/react/react-types.d.ts +0 -7
  176. package/lib/renderers/react/react-types.d.ts.map +0 -1
  177. package/lib/renderers/react/react-types.js +0 -3
  178. package/lib/renderers/react/react-types.js.map +0 -1
  179. package/lib/renderers/shared.d.ts +0 -27
  180. package/lib/renderers/shared.d.ts.map +0 -1
  181. package/lib/renderers/shared.js +0 -131
  182. package/lib/renderers/shared.js.map +0 -1
  183. /package/src/renderers/{svg → svg-bsp}/svg-order.test.ts +0 -0
  184. /package/src/renderers/{svg → svg-bsp}/svg-order.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"svg.js","sourceRoot":"","sources":["../../../src/renderers/svg/svg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"svg.js","sourceRoot":"","sources":["../../../src/renderers/svg/svg.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The classes the svg renderer puts on what it draws, for the page's CSS: `root` on the svg, e.g. sized to fill its box, `stroke` on each stroked
3
+ * element, e.g. as thick at any size by `vector-effect: non-scaling-stroke`, `image` on an embedded picture or svg. Colors and strokes are
4
+ * attributes, which a class overrides
5
+ */
6
+ export declare const classNames: {
7
+ readonly root: "a3d-root";
8
+ readonly stroke: "a3d-stroke";
9
+ readonly image: "a3d-image";
10
+ };
11
+ //# sourceMappingURL=class-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class-names.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg-bsp/class-names.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,UAAU;aACrB,IAAI,EAAE,UAAU;aAChB,MAAM,EAAE,YAAY;aACpB,KAAK,EAAE,WAAW;CACV,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The classes the svg renderer puts on what it draws, for the page's CSS: `root` on the svg, e.g. sized to fill its box, `stroke` on each stroked
3
+ * element, e.g. as thick at any size by `vector-effect: non-scaling-stroke`, `image` on an embedded picture or svg. Colors and strokes are
4
+ * attributes, which a class overrides
5
+ */
6
+ export const classNames = {
7
+ root: "a3d-root",
8
+ stroke: "a3d-stroke",
9
+ image: "a3d-image",
10
+ };
11
+ //# sourceMappingURL=class-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class-names.js","sourceRoot":"","sources":["../../../src/renderers/svg-bsp/class-names.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;CACV,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./svg.js";
2
+ export * from "./class-names.js";
3
+ export { type EmbededImage } from "./svg-encoding.js";
4
+ export type { ImageDataUri, SvgOptions, SvgView } from "./svg-geometries/shared.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg-bsp/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./svg.js";
2
+ export * from "./class-names.js";
3
+ export {} from "./svg-encoding.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/svg-bsp/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAqB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Hole, Vec2, Vec3 } from "../../abstract-3d.js";
2
+ export declare const svg: (min: Vec2, size: Vec2, children: string, className: string) => string;
3
+ export declare const svgLine: (p1: Vec2, p2: Vec2, stroke: string, strokeWidth: number) => string;
4
+ export declare function svgPolygon(rot: Vec3, points: ReadonlyArray<Vec2>, fill: string, opacity: number, stroke: string, strokeWidth: number, holes?: ReadonlyArray<Hole>, _parentPos?: Vec3): string;
5
+ export declare function svgCircle(radius: number, rot: Vec3, pos: Vec2, fill: string, opacity: number, stroke: string, strokeWidth: number, holes?: ReadonlyArray<Hole>): string;
6
+ /** A polygon's edges that are flagged, the edge from each point to the next, as one path, without a fill */
7
+ export declare function svgEdges(points: ReadonlyArray<Vec2>, edges: ReadonlyArray<boolean>, stroke: string, strokeWidth: number): string;
8
+ export declare const svgCircle2: (radius: number, pos: Vec2, fill: string, stroke: string, strokeWidth: number, _holes?: ReadonlyArray<Hole>) => string;
9
+ export declare const svgText: (text: string, matrix: string, color: string, font: string, fontSize: number) => string;
10
+ export type EmbededImage = {
11
+ readonly type: "url";
12
+ readonly url: string;
13
+ } | {
14
+ readonly type: "svg";
15
+ readonly svg: string;
16
+ };
17
+ export declare const rawSvgPrefix = "data:image/svg+xml,";
18
+ export declare const svgImage: (p: Vec2, size: Vec2, rot: Vec3, data: EmbededImage, background?: string, scale?: Vec2) => string;
19
+ //# sourceMappingURL=svg-encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-encoding.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg-bsp/svg-encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAK7D,eAAO,MAAM,GAAG,QAAS,IAAI,QAAQ,IAAI,YAAY,MAAM,aAAa,MAAM,KAAG,MAIhF,CAAC;AACF,eAAO,MAAM,OAAO,OAAQ,IAAI,MAAM,IAAI,UAAU,MAAM,eAAe,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,EAC3B,UAAU,CAAC,EAAE,IAAI,GAChB,MAAM,CASR;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,CAOR;AAmDD,4GAA4G;AAC5G,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAUhI;AAED,eAAO,MAAM,UAAU,WAAY,MAAM,OAAO,IAAI,QAAQ,MAAM,UAAU,MAAM,eAAe,MAAM,WAAW,aAAa,CAAC,IAAI,CAAC,KAAG,MAG/D,CAAC;AA6C1E,eAAO,MAAM,OAAO,SAAU,MAAM,UAAU,MAAM,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,KAAG,MACyD,CAAC;AAEhK,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3H,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAElD,eAAO,MAAM,QAAQ,MAAO,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ,YAAY,eAAe,MAAM,UAAU,IAAI,KAAG,MAchH,CAAC"}
@@ -0,0 +1,135 @@
1
+ import { bounds2FromVec2Array, vec2, vec2Add, vec2Scale, vec2Sub, vec3, vec3Rot, vec3Zero } from "../../abstract-3d.js";
2
+ import { classNames } from "./class-names.js";
3
+ import { svgTrsMatrix } from "./svg-geometries/shared.js";
4
+ export const svg = (min, size, children, className) => {
5
+ return `<svg xmlns="http://www.w3.org/2000/svg" class="${className ? `${classNames.root} ${className}` : classNames.root}" viewBox="${min.x.toFixed(0)} ${min.y.toFixed(0)} ${size.x.toFixed(0)} ${size.y.toFixed(0)}" width="${size.x.toFixed(0)}px" height="${size.y.toFixed(0)}px">${children}</svg>`;
6
+ };
7
+ export const svgLine = (p1, p2, stroke, strokeWidth) => `<line class="${classNames.stroke}" x1="${p1.x.toFixed(0)}" y1="${p1.y.toFixed(0)}" x2="${p2.x.toFixed(0)}" y2="${p2.y.toFixed(0)}" stroke="${stroke}" stroke-width="${strokeWidth}" />`;
8
+ export function svgPolygon(rot, points, fill, opacity, stroke, strokeWidth, holes, _parentPos) {
9
+ const bounds = bounds2FromVec2Array(points);
10
+ const size = vec2Sub(bounds.max, bounds.min);
11
+ const pos = vec2Scale(vec2Add(bounds.max, bounds.min), 0.5);
12
+ const [mask, maskAttribute] = svgHoleMask(rot, size, holes ?? []);
13
+ const pol = `<polygon class="${classNames.stroke}" points="${points
14
+ .reduce((a, c) => (a += `${c.x.toFixed(0)},${c.y.toFixed(0)} `), "")
15
+ .slice(0, -1)}" fill="${fill}" fill-opacity="${opacity.toFixed(1)}" stroke="${stroke}" stroke-width="${strokeWidth}" ${maskAttribute}/>`;
16
+ return mask + pol + svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth);
17
+ }
18
+ export function svgCircle(radius, rot, pos, fill, opacity, stroke, strokeWidth, holes) {
19
+ const size = vec2Scale(vec2(radius, radius), 2);
20
+ const [mask, maskAttribute] = svgHoleMask(rot, size, holes ?? []);
21
+ const cir = `<circle class="${classNames.stroke}" 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}/>`;
22
+ return mask + cir + svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth);
23
+ }
24
+ function svgStrokedHoles(pos, rot, holes, strokeColor, strokeThickness) {
25
+ if (strokeThickness <= Number.EPSILON) {
26
+ return "";
27
+ }
28
+ let svgHoles = "";
29
+ for (const hole of holes) {
30
+ const localSvg = vec3(hole.pos.x, -hole.pos.y, 0);
31
+ const rotated = vec3Rot(localSvg, vec3Zero, rot);
32
+ const holeCenter = vec2Add(vec2(pos.x, pos.y), vec2(rotated.x, rotated.y));
33
+ switch (hole.type) {
34
+ case "RoundHole": {
35
+ const matrix = svgTrsMatrix(holeCenter, vec3Zero);
36
+ svgHoles += `<circle
37
+ class="${classNames.stroke}"
38
+ r="${hole.radius.toFixed(0)}"
39
+ transform="${matrix}"
40
+ fill="none"
41
+ stroke="${strokeColor}"
42
+ stroke-width="${strokeThickness}"
43
+ />`;
44
+ break;
45
+ }
46
+ case "SquareHole": {
47
+ const half = vec2Scale(hole.size, 0.5);
48
+ const points = [vec2(-half.x, -half.y), vec2(half.x, -half.y), vec2(half.x, half.y), vec2(-half.x, half.y)]
49
+ .map((p) => `${p.x.toFixed(0)},${p.y.toFixed(0)}`)
50
+ .join(" ");
51
+ const matrix = svgTrsMatrix(holeCenter, rot);
52
+ svgHoles += `<polygon
53
+ class="${classNames.stroke}"
54
+ points="${points}"
55
+ transform="${matrix}"
56
+ fill="none"
57
+ stroke="${strokeColor}"
58
+ stroke-width="${strokeThickness}"
59
+ />`;
60
+ break;
61
+ }
62
+ default:
63
+ break;
64
+ }
65
+ }
66
+ return svgHoles;
67
+ }
68
+ /** A polygon's edges that are flagged, the edge from each point to the next, as one path, without a fill */
69
+ export function svgEdges(points, edges, stroke, strokeWidth) {
70
+ // From after an unflagged edge, so a run of edges isn't broken where the points wrap around
71
+ const start = edges.indexOf(false) + 1;
72
+ const d = points.reduce((path, _, k) => {
73
+ const i = (start + k) % points.length;
74
+ const [p, q] = [points[i], points[(i + 1) % points.length]];
75
+ const move = k > 0 && edges[(i + points.length - 1) % points.length] ? "" : `M${p.x.toFixed(0)},${p.y.toFixed(0)}`;
76
+ return edges[i] ? `${path}${move}L${q.x.toFixed(0)},${q.y.toFixed(0)}` : path;
77
+ }, "");
78
+ return `<path class="${classNames.stroke}" d="${d}" fill="none" stroke="${stroke}" stroke-width="${strokeWidth}" />`;
79
+ }
80
+ export const svgCircle2 = (radius, pos, fill, stroke, strokeWidth, _holes) => `<circle class="${classNames.stroke}" r="${radius.toFixed(0)}" cx="${pos.x.toFixed(0)}" cy="${pos.y.toFixed(0)}" fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" />`;
81
+ function svgHoleMask(rot, size, holes) {
82
+ const id = `mask_${counter()}`;
83
+ return holes.length > 0
84
+ ? [
85
+ `<mask id="${id}" mask-type="luminance" maskContentUnits="objectBoundingBox">
86
+ <rect x="0" y="0" width="1" height="1" fill="white" />
87
+ ${svgMaskHoles(rot, size, holes)}
88
+ </mask>\n`,
89
+ `mask="url(#${id}) "`,
90
+ ]
91
+ : ["", ""];
92
+ }
93
+ function svgMaskHoles(rot, size, holes) {
94
+ const holeMasks = [];
95
+ for (const hole of holes) {
96
+ const holePosRotated = vec3Rot(vec3(hole.pos.x, hole.pos.y, 0), vec3Zero, rot);
97
+ const holePos = vec2Add(holePosRotated, vec2Scale(size, 0.5));
98
+ switch (hole.type) {
99
+ case "RoundHole": {
100
+ holeMasks.push(`<ellipse cx="${holePos.x / size.x}" cy="${holePos.y / size.y}" rx="${hole.radius / size.x}" ry="${hole.radius / size.y}" fill="black" />`);
101
+ break;
102
+ }
103
+ case "SquareHole": {
104
+ const holeSizeRotated = vec3Rot(vec3(hole.size.x, hole.size.y, 0), vec3Zero, rot);
105
+ const holeSize = vec2(Math.abs(holeSizeRotated.x), Math.abs(holeSizeRotated.y));
106
+ const halfSize = vec2Scale(holeSize, 0.5);
107
+ holeMasks.push(`<rect x="${(holePos.x - halfSize.x) / size.x}" y="${(holePos.y - halfSize.y) / size.y}" width="${holeSize.x / size.x}" height="${holeSize.y / size.y}" fill="black" />`);
108
+ break;
109
+ }
110
+ default:
111
+ break;
112
+ }
113
+ }
114
+ return holeMasks.join("\n");
115
+ }
116
+ export const svgText = (text, matrix, color, font, fontSize) => `<text font-family="${font}" font-size="${fontSize}px" text-anchor="middle" alignment-baseline="middle" fill="${color}" transform="${matrix}">${text}</text>`;
117
+ export const rawSvgPrefix = "data:image/svg+xml,";
118
+ export const svgImage = (p, size, rot, data, background, scale) => {
119
+ const matrix = svgTrsMatrix(p, rot, scale);
120
+ if (data.type === "url") {
121
+ const bg = background ? `<rect width="${size.x.toFixed(0)}" height="${size.y.toFixed(0)}" fill="${background}"/>` : "";
122
+ return `<g transform="${matrix}">${bg}<image class="${classNames.image}" width="${size.x.toFixed(0)}" height="${size.y.toFixed(0)}" href="${data.url}"/></g>`;
123
+ }
124
+ // scale maps image-space coords → world coords, so the wrapper SVG and rect
125
+ // must use image-space dimensions: imgW * scale.x = size.x (the desired world size).
126
+ const imgW = scale ? size.x / scale.x : size.x;
127
+ const imgH = scale ? size.y / scale.y : size.y;
128
+ const bg = background ? `<rect width="${imgW.toFixed(0)}" height="${imgH.toFixed(0)}" fill="${background}"/>` : "";
129
+ return `<g transform="${matrix}"><svg class="${classNames.image}" width="${imgW.toFixed(0)}" height="${imgH.toFixed(0)}">${bg}${data.svg}</svg></g>`;
130
+ };
131
+ const counter = (() => {
132
+ let counter = 0;
133
+ return () => counter++;
134
+ })();
135
+ //# sourceMappingURL=svg-encoding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-encoding.js","sourceRoot":"","sources":["../../../src/renderers/svg-bsp/svg-encoding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { Vec2, Vec3, View } from "../../../abstract-3d.js";
2
+ /**
3
+ * An element and its mean depth, and the points it covers in view space (x right, y up, z toward the viewer), by which it's ordered when given,
4
+ * whether it hides what's behind it, and the style of a plain polygon, without holes, by which its pieces are drawn when it's split
5
+ */
6
+ export type zOrderElement = {
7
+ readonly element: string;
8
+ readonly zOrder: number;
9
+ readonly polygon?: ReadonlyArray<Vec3>;
10
+ readonly opaque?: boolean;
11
+ readonly style?: PolygonStyle;
12
+ };
13
+ export type PolygonStyle = {
14
+ readonly fill: string;
15
+ readonly opacity: number;
16
+ readonly stroke: string;
17
+ readonly strokeWidth: number;
18
+ };
19
+ export declare const zElem: (element: string, zOrder: number, polygon?: ReadonlyArray<Vec3>, opaque?: boolean, style?: PolygonStyle) => zOrderElement;
20
+ /** Whether a fill hides what's behind it: fully opaque, and not transparent, e.g. a sketch's default background */
21
+ export declare const isOpaque: (fill: string, opacity: number) => boolean;
22
+ /** Twice the signed area of a polygon on screen */
23
+ export declare function getArea(points: ReadonlyArray<Vec2>): number;
24
+ export declare const stBW = 0.7;
25
+ export declare const stN = 0.1;
26
+ export declare const gray = "rgb(85, 85, 85)";
27
+ export declare const white = "rgb(255, 255, 255)";
28
+ export declare const transparent = "rgba(255, 255, 255, 0)";
29
+ export declare const black = "rgb(15, 15, 15)";
30
+ export type ImageDataUri = `data:image/png;base64,${string}` | `data:image/jpeg;base64,${string}` | `data:image/svg+xml,${string}`;
31
+ /** A view, or a three-quarter one from the front's top left or top right, which shows the front foremost, the top and that side */
32
+ export type SvgView = View | "TopLeft" | "TopRight";
33
+ export type SvgOptions = {
34
+ readonly view: SvgView;
35
+ readonly stroke_thickness: number;
36
+ readonly only_stroke: boolean;
37
+ readonly gray_scale: boolean;
38
+ readonly background: string;
39
+ readonly rotation: number;
40
+ readonly imageBg: boolean;
41
+ readonly font: string;
42
+ readonly imageDataByUrl: Record<string, ImageDataUri>;
43
+ /** Its svg's class besides `classNames.root`, e.g. sized to fill its box */
44
+ readonly className: string;
45
+ };
46
+ export declare function svgTrsMatrix(translation: Vec2, rotation: Vec3, scale?: Vec2): string;
47
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/renderers/svg-bsp/svg-geometries/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AACtI,eAAO,MAAM,KAAK,YAAa,MAAM,UAAU,MAAM,YAAY,aAAa,CAAC,IAAI,CAAC,WAAW,OAAO,UAAU,YAAY,KAAG,aAM7H,CAAC;AAEH,mHAAmH;AACnH,eAAO,MAAM,QAAQ,SAAU,MAAM,WAAW,MAAM,KAAG,OAAuF,CAAC;AAEjJ,mDAAmD;AACnD,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,MAAM,CAK3D;AAED,eAAO,MAAM,IAAI,MAAM,CAAC;AACxB,eAAO,MAAM,GAAG,MAAM,CAAC;AAEvB,eAAO,MAAM,IAAI,oBAAoB,CAAC;AACtC,eAAO,MAAM,KAAK,uBAAuB,CAAC;AAC1C,eAAO,MAAM,WAAW,2BAA2B,CAAC;AACpD,eAAO,MAAM,KAAK,oBAAoB,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,yBAAyB,MAAM,EAAE,GAAG,0BAA0B,MAAM,EAAE,GAAG,sBAAsB,MAAM,EAAE,CAAC;AAEnI,mIAAmI;AACnI,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CAAC;AAEpD,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtD,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,wBAAgB,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAkBpF"}
@@ -0,0 +1,45 @@
1
+ import { vec3TransRot, vec3Zero } from "../../../abstract-3d.js";
2
+ export const zElem = (element, zOrder, polygon, opaque, style) => ({
3
+ element,
4
+ zOrder,
5
+ ...(polygon && { polygon }),
6
+ ...(opaque && { opaque }),
7
+ ...(style && { style }),
8
+ });
9
+ /** Whether a fill hides what's behind it: fully opaque, and not transparent, e.g. a sketch's default background */
10
+ export const isOpaque = (fill, opacity) => opacity >= 1 && !/^(transparent|none|rgba\(.*,\s*0(\.0*)?\s*\))$/.test(fill);
11
+ /** Twice the signed area of a polygon on screen */
12
+ export function getArea(points) {
13
+ return points.reduce((sum, p, i) => {
14
+ const q = points[(i + 1) % points.length];
15
+ return sum + p.x * q.y - q.x * p.y;
16
+ }, 0);
17
+ }
18
+ export const stBW = 0.7;
19
+ export const stN = 0.1;
20
+ export const gray = "rgb(85, 85, 85)";
21
+ export const white = "rgb(255, 255, 255)";
22
+ export const transparent = "rgba(255, 255, 255, 0)";
23
+ export const black = "rgb(15, 15, 15)";
24
+ export function svgTrsMatrix(translation, rotation, scale) {
25
+ const xRot = vec3TransRot({ x: 1, y: 0, z: 0 }, vec3Zero, rotation);
26
+ const yRot = vec3TransRot({ x: 0, y: -1, z: 0 }, vec3Zero, rotation);
27
+ const x2D = { x: xRot.x, y: -xRot.y };
28
+ const y2D = { x: yRot.x, y: -yRot.y };
29
+ const sx = scale?.x ?? 1;
30
+ const sy = scale?.y ?? 1;
31
+ const a = x2D.x * sx;
32
+ const b = x2D.y * sx;
33
+ const c = y2D.x * sy;
34
+ const d = y2D.y * sy;
35
+ const e = translation.x;
36
+ const f = translation.y;
37
+ return `matrix(${svgNum(a)} ${svgNum(b)} ${svgNum(c)} ${svgNum(d)} ${svgNum(e)} ${svgNum(f)})`;
38
+ }
39
+ const svgNum = (num) => {
40
+ if (Math.abs(num) < 1e-9) {
41
+ return "0";
42
+ }
43
+ return num.toFixed(6);
44
+ };
45
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/renderers/svg-bsp/svg-geometries/shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Box, Vec2, Vec3, Material } from "../../../abstract-3d.js";
2
+ import type { zOrderElement, SvgOptions } from "./shared.js";
3
+ export declare function box(b: Box, point: (x: number, y: number) => Vec2, material: Material, opts: SvgOptions, parentPos: Vec3, parentRot: Vec3): ReadonlyArray<zOrderElement>;
4
+ //# sourceMappingURL=svg-box.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-box.d.ts","sourceRoot":"","sources":["../../../../src/renderers/svg-bsp/svg-geometries/svg-box.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIzE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG7D,wBAAgB,GAAG,CACjB,CAAC,EAAE,GAAG,EACN,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,EACrC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,GACd,aAAa,CAAC,aAAa,CAAC,CAiC9B"}
@@ -0,0 +1,58 @@
1
+ import { vec3Scale, vec3TransRot, vec3RotCombine, vec3Zero, vec3, vec3ZMean } from "../../../abstract-3d.js";
2
+ import { rgbGrayScale } from "../../../utils.js";
3
+ import { svgPolygon } from "../svg-encoding.js";
4
+ import { gray, black, zElem, getArea, isOpaque } from "./shared.js";
5
+ export function box(b, point, material, opts, parentPos, parentRot) {
6
+ const half = vec3Scale(b.size, 0.5);
7
+ const pos = vec3TransRot(b.pos, parentPos, parentRot);
8
+ const rot = vec3RotCombine(parentRot, b.rot ?? vec3Zero);
9
+ const corners = unitCorners.map((c) => vec3TransRot(vec3(c.x * half.x, c.y * half.y, c.z * half.z), pos, rot));
10
+ const color = material.normal;
11
+ const opacity = material.opacity ?? 1.0;
12
+ const [strokeColor, fill, strokeUse] = opts.only_stroke
13
+ ? [opts.gray_scale ? gray : color, opts.background, opts.stroke_thickness]
14
+ : [black, opts.gray_scale ? rgbGrayScale(color) : color, 0];
15
+ const opaque = isOpaque(fill, opacity);
16
+ return faces.flatMap(([one, other], i) => {
17
+ const polygon = (one.reduce((z, c) => z + corners[c].z, 0) > other.reduce((z, c) => z + corners[c].z, 0) ? one : other).map((c) => corners[c]);
18
+ const points = polygon.map((c) => point(c.x, c.y));
19
+ // Seen edge on, a face is only a line along the edges of the box's other faces
20
+ if (Math.abs(getArea(points)) < minArea) {
21
+ return [];
22
+ }
23
+ // Only the front and back have holes, which show what's behind them
24
+ const holes = i === 0 ? b.holes : undefined;
25
+ const plain = !holes?.length;
26
+ return [
27
+ zElem(svgPolygon(rot, points, fill, opacity, strokeColor, strokeUse, holes), vec3ZMean(...polygon), polygon, opaque && plain, plain ? { fill, opacity, stroke: strokeColor, strokeWidth: strokeUse } : undefined),
28
+ ];
29
+ });
30
+ }
31
+ const unitCorners = [
32
+ vec3(-1, -1, 1),
33
+ vec3(1, -1, 1),
34
+ vec3(1, 1, 1),
35
+ vec3(-1, 1, 1),
36
+ vec3(-1, -1, -1),
37
+ vec3(1, -1, -1),
38
+ vec3(1, 1, -1),
39
+ vec3(-1, 1, -1),
40
+ ];
41
+ /** Pairs of opposite faces by their corners, front and back, top and bottom, right and left, of which the one toward the viewer is drawn */
42
+ const faces = [
43
+ [
44
+ [0, 1, 2, 3],
45
+ [4, 5, 6, 7],
46
+ ],
47
+ [
48
+ [7, 6, 2, 3],
49
+ [4, 5, 1, 0],
50
+ ],
51
+ [
52
+ [5, 1, 2, 6],
53
+ [4, 0, 3, 7],
54
+ ],
55
+ ];
56
+ /** Of a face on screen, in the scene's units squared, below which it's seen edge on */
57
+ const minArea = 1e-6;
58
+ //# sourceMappingURL=svg-box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-box.js","sourceRoot":"","sources":["../../../../src/renderers/svg-bsp/svg-geometries/svg-box.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Cone, Vec2, Vec3, Material } from "../../../abstract-3d.js";
2
+ import type { zOrderElement, SvgOptions } from "./shared.js";
3
+ export declare function cone(c: Cone, point: (x: number, y: number) => Vec2, material: Material, opts: SvgOptions, parentPos: Vec3, parentRot: Vec3): ReadonlyArray<zOrderElement>;
4
+ //# sourceMappingURL=svg-cone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-cone.d.ts","sourceRoot":"","sources":["../../../../src/renderers/svg-bsp/svg-geometries/svg-cone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAI1E,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG7D,wBAAgB,IAAI,CAClB,CAAC,EAAE,IAAI,EACP,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,EACrC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,GACd,aAAa,CAAC,aAAa,CAAC,CAqD9B"}
@@ -0,0 +1,39 @@
1
+ import { vec3, vec3TransRot, vec3RotCombine, vec3Zero, vec3ZMean, equals } from "../../../abstract-3d.js";
2
+ import { rgbGrayScale } from "../../../utils.js";
3
+ import { svgCircle, svgPolygon } from "../svg-encoding.js";
4
+ import { gray, isOpaque, stBW, zElem, transparent } from "./shared.js";
5
+ export function cone(c, point, material, opts, parentPos, parentRot) {
6
+ const half = vec3(c.radius, c.length / 2, c.radius);
7
+ const pos = vec3TransRot(c.pos, parentPos, parentRot);
8
+ const rot = vec3RotCombine(parentRot, c.rot ?? vec3Zero);
9
+ const vec3tr = (p) => vec3TransRot(p, pos, rot);
10
+ const color = material.normal;
11
+ const opacity = material.opacity ?? 1.0;
12
+ const [stroke, fill] = opts.only_stroke
13
+ ? [opts.gray_scale ? gray : color, opts.background]
14
+ : [transparent, opts.gray_scale ? rgbGrayScale(color) : color];
15
+ const zOrderComponents = Array();
16
+ const sides = 8;
17
+ const angleStep = (2 * Math.PI) / sides;
18
+ let currentAngle = 0;
19
+ const topPos = vec3tr(vec3(0, half.y, 0));
20
+ const botVec3Array = Array();
21
+ for (let i = 0; i <= sides; i++) {
22
+ const currBot = vec3tr(vec3(0 + Math.sin(currentAngle) * c.radius, -half.y, 0 + Math.cos(currentAngle) * c.radius));
23
+ botVec3Array.push(currBot);
24
+ if (i !== 0) {
25
+ const prevBot = botVec3Array[i - 1];
26
+ const points = [point(currBot.x, currBot.y), point(prevBot.x, prevBot.y), point(topPos.x, topPos.y), point(topPos.x, topPos.y)];
27
+ zOrderComponents.push(zElem(svgPolygon(rot, points, fill, opacity, stroke, stBW), vec3ZMean(currBot, prevBot, topPos), [currBot, prevBot, topPos], isOpaque(fill, opacity), { fill, opacity, stroke, strokeWidth: stBW }));
28
+ }
29
+ currentAngle += angleStep;
30
+ }
31
+ // Add circle if direcly facing camera
32
+ const cylTop = vec3tr(vec3(0, half.y, 0));
33
+ const cylBottom = vec3tr(vec3(0, -half.y, 0));
34
+ if (equals(cylTop.x, cylBottom.x, 0.1) && equals(cylTop.y, cylBottom.y, 0.1)) {
35
+ zOrderComponents.push(zElem(svgCircle(c.radius, rot, point(cylBottom.x, cylBottom.y), fill, opacity, stroke, stBW), cylBottom.z, botVec3Array, isOpaque(fill, opacity)));
36
+ }
37
+ return zOrderComponents;
38
+ }
39
+ //# sourceMappingURL=svg-cone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-cone.js","sourceRoot":"","sources":["../../../../src/renderers/svg-bsp/svg-geometries/svg-cone.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,UAAU,IAAI,CAClB,CAAO,EACP,KAAqC,EACrC,QAAkB,EAClB,IAAgB,EAChB,SAAe,EACf,SAAe;IAEf,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACpD,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,CAAO,EAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE5D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,GAAG,CAAC;IACxC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW;QACrC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;QACnD,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,gBAAgB,GAAG,KAAK,EAAiB,CAAC;IAEhD,MAAM,KAAK,GAAG,CAAC,CAAC;IAChB,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IACxC,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,KAAK,EAAQ,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACpH,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;YACrC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAChI,gBAAgB,CAAC,IAAI,CACnB,KAAK,CACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EACpD,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EACnC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,EACvB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAC7C,CACF,CAAC;QACJ,CAAC;QACD,YAAY,IAAI,SAAS,CAAC;IAC5B,CAAC;IAED,sCAAsC;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7E,gBAAgB,CAAC,IAAI,CACnB,KAAK,CACH,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EACtF,SAAS,CAAC,CAAC,EACX,YAAY,EACZ,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CACxB,CACF,CAAC;IACJ,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Cylinder, Vec2, Vec3, Material } from "../../../abstract-3d.js";
2
+ import type { SvgOptions, zOrderElement } from "./shared.js";
3
+ export declare function cylinder(c: Cylinder, point: (x: number, y: number) => Vec2, material: Material, opts: SvgOptions, parentPos: Vec3, parentRot: Vec3): ReadonlyArray<zOrderElement>;
4
+ //# sourceMappingURL=svg-cylinder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-cylinder.d.ts","sourceRoot":"","sources":["../../../../src/renderers/svg-bsp/svg-geometries/svg-cylinder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAI9E,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG7D,wBAAgB,QAAQ,CACtB,CAAC,EAAE,QAAQ,EACX,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,EACrC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,GACd,aAAa,CAAC,aAAa,CAAC,CAmE9B"}
@@ -0,0 +1,62 @@
1
+ import { vec3, vec3TransRot, vec3RotCombine, vec3Zero, vec3ZMean, equals } from "../../../abstract-3d.js";
2
+ import { rgbGrayScale } from "../../../utils.js";
3
+ import { svgCircle, svgPolygon } from "../svg-encoding.js";
4
+ import { getArea, gray, isOpaque, stBW, transparent, zElem } from "./shared.js";
5
+ export function cylinder(c, point, material, opts, parentPos, parentRot) {
6
+ const half = c.length / 2;
7
+ const radiusEnd = c.radiusEnd ?? c.radius;
8
+ const pos = vec3TransRot(c.pos, parentPos, parentRot);
9
+ const rot = vec3RotCombine(parentRot, c.rot ?? vec3Zero);
10
+ const vec3tr = (p) => vec3TransRot(p, pos, rot);
11
+ const color = material.normal;
12
+ const opacity = material.opacity ?? 1.0;
13
+ const [stroke, fill] = opts.only_stroke
14
+ ? [opts.gray_scale ? gray : color, opts.background]
15
+ : [transparent, opts.gray_scale ? rgbGrayScale(color) : color];
16
+ const opaque = isOpaque(fill, opacity);
17
+ const style = { fill, opacity, stroke, strokeWidth: stBW };
18
+ // A closed opaque cylinder's facets turned away are hidden by those toward the viewer and its near end
19
+ const cullBack = opaque && !c.open;
20
+ const zOrderComponents = Array();
21
+ const sides = 8;
22
+ const angleStep = (2 * Math.PI) / sides;
23
+ let currentAngle = 0;
24
+ const botVec3Array = Array();
25
+ const topVec3Array = Array();
26
+ for (let i = 0; i <= sides; i++) {
27
+ const sin = Math.sin(currentAngle);
28
+ const cos = Math.cos(currentAngle);
29
+ const currBot = vec3tr(vec3(sin * c.radius, -half, cos * c.radius));
30
+ const currTop = vec3tr(vec3(sin * radiusEnd, half, cos * radiusEnd));
31
+ botVec3Array.push(currBot);
32
+ topVec3Array.push(currTop);
33
+ const mid = currentAngle - angleStep / 2;
34
+ if (i !== 0 && !(cullBack && vec3TransRot(vec3(Math.sin(mid), 0, Math.cos(mid)), vec3Zero, rot).z < -1e-6)) {
35
+ const prevBot = botVec3Array[i - 1];
36
+ const prevTop = topVec3Array[i - 1];
37
+ const points = [point(currBot.x, currBot.y), point(prevBot.x, prevBot.y), point(prevTop.x, prevTop.y), point(currTop.x, currTop.y)];
38
+ const polygon = [currBot, prevBot, prevTop, currTop];
39
+ zOrderComponents.push(zElem(svgPolygon(rot, points, fill, opacity, stroke, stBW), vec3ZMean(...polygon), polygon, opaque, style));
40
+ }
41
+ currentAngle += angleStep;
42
+ }
43
+ if (!c.open) {
44
+ // The near end: a circle when directly facing the camera, else seen at an angle, its ring of facet corners
45
+ const circleTop = vec3tr(vec3(0, half, 0));
46
+ const circleBottom = vec3tr(vec3(0, -half, 0));
47
+ const [circlePos, circleRadius, ring] = circleTop.z > circleBottom.z ? [circleTop, radiusEnd, topVec3Array] : [circleBottom, c.radius, botVec3Array];
48
+ if (equals(circleTop.x, circleBottom.x, 0.1) && equals(circleTop.y, circleBottom.y, 0.1)) {
49
+ const holes = radiusEnd === c.radius ? c.holes : undefined;
50
+ zOrderComponents.push(zElem(svgCircle(circleRadius, rot, point(circlePos.x, circlePos.y), fill, opacity, stroke, stBW, holes), circlePos.z, ring, opaque && !holes?.length));
51
+ }
52
+ else {
53
+ const points = ring.map((p) => point(p.x, p.y));
54
+ // Not seen edge on, when it's only a line along the facets' edges
55
+ if (Math.abs(getArea(points)) >= 1e-6) {
56
+ zOrderComponents.push(zElem(svgPolygon(rot, points, fill, opacity, stroke, stBW), circlePos.z, ring, opaque && !c.holes?.length, style));
57
+ }
58
+ }
59
+ }
60
+ return zOrderComponents;
61
+ }
62
+ //# sourceMappingURL=svg-cylinder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-cylinder.js","sourceRoot":"","sources":["../../../../src/renderers/svg-bsp/svg-geometries/svg-cylinder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ImageMesh, Vec2, Vec3 } from "../../../abstract-3d.js";
2
+ import type { zOrderElement, SvgOptions } from "./shared.js";
3
+ export declare function image(i: ImageMesh, point: (x: number, y: number) => Vec2, opts: SvgOptions, parentPos: Vec3, parentRot: Vec3): ReadonlyArray<zOrderElement>;
4
+ //# sourceMappingURL=svg-image.d.ts.map