abstract-3d 4.0.1 → 4.0.3

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.
@@ -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/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/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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./svg.js";
2
+ export * from "./class-names.js";
2
3
  export { type EmbededImage } from "./svg-encoding.js";
3
4
  export type { ImageDataUri, SvgOptions, SvgView } from "./svg-geometries/shared.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/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"}
@@ -1,3 +1,4 @@
1
1
  export * from "./svg.js";
2
+ export * from "./class-names.js";
2
3
  export {} from "./svg-encoding.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/svg/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAqB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderers/svg/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAqB,MAAM,mBAAmB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { Hole, Vec2, Vec3 } from "../../abstract-3d.js";
2
- export declare const svg: (min: Vec2, size: Vec2, children: string) => string;
2
+ export declare const svg: (min: Vec2, size: Vec2, children: string, className: string) => string;
3
3
  export declare const svgLine: (p1: Vec2, p2: Vec2, stroke: string, strokeWidth: number) => string;
4
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
5
  export declare function svgCircle(radius: number, rot: Vec3, pos: Vec2, fill: string, opacity: number, stroke: string, strokeWidth: number, holes?: ReadonlyArray<Hole>): string;
@@ -1 +1 @@
1
- {"version":3,"file":"svg-encoding.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/svg-encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAI7D,eAAO,MAAM,GAAG,QAAS,IAAI,QAAQ,IAAI,YAAY,MAAM,KAAG,MAI7D,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;AAiDD,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"}
1
+ {"version":3,"file":"svg-encoding.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/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,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"}
@@ -1,15 +1,16 @@
1
1
  import { bounds2FromVec2Array, vec2, vec2Add, vec2Scale, vec2Sub, vec3, vec3Rot, vec3Zero } from "../../abstract-3d.js";
2
+ import { classNames } from "./class-names.js";
2
3
  import { svgTrsMatrix } from "./svg-geometries/shared.js";
3
- export const svg = (min, size, children) => {
4
- return `<svg xmlns="http://www.w3.org/2000/svg" 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>`;
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>`;
5
6
  };
6
- export const svgLine = (p1, p2, stroke, strokeWidth) => `<line 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}" />`;
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}" />`;
7
8
  export function svgPolygon(rot, points, fill, opacity, stroke, strokeWidth, holes, _parentPos) {
8
9
  const bounds = bounds2FromVec2Array(points);
9
10
  const size = vec2Sub(bounds.max, bounds.min);
10
11
  const pos = vec2Scale(vec2Add(bounds.max, bounds.min), 0.5);
11
12
  const [mask, maskAttribute] = svgHoleMask(rot, size, holes ?? []);
12
- const pol = `<polygon points="${points
13
+ const pol = `<polygon class="${classNames.stroke}" points="${points
13
14
  .reduce((a, c) => (a += `${c.x.toFixed(0)},${c.y.toFixed(0)} `), "")
14
15
  .slice(0, -1)}" fill="${fill}" fill-opacity="${opacity.toFixed(1)}" stroke="${stroke}" stroke-width="${strokeWidth}" ${maskAttribute}/>`;
15
16
  return mask + pol + svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth);
@@ -17,7 +18,7 @@ export function svgPolygon(rot, points, fill, opacity, stroke, strokeWidth, hole
17
18
  export function svgCircle(radius, rot, pos, fill, opacity, stroke, strokeWidth, holes) {
18
19
  const size = vec2Scale(vec2(radius, radius), 2);
19
20
  const [mask, maskAttribute] = svgHoleMask(rot, size, holes ?? []);
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}/>`;
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}/>`;
21
22
  return mask + cir + svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth);
22
23
  }
23
24
  function svgStrokedHoles(pos, rot, holes, strokeColor, strokeThickness) {
@@ -33,6 +34,7 @@ function svgStrokedHoles(pos, rot, holes, strokeColor, strokeThickness) {
33
34
  case "RoundHole": {
34
35
  const matrix = svgTrsMatrix(holeCenter, vec3Zero);
35
36
  svgHoles += `<circle
37
+ class="${classNames.stroke}"
36
38
  r="${hole.radius.toFixed(0)}"
37
39
  transform="${matrix}"
38
40
  fill="none"
@@ -48,6 +50,7 @@ function svgStrokedHoles(pos, rot, holes, strokeColor, strokeThickness) {
48
50
  .join(" ");
49
51
  const matrix = svgTrsMatrix(holeCenter, rot);
50
52
  svgHoles += `<polygon
53
+ class="${classNames.stroke}"
51
54
  points="${points}"
52
55
  transform="${matrix}"
53
56
  fill="none"
@@ -62,7 +65,7 @@ function svgStrokedHoles(pos, rot, holes, strokeColor, strokeThickness) {
62
65
  }
63
66
  return svgHoles;
64
67
  }
65
- 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}" />`;
68
+ 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}" />`;
66
69
  function svgHoleMask(rot, size, holes) {
67
70
  const id = `mask_${counter()}`;
68
71
  return holes.length > 0
@@ -104,14 +107,14 @@ export const svgImage = (p, size, rot, data, background, scale) => {
104
107
  const matrix = svgTrsMatrix(p, rot, scale);
105
108
  if (data.type === "url") {
106
109
  const bg = background ? `<rect width="${size.x.toFixed(0)}" height="${size.y.toFixed(0)}" fill="${background}"/>` : "";
107
- return `<g transform="${matrix}">${bg}<image width="${size.x.toFixed(0)}" height="${size.y.toFixed(0)}" href="${data.url}"/></g>`;
110
+ return `<g transform="${matrix}">${bg}<image class="${classNames.image}" width="${size.x.toFixed(0)}" height="${size.y.toFixed(0)}" href="${data.url}"/></g>`;
108
111
  }
109
112
  // scale maps image-space coords → world coords, so the wrapper SVG and rect
110
113
  // must use image-space dimensions: imgW * scale.x = size.x (the desired world size).
111
114
  const imgW = scale ? size.x / scale.x : size.x;
112
115
  const imgH = scale ? size.y / scale.y : size.y;
113
116
  const bg = background ? `<rect width="${imgW.toFixed(0)}" height="${imgH.toFixed(0)}" fill="${background}"/>` : "";
114
- return `<g transform="${matrix}"><svg width="${imgW.toFixed(0)}" height="${imgH.toFixed(0)}">${bg}${data.svg}</svg></g>`;
117
+ return `<g transform="${matrix}"><svg class="${classNames.image}" width="${imgW.toFixed(0)}" height="${imgH.toFixed(0)}">${bg}${data.svg}</svg></g>`;
115
118
  };
116
119
  const counter = (() => {
117
120
  let counter = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"svg-encoding.js","sourceRoot":"","sources":["../../../src/renderers/svg/svg-encoding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"svg-encoding.js","sourceRoot":"","sources":["../../../src/renderers/svg/svg-encoding.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,8 @@ export type SvgOptions = {
33
33
  readonly imageBg: boolean;
34
34
  readonly font: string;
35
35
  readonly imageDataByUrl: Record<string, ImageDataUri>;
36
+ /** Its svg's class besides `classNames.root`, e.g. sized to fill its box */
37
+ readonly className: string;
36
38
  };
37
39
  export declare function svgTrsMatrix(translation: Vec2, rotation: Vec3, scale?: Vec2): string;
38
40
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/renderers/svg/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;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACrJ,eAAO,MAAM,KAAK,YAAa,MAAM,UAAU,MAAM,YAAY,aAAa,CAAC,IAAI,CAAC,WAAW,OAAO,KAAG,aAKvG,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,4IAA4I;AAC5I,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;CACvD,CAAC;AAEF,wBAAgB,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAkBpF"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/renderers/svg/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;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACrJ,eAAO,MAAM,KAAK,YAAa,MAAM,UAAU,MAAM,YAAY,aAAa,CAAC,IAAI,CAAC,WAAW,OAAO,KAAG,aAKvG,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,4IAA4I;AAC5I,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/renderers/svg/svg-geometries/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAOjE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,MAAc,EAAE,OAA6B,EAAE,MAAgB,EAAiB,EAAE,CAAC,CAAC;IACzH,OAAO;IACP,MAAM;IACN,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC,CAAC;AAEH,mHAAmH;AACnH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,OAAe,EAAW,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,gDAAgD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEjJ,mDAAmD;AACnD,MAAM,UAAU,OAAO,CAAC,MAA2B;IACjD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC;QAC3C,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC;AACxB,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC;AAEvB,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAC;AACtC,MAAM,CAAC,MAAM,KAAK,GAAG,oBAAoB,CAAC;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,wBAAwB,CAAC;AACpD,MAAM,CAAC,MAAM,KAAK,GAAG,iBAAiB,CAAC;AAoBvC,MAAM,UAAU,YAAY,CAAC,WAAiB,EAAE,QAAc,EAAE,KAAY;IAC1E,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAErE,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IAEtC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACrB,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAExB,OAAO,UAAU,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;AACjG,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,GAAW,EAAU,EAAE;IACrC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/renderers/svg/svg-geometries/shared.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/svg.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAc,IAAI,EAA4B,MAAM,sBAAsB,CAAC;AAiB9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,4BAA4B,CAAC;AAY5E,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,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,CAkB7G;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,CAShF"}
1
+ {"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/svg.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAc,IAAI,EAA4B,MAAM,sBAAsB,CAAC;AAiB9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,4BAA4B,CAAC;AAY5E,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,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,CAmB7G;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,CAUhF"}
@@ -23,12 +23,12 @@ export function renderScenes(scenes, baseOptions) {
23
23
  }
24
24
  const mergedBounds = bounds2Merge(...bounds);
25
25
  const size = bounds2ToSize(mergedBounds);
26
- const image = svg(mergedBounds.min, size, allElements.reduce((a, { element }) => `${a} ${element}`, ""));
26
+ const image = svg(mergedBounds.min, size, allElements.reduce((a, { element }) => `${a} ${element}`, ""), baseOptions?.className ?? "");
27
27
  return { image, width: size.x, height: size.y };
28
28
  }
29
29
  export function render(scene, options) {
30
30
  const { elements, size, center } = renderInternal(scene, options, vec2Zero);
31
- const image = svg(vec2(center.x - size.x / 2, center.y - size.y / 2), size, elements.reduce((a, { element }) => `${a} ${element}`, ""));
31
+ const image = svg(vec2(center.x - size.x / 2, center.y - size.y / 2), size, elements.reduce((a, { element }) => `${a} ${element}`, ""), options?.className ?? "");
32
32
  return { image, width: size.x, height: size.y };
33
33
  }
34
34
  function renderInternal(scene, options, offset) {
@@ -42,6 +42,7 @@ function renderInternal(scene, options, offset) {
42
42
  imageDataByUrl: options?.imageDataByUrl ?? {},
43
43
  rotation: options?.rotation ?? 0,
44
44
  imageBg: options?.imageBg ?? false,
45
+ className: options?.className ?? "",
45
46
  };
46
47
  // Isometric: the front turned 45° to show the side, and tilted by arctan(1/√2) to show the top, so the three axes are foreshortened alike
47
48
  const isometric = opts.view === "TopLeft" || opts.view === "TopRight";
@@ -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":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAU/C,MAAM,UAAU,YAAY,CAAC,MAA+B,EAAE,WAAkC;IAC9F,MAAM,WAAW,GAAG,KAAK,EAAiB,CAAC;IAC3C,MAAM,MAAM,GAAG,KAAK,EAAW,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7G,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,CACf,YAAY,CAAC,GAAG,EAChB,IAAI,EACJ,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,EAAE,EAAE,CAAC,EAC7D,WAAW,EAAE,SAAS,IAAI,EAAE,CAC7B,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAY,EAAE,OAA8B;IACjE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE5E,MAAM,KAAK,GAAG,GAAG,CACf,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAClD,IAAI,EACJ,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,EAAE,EAAE,CAAC,EAC1D,OAAO,EAAE,SAAS,IAAI,EAAE,CACzB,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CACrB,KAAY,EACZ,OAAyC,EACzC,MAAY;IAMZ,MAAM,IAAI,GAAe;QACvB,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO;QAC9B,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,IAAI,CAAC;QAChD,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,KAAK;QAC1C,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,KAAK;QACxC,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,qBAAqB;QACxD,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE;QACzB,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,EAAE;QAC7C,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK;QAClC,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;KACpC,CAAC;IACF,0IAA0I;IAC1I,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;IACtE,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7C,MAAM,YAAY,GAAG,SAAS;QAC5B,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACxH,CAAC,CAAC,QAAQ,CAAC;IACb,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnH,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,mBAAmB,IAAI,QAAQ,CAAC,CAAC;IAE/E,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrF,MAAM,CAAC,QAAQ,CAAC,GAAG,sBAAsB,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzG,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACzG,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvH,MAAM,OAAO,GAAe,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC/E,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAE5E,0CAA0C;IAC1C,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QACnF,MAAM,CAAC,GAAG,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,mBAAmB,IAAI,QAAQ,EAAE,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;QACxH,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,qBAAqB,EAAE,QAAQ,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YAClH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,QAAQ,CAAC,CAAQ,EAAE,SAAe,EAAE,SAAe,EAAE,KAAqC,EAAE,IAAgB;IACnH,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,QAAQ,GAAG,KAAK,EAAiB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CACd,IAAU,EACV,SAAe,EACf,SAAe,EACf,KAAqC,EACrC,QAAkB,EAClB,IAAgB;IAEhB,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3B,KAAK,KAAK;YACR,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACzE,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9E,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1E,KAAK,YAAY,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACjF,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7E,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACjF,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;QACZ;YACE,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../../../../src/renderers/three/build/materials.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,QAAQ,EACb,iBAAiB,EAKjB,KAAK,OAAO,EAEb,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,KAAK,EAAgB,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGhF,qGAAqG;AAErG;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,GAAG,QAAQ,CAWpF;AAwHD,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,iBAAiB,CAElH;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,GAAG,SAAS,EAAE,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,CAGnJ;AAED,iIAAiI;AACjI,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAErD,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAU1E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAKzD"}
1
+ {"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../../../../src/renderers/three/build/materials.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,QAAQ,EACb,iBAAiB,EAKjB,KAAK,OAAO,EAEb,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,KAAK,EAAgB,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGhF,qGAAqG;AAErG;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,GAAG,QAAQ,CAWpF;AAuHD,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,iBAAiB,CAElH;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,GAAG,SAAS,EAAE,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,CAGnJ;AAED,iIAAiI;AACjI,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAErD,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAU1E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAKzD"}
@@ -21,18 +21,17 @@ export function createClassMaterial(c, reflections) {
21
21
  /** The most metalness without reflections */
22
22
  const plainMetalness = 0.25;
23
23
  /**
24
- * The physical finish of each type of surface, in the material's color: metals reflect their color; galvanized and aluminum sheet keep some of their
25
- * color diffuse, so faces that mirror the studio's dark surroundings aren't black; the others are dielectrics with a white reflection; painted sheet
26
- * has a light clearcoat, fabric a soft sheen. Glass is a thin, smooth, mostly see-through surface, not refracting, which would render the scene once
27
- * more each frame
24
+ * The physical finish of each type of surface, in the material's color: metals reflect their color; the others are dielectrics with a white
25
+ * reflection; painted sheet has a full, soft clearcoat, fabric a soft sheen. Glass is a thin, smooth, mostly see-through surface, not refracting,
26
+ * which would render the scene once more each frame
28
27
  */
29
28
  const finishes = {
30
- painted: { metalness: 0, roughness: 0.45, clearcoat: 0.3, clearcoatRoughness: 0.25 },
31
- galvanized: { metalness: 0.6, roughness: 0.6 },
32
- aluminum: { metalness: 0.7, roughness: 0.45 },
33
- stainless: { metalness: 1, roughness: 0.3 },
34
- copper: { metalness: 1, roughness: 0.35 },
35
- plastic: { metalness: 0, roughness: 0.55 },
29
+ painted: { metalness: 0, roughness: 0.3, clearcoat: 1, clearcoatRoughness: 0.5 },
30
+ galvanized: { metalness: 1, roughness: 0.35 },
31
+ aluminum: { metalness: 1, roughness: 0.4 },
32
+ stainless: { metalness: 1, roughness: 0.2 },
33
+ copper: { metalness: 1, roughness: 0.25 },
34
+ plastic: { metalness: 0, roughness: 0.4 },
36
35
  rubber: { metalness: 0, roughness: 0.9 },
37
36
  fabric: { metalness: 0, roughness: 1, sheen: 1, sheenRoughness: 0.8, sheenColor: 0x888888 },
38
37
  glass: { metalness: 0, roughness: 0.05, specularIntensity: 1 },
@@ -1 +1 @@
1
- {"version":3,"file":"materials.js","sourceRoot":"","sources":["../../../../src/renderers/three/build/materials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materials.js","sourceRoot":"","sources":["../../../../src/renderers/three/build/materials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,aAAa,EACb,UAAU,EACV,SAAS,EACT,YAAY,EACZ,wBAAwB,EAExB,iBAAiB,EACjB,oBAAoB,EAEpB,oBAAoB,EACpB,cAAc,EAEd,aAAa,GACd,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qGAAqG;AAErG;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAgB,EAAE,WAAoB;IACxE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IACxF,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChF,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI;QACrB,CAAC,CAAC,IAAI,oBAAoB,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC;QACxI,CAAC,CAAC,IAAI,oBAAoB,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9I,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,6CAA6C;AAC7C,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B;;;;GAIG;AACH,MAAM,QAAQ,GAAyD;IACrE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE;IAChF,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IAC7C,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;IAC1C,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;IAC3C,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IACzC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;IACzC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;IACxC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE;IAC3F,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE;CAC/D,CAAC;AAEF;;;;;GAKG;AACH,SAAS,UAAU,CAAC,MAAwD;IAC1E,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;SACtC,OAAO,CACN,mBAAmB,EACnB;;;;;;2BAMqB,CACtB;SACA,OAAO,CACN,4BAA4B,EAC5B;;;;;;;;;;;;;kCAa4B,CAC7B,CAAC;IACJ,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc;SAC1C,OAAO,CACN,mBAAmB,EACnB;;;;;2BAKqB,CACtB;SACA,OAAO,CACN,iCAAiC,EACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BJ,CACG;SACA,OAAO,CACN,2BAA2B,EAC3B;;;;8CAIwC,CACzC;SACA,OAAO,CACN,2CAA2C,EAC3C;;;;;;OAMC,CACF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,eAAoC,EAAE,YAAqB;IAC7F,OAAO,IAAI,iBAAiB,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AACzI,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,aAAwC,EAAE,mBAAuD;IACzI,MAAM,QAAQ,GAAG,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9F,OAAO,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,sBAAsB,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnH,CAAC;AAMD,MAAM,UAAU,WAAW,CAAC,KAAmB,EAAE,GAAW;IAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClG,MAAM,KAAK,GAAiB,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;IAC3G,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAmB;IACjD,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;AACnC,MAAM,OAAO,GAAG,GAAG,CAAC;AAEpB,8HAA8H;AAC9H,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IAC1B,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CACxB,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EACtB,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAuB;IACxC,MAAM,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,GAAG,KAAK,EAAE,CAAC,CAAC;IAClG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7E,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB;IACpC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACrB,UAAU,EAAE,cAAc;QAC1B,SAAS,EAAE,wBAAwB;QACnC,SAAS,EAAE,YAAY;QACvB,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,CAAC;KACd,CAAC,CAAC;IACH,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAC3B,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,14 +1,11 @@
1
1
  {
2
2
  "name": "abstract-3d",
3
- "version": "4.0.1",
4
- "gitHead": "17921b59da5eee6cc446fd37a2134165af4d1901",
3
+ "version": "4.0.3",
4
+ "gitHead": "562902ed67340e6b27007e7f97cf68f454d9c6dc",
5
5
  "description": "Abstract 3D",
6
6
  "license": "MIT",
7
7
  "author": "Divid AB <info@divid.se>",
8
- "repository": {
9
- "type": "git",
10
- "url": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-3d"
11
- },
8
+ "repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-3d",
12
9
  "files": [
13
10
  "/lib",
14
11
  "/src",
@@ -63,22 +60,22 @@
63
60
  },
64
61
  "dependencies": {
65
62
  "@mapbox/tiny-sdf": "^2.3.0",
66
- "abstract-image": "^13.3.2",
63
+ "abstract-image": "^13.3.4",
67
64
  "three-viewport-gizmo": "^2.2.0",
68
65
  "ts-exhaustive-check": "^1.0.0"
69
66
  },
70
67
  "devDependencies": {
71
- "@types/react": "19.2.17",
72
- "@types/react-dom": "19.2.3",
68
+ "@types/react": "catalog:",
69
+ "@types/react-dom": "catalog:",
73
70
  "@types/three": "^0.186.0",
74
71
  "playwright-core": "^1.64.1",
75
- "react": "19.2.7",
76
- "react-dom": "19.2.7",
72
+ "react": "catalog:",
73
+ "react-dom": "catalog:",
77
74
  "three": "^0.186.1"
78
75
  },
79
76
  "peerDependencies": {
80
- "react": "19.2.7",
81
- "react-dom": "19.2.7",
77
+ "react": "catalog:",
78
+ "react-dom": "catalog:",
82
79
  "three": ">=0.186.0"
83
80
  },
84
81
  "peerDependenciesMeta": {
@@ -92,4 +89,4 @@
92
89
  "optional": true
93
90
  }
94
91
  }
95
- }
92
+ }
@@ -0,0 +1,10 @@
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
+ } as const;
@@ -1,3 +1,4 @@
1
1
  export * from "./svg.js";
2
+ export * from "./class-names.js";
2
3
  export { type EmbededImage } from "./svg-encoding.js";
3
4
  export type { ImageDataUri, SvgOptions, SvgView } from "./svg-geometries/shared.js";
@@ -1,14 +1,15 @@
1
1
  import type { Hole, Vec2, Vec3 } from "../../abstract-3d.js";
2
2
  import { bounds2FromVec2Array, vec2, vec2Add, vec2Scale, vec2Sub, vec3, vec3Rot, vec3Zero } from "../../abstract-3d.js";
3
+ import { classNames } from "./class-names.js";
3
4
  import { svgTrsMatrix } from "./svg-geometries/shared.js";
4
5
 
5
- export const svg = (min: Vec2, size: Vec2, children: string): string => {
6
- return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${min.x.toFixed(0)} ${min.y.toFixed(0)} ${size.x.toFixed(
6
+ export const svg = (min: Vec2, size: Vec2, children: string, className: string): string => {
7
+ 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(
7
8
  0
8
9
  )} ${size.y.toFixed(0)}" width="${size.x.toFixed(0)}px" height="${size.y.toFixed(0)}px">${children}</svg>`;
9
10
  };
10
11
  export const svgLine = (p1: Vec2, p2: Vec2, stroke: string, strokeWidth: number): string =>
11
- `<line x1="${p1.x.toFixed(0)}" y1="${p1.y.toFixed(0)}" x2="${p2.x.toFixed(0)}" y2="${p2.y.toFixed(
12
+ `<line class="${classNames.stroke}" x1="${p1.x.toFixed(0)}" y1="${p1.y.toFixed(0)}" x2="${p2.x.toFixed(0)}" y2="${p2.y.toFixed(
12
13
  0
13
14
  )}" stroke="${stroke}" stroke-width="${strokeWidth}" />`;
14
15
 
@@ -26,7 +27,7 @@ export function svgPolygon(
26
27
  const size = vec2Sub(bounds.max, bounds.min);
27
28
  const pos = vec2Scale(vec2Add(bounds.max, bounds.min), 0.5);
28
29
  const [mask, maskAttribute] = svgHoleMask(rot, size, holes ?? []);
29
- const pol = `<polygon points="${points
30
+ const pol = `<polygon class="${classNames.stroke}" points="${points
30
31
  .reduce((a, c) => (a += `${c.x.toFixed(0)},${c.y.toFixed(0)} `), "")
31
32
  .slice(0, -1)}" fill="${fill}" fill-opacity="${opacity.toFixed(1)}" stroke="${stroke}" stroke-width="${strokeWidth}" ${maskAttribute}/>`;
32
33
  return mask + pol + svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth);
@@ -44,7 +45,7 @@ export function svgCircle(
44
45
  ): string {
45
46
  const size = vec2Scale(vec2(radius, radius), 2);
46
47
  const [mask, maskAttribute] = svgHoleMask(rot, size, holes ?? []);
47
- const cir = `<circle r="${radius.toFixed(0)}" cx="${pos.x.toFixed(0)}" cy="${pos.y.toFixed(0)}" fill="${fill}" fill-opacity="${opacity.toFixed(
48
+ 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(
48
49
  1
49
50
  )}" stroke="${stroke}" stroke-width="${strokeWidth}" ${maskAttribute}/>`;
50
51
  return mask + cir + svgStrokedHoles(pos, rot, holes ?? [], stroke, strokeWidth);
@@ -64,6 +65,7 @@ function svgStrokedHoles(pos: Vec2, rot: Vec3, holes: ReadonlyArray<Hole>, strok
64
65
  case "RoundHole": {
65
66
  const matrix = svgTrsMatrix(holeCenter, vec3Zero);
66
67
  svgHoles += `<circle
68
+ class="${classNames.stroke}"
67
69
  r="${hole.radius.toFixed(0)}"
68
70
  transform="${matrix}"
69
71
  fill="none"
@@ -82,6 +84,7 @@ function svgStrokedHoles(pos: Vec2, rot: Vec3, holes: ReadonlyArray<Hole>, strok
82
84
  const matrix = svgTrsMatrix(holeCenter, rot);
83
85
 
84
86
  svgHoles += `<polygon
87
+ class="${classNames.stroke}"
85
88
  points="${points}"
86
89
  transform="${matrix}"
87
90
  fill="none"
@@ -98,7 +101,7 @@ function svgStrokedHoles(pos: Vec2, rot: Vec3, holes: ReadonlyArray<Hole>, strok
98
101
  }
99
102
 
100
103
  export const svgCircle2 = (radius: number, pos: Vec2, fill: string, stroke: string, strokeWidth: number, _holes?: ReadonlyArray<Hole>): string =>
101
- `<circle r="${radius.toFixed(0)}" cx="${pos.x.toFixed(0)}" cy="${pos.y.toFixed(
104
+ `<circle class="${classNames.stroke}" r="${radius.toFixed(0)}" cx="${pos.x.toFixed(0)}" cy="${pos.y.toFixed(
102
105
  0
103
106
  )}" fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" />`;
104
107
 
@@ -157,7 +160,7 @@ export const svgImage = (p: Vec2, size: Vec2, rot: Vec3, data: EmbededImage, bac
157
160
 
158
161
  if (data.type === "url") {
159
162
  const bg = background ? `<rect width="${size.x.toFixed(0)}" height="${size.y.toFixed(0)}" fill="${background}"/>` : "";
160
- return `<g transform="${matrix}">${bg}<image width="${size.x.toFixed(0)}" height="${size.y.toFixed(0)}" href="${data.url}"/></g>`;
163
+ return `<g transform="${matrix}">${bg}<image class="${classNames.image}" width="${size.x.toFixed(0)}" height="${size.y.toFixed(0)}" href="${data.url}"/></g>`;
161
164
  }
162
165
 
163
166
  // scale maps image-space coords → world coords, so the wrapper SVG and rect
@@ -165,7 +168,7 @@ export const svgImage = (p: Vec2, size: Vec2, rot: Vec3, data: EmbededImage, bac
165
168
  const imgW = scale ? size.x / scale.x : size.x;
166
169
  const imgH = scale ? size.y / scale.y : size.y;
167
170
  const bg = background ? `<rect width="${imgW.toFixed(0)}" height="${imgH.toFixed(0)}" fill="${background}"/>` : "";
168
- return `<g transform="${matrix}"><svg width="${imgW.toFixed(0)}" height="${imgH.toFixed(0)}">${bg}${data.svg}</svg></g>`;
171
+ return `<g transform="${matrix}"><svg class="${classNames.image}" width="${imgW.toFixed(0)}" height="${imgH.toFixed(0)}">${bg}${data.svg}</svg></g>`;
169
172
  };
170
173
 
171
174
  const counter = (() => {
@@ -48,6 +48,8 @@ export type SvgOptions = {
48
48
 
49
49
  readonly font: string;
50
50
  readonly imageDataByUrl: Record<string, ImageDataUri>;
51
+ /** Its svg's class besides `classNames.root`, e.g. sized to fill its box */
52
+ readonly className: string;
51
53
  };
52
54
 
53
55
  export function svgTrsMatrix(translation: Vec2, rotation: Vec3, scale?: Vec2): string {
@@ -54,7 +54,8 @@ export function renderScenes(scenes: ReadonlyArray<SvgScene>, baseOptions?: Opti
54
54
  const image = svg(
55
55
  mergedBounds.min,
56
56
  size,
57
- allElements.reduce((a, { element }) => `${a} ${element}`, "")
57
+ allElements.reduce((a, { element }) => `${a} ${element}`, ""),
58
+ baseOptions?.className ?? ""
58
59
  );
59
60
  return { image, width: size.x, height: size.y };
60
61
  }
@@ -65,7 +66,8 @@ export function render(scene: Scene, options?: Optional<SvgOptions>): SvgWithSiz
65
66
  const image = svg(
66
67
  vec2(center.x - size.x / 2, center.y - size.y / 2),
67
68
  size,
68
- elements.reduce((a, { element }) => `${a} ${element}`, "")
69
+ elements.reduce((a, { element }) => `${a} ${element}`, ""),
70
+ options?.className ?? ""
69
71
  );
70
72
  return { image, width: size.x, height: size.y };
71
73
  }
@@ -89,6 +91,7 @@ function renderInternal(
89
91
  imageDataByUrl: options?.imageDataByUrl ?? {},
90
92
  rotation: options?.rotation ?? 0,
91
93
  imageBg: options?.imageBg ?? false,
94
+ className: options?.className ?? "",
92
95
  };
93
96
  // Isometric: the front turned 45° to show the side, and tilted by arctan(1/√2) to show the top, so the three axes are foreshortened alike
94
97
  const isometric = opts.view === "TopLeft" || opts.view === "TopRight";
@@ -42,18 +42,17 @@ export function createClassMaterial(c: MaterialClass, reflections: boolean): Mat
42
42
  const plainMetalness = 0.25;
43
43
 
44
44
  /**
45
- * The physical finish of each type of surface, in the material's color: metals reflect their color; galvanized and aluminum sheet keep some of their
46
- * color diffuse, so faces that mirror the studio's dark surroundings aren't black; the others are dielectrics with a white reflection; painted sheet
47
- * has a light clearcoat, fabric a soft sheen. Glass is a thin, smooth, mostly see-through surface, not refracting, which would render the scene once
48
- * more each frame
45
+ * The physical finish of each type of surface, in the material's color: metals reflect their color; the others are dielectrics with a white
46
+ * reflection; painted sheet has a full, soft clearcoat, fabric a soft sheen. Glass is a thin, smooth, mostly see-through surface, not refracting,
47
+ * which would render the scene once more each frame
49
48
  */
50
49
  const finishes: Record<MaterialType, MeshPhysicalMaterialParameters> = {
51
- painted: { metalness: 0, roughness: 0.45, clearcoat: 0.3, clearcoatRoughness: 0.25 },
52
- galvanized: { metalness: 0.6, roughness: 0.6 },
53
- aluminum: { metalness: 0.7, roughness: 0.45 },
54
- stainless: { metalness: 1, roughness: 0.3 },
55
- copper: { metalness: 1, roughness: 0.35 },
56
- plastic: { metalness: 0, roughness: 0.55 },
50
+ painted: { metalness: 0, roughness: 0.3, clearcoat: 1, clearcoatRoughness: 0.5 },
51
+ galvanized: { metalness: 1, roughness: 0.35 },
52
+ aluminum: { metalness: 1, roughness: 0.4 },
53
+ stainless: { metalness: 1, roughness: 0.2 },
54
+ copper: { metalness: 1, roughness: 0.25 },
55
+ plastic: { metalness: 0, roughness: 0.4 },
57
56
  rubber: { metalness: 0, roughness: 0.9 },
58
57
  fabric: { metalness: 0, roughness: 1, sheen: 1, sheenRoughness: 0.8, sheenColor: 0x888888 },
59
58
  glass: { metalness: 0, roughness: 0.05, specularIntensity: 1 },