abstract-3d 0.1.18 → 0.1.20
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.
- package/lib/renderers/svg/svg-encoding.d.ts +1 -1
- package/lib/renderers/svg/svg-encoding.d.ts.map +1 -1
- package/lib/renderers/svg/svg-encoding.js +3 -1
- package/lib/renderers/svg/svg-encoding.js.map +1 -1
- package/lib/renderers/svg/svg.d.ts.map +1 -1
- package/lib/renderers/svg/svg.js +3 -3
- package/lib/renderers/svg/svg.js.map +1 -1
- package/package.json +2 -2
- package/src/renderers/svg/svg-encoding.ts +8 -3
- package/src/renderers/svg/svg.ts +3 -7
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Vec2 } from "../../abstract-3d";
|
|
2
|
-
export declare const svg: (width: number, height: number, children: string) => string;
|
|
2
|
+
export declare const svg: (width: number, height: number, center: Vec2, children: string) => string;
|
|
3
3
|
export declare const svgLine: (p1: Vec2, p2: Vec2, stroke: string, strokeWidth: number) => string;
|
|
4
4
|
export declare const svgPolygon: (points: ReadonlyArray<Vec2>, fill: string, stroke: string, strokeWidth: number) => string;
|
|
5
5
|
export declare const svgText: (p: Vec2, text: string, rot: number, color: string, font: string, fontSize: number) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg-encoding.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/svg-encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAsB,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,GAAG,UAAW,MAAM,UAAU,MAAM,YAAY,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"svg-encoding.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/svg-encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAsB,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,GAAG,UAAW,MAAM,UAAU,MAAM,UAAU,IAAI,YAAY,MAAM,KAAG,MAMzD,CAAC;AAI5B,eAAO,MAAM,OAAO,OAAQ,IAAI,MAAM,IAAI,UAAU,MAAM,eAAe,MAAM,KAAG,MAGxB,CAAC;AAE3D,eAAO,MAAM,UAAU,WAAY,cAAc,IAAI,CAAC,QAAQ,MAAM,UAAU,MAAM,eAAe,MAAM,KAAG,MAGrB,CAAC;AAExF,eAAO,MAAM,OAAO,MAAO,IAAI,QAAQ,MAAM,OAAO,MAAM,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,KAAG,MAGxE,CAAC;AAErC,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,eAAO,MAAM,QAAQ,MAAO,IAAI,QAAQ,IAAI,OAAO,MAAM,QAAQ,YAAY,KAAG,MAY/E,CAAC"}
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.svgImage = exports.svgText = exports.svgPolygon = exports.svgLine = exports.svg = void 0;
|
|
4
4
|
const abstract_3d_1 = require("../../abstract-3d");
|
|
5
|
-
const svg = (width, height, children) => `<svg xmlns="http://www.w3.org/2000/svg" viewBox="
|
|
5
|
+
const svg = (width, height, center, children) => `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${(center.x * 2 - width / 2).toFixed()} ${(-center.y * 2 +
|
|
6
|
+
-height / 2).toFixed(0)} ${width.toFixed(0)} ${height.toFixed(0)}" width="${width.toFixed(0)}px" height="${height.toFixed(0)}px">${children} </svg>`;
|
|
6
7
|
exports.svg = svg;
|
|
8
|
+
// vec2(-centerAdj.x + unitHalfSize.x + x * factor, centerAdj.y + unitHalfSize.y - y * factor);
|
|
7
9
|
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}" />`;
|
|
8
10
|
exports.svgLine = svgLine;
|
|
9
11
|
const svgPolygon = (points, fill, stroke, strokeWidth) => `<polygon points="${points
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg-encoding.js","sourceRoot":"","sources":["../../../src/renderers/svg/svg-encoding.ts"],"names":[],"mappings":";;;AAAA,mDAA6D;AAEtD,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,MAAc,EAAE,QAAgB,EAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"svg-encoding.js","sourceRoot":"","sources":["../../../src/renderers/svg/svg-encoding.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,GAAG,MAAM,mBAAmB,CAAC;AAazC,wBAAgB,KAAK,CACnB,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAAE,EACjE,UAAU,CAAC,EAAE,OAAO,EACpB,SAAS,CAAC,EAAE,OAAO,EACnB,cAAc,GAAE,MAA8B,EAC9C,IAAI,GAAE,MAAW,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../../../src/renderers/svg/svg.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAC;AAazC,wBAAgB,KAAK,CACnB,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAAE,EACjE,UAAU,CAAC,EAAE,OAAO,EACpB,SAAS,CAAC,EAAE,OAAO,EACnB,cAAc,GAAE,MAA8B,EAC9C,IAAI,GAAE,MAAW,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA2E7E"}
|
package/lib/renderers/svg/svg.js
CHANGED
|
@@ -50,9 +50,8 @@ function toSvg(scene, view, stroke, scale, onlyStroke, grayScale, onlyStrokeFill
|
|
|
50
50
|
: 1;
|
|
51
51
|
const unitRot = A3D.vec3RotCombine((0, shared_1.rotationForCameraPos)(view), (_a = scene.rotation_deprecated) !== null && _a !== void 0 ? _a : A3D.vec3Zero);
|
|
52
52
|
const unitPos = A3D.vec3Rot((_b = scene.center_deprecated) !== null && _b !== void 0 ? _b : A3D.vec3Zero, A3D.vec3Zero, (_c = scene.rotation_deprecated) !== null && _c !== void 0 ? _c : A3D.vec3Zero);
|
|
53
|
-
const size = (0, shared_1.sizeForCameraPos)(scene.size_deprecated, unitPos, unitRot);
|
|
54
53
|
const elements = Array();
|
|
55
|
-
const point = (x, y) => A3D.vec2(
|
|
54
|
+
const point = (x, y) => A3D.vec2(x * factor, -y * factor);
|
|
56
55
|
for (const g of scene.groups) {
|
|
57
56
|
elements.push(...svgGroup(g, unitPos, unitRot, point, view, factor, onlyStroke, grayScale, onlyStrokeFill, font, stroke, buffers));
|
|
58
57
|
}
|
|
@@ -67,9 +66,10 @@ function toSvg(scene, view, stroke, scale, onlyStroke, grayScale, onlyStrokeFill
|
|
|
67
66
|
}
|
|
68
67
|
}
|
|
69
68
|
}
|
|
69
|
+
const size = (0, shared_1.sizeForCameraPos)(scene.size_deprecated, unitPos, unitRot);
|
|
70
70
|
const width = size.x * factor + 1.5 * stroke;
|
|
71
71
|
const height = size.y * factor + 1.5 * stroke;
|
|
72
|
-
const image = (0, svg_encoding_1.svg)(width, height, elements.reduce((a, { element }) => `${a} ${element}`, ""));
|
|
72
|
+
const image = (0, svg_encoding_1.svg)(width, height, A3D.vec3Scale(unitPos, factor), elements.reduce((a, { element }) => `${a} ${element}`, ""));
|
|
73
73
|
return { image, width, height };
|
|
74
74
|
}
|
|
75
75
|
exports.toSvg = toSvg;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../../src/renderers/svg/svg.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAAsD;AACtD,uDAAyC;AAEzC,sDAA+C;AAC/C,gEAAyD;AACzD,wDAAiD;AACjD,0DAAmD;AACnD,0DAAmD;AACnD,8DAAuD;AACvD,wDAAiD;AACjD,wDAAiD;AACjD,sCAAmE;AACnE,iDAAmD;AAEnD,SAAgB,KAAK,CACnB,KAAgB,EAChB,IAAc,EACd,MAAc,EACd,KAAiE,EACjE,UAAoB,EACpB,SAAmB,EACnB,iBAAyB,qBAAqB,EAC9C,OAAe,EAAE,EACjB,OAAgC;;IAEhC,MAAM,MAAM,GAAG,KAAK;QAClB,CAAC,CAAC,KAAK,CAAC,IAAI;YACV,CAAC,KAAK,CAAC,YAAY;gBACjB,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM;oBACnC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBACzB,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC3B,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ;oBACrC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBACzB,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,IAAA,6BAAoB,EAAC,IAAI,CAAC,EAAE,MAAA,KAAK,CAAC,mBAAmB,mCAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1G,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CACzB,MAAA,KAAK,CAAC,iBAAiB,mCAAI,GAAG,CAAC,QAAQ,EACvC,GAAG,CAAC,QAAQ,EACZ,MAAA,KAAK,CAAC,mBAAmB,mCAAI,GAAG,CAAC,QAAQ,CAC1C,CAAC;
|
|
1
|
+
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../../src/renderers/svg/svg.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "abstract-3d",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.20",
|
|
4
4
|
"description": "Abstract 3D",
|
|
5
5
|
"author": "Divid AB <info@divid.se>",
|
|
6
6
|
"repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-3d",
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
"@types/react-reconciler": "^0.28.8",
|
|
28
28
|
"@types/three": "0.165.0"
|
|
29
29
|
},
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "880da0d4ffa9e8d82915f41cb25f481324736774"
|
|
31
31
|
}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { Vec2, vec2Add, vec2Scale } from "../../abstract-3d";
|
|
2
2
|
|
|
3
|
-
export const svg = (width: number, height: number, children: string): string =>
|
|
4
|
-
`<svg xmlns="http://www.w3.org/2000/svg" viewBox="
|
|
3
|
+
export const svg = (width: number, height: number, center: Vec2, children: string): string =>
|
|
4
|
+
`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${(center.x * 2 - width / 2).toFixed()} ${(
|
|
5
|
+
-center.y * 2 +
|
|
6
|
+
-height / 2
|
|
7
|
+
).toFixed(0)} ${width.toFixed(0)} ${height.toFixed(0)}" width="${width.toFixed(0)}px" height="${height.toFixed(
|
|
5
8
|
0
|
|
6
|
-
)}
|
|
9
|
+
)}px">${children} </svg>`;
|
|
10
|
+
|
|
11
|
+
// vec2(-centerAdj.x + unitHalfSize.x + x * factor, centerAdj.y + unitHalfSize.y - y * factor);
|
|
7
12
|
|
|
8
13
|
export const svgLine = (p1: Vec2, p2: Vec2, stroke: string, strokeWidth: number): string =>
|
|
9
14
|
`<line x1="${p1.x.toFixed(0)}" y1="${p1.y.toFixed(0)}" x2="${p2.x.toFixed(0)}" y2="${p2.y.toFixed(
|
package/src/renderers/svg/svg.ts
CHANGED
|
@@ -39,14 +39,9 @@ export function toSvg(
|
|
|
39
39
|
A3D.vec3Zero,
|
|
40
40
|
scene.rotation_deprecated ?? A3D.vec3Zero
|
|
41
41
|
);
|
|
42
|
-
const size = sizeForCameraPos(scene.size_deprecated, unitPos, unitRot);
|
|
43
42
|
|
|
44
43
|
const elements = Array<zOrderElement>();
|
|
45
|
-
const point = (x: number, y: number): A3D.Vec2 =>
|
|
46
|
-
A3D.vec2(
|
|
47
|
-
(-unitPos.x + size.x * 0.5 + x) * factor - stroke * 0.75,
|
|
48
|
-
(unitPos.y + size.y - y) * factor + stroke * 0.75
|
|
49
|
-
);
|
|
44
|
+
const point = (x: number, y: number): A3D.Vec2 => A3D.vec2(x * factor, -y * factor);
|
|
50
45
|
for (const g of scene.groups) {
|
|
51
46
|
elements.push(
|
|
52
47
|
...svgGroup(
|
|
@@ -91,13 +86,14 @@ export function toSvg(
|
|
|
91
86
|
}
|
|
92
87
|
}
|
|
93
88
|
}
|
|
94
|
-
|
|
89
|
+
const size = sizeForCameraPos(scene.size_deprecated, unitPos, unitRot);
|
|
95
90
|
const width = size.x * factor + 1.5 * stroke;
|
|
96
91
|
const height = size.y * factor + 1.5 * stroke;
|
|
97
92
|
|
|
98
93
|
const image = svg(
|
|
99
94
|
width,
|
|
100
95
|
height,
|
|
96
|
+
A3D.vec3Scale(unitPos, factor),
|
|
101
97
|
elements.reduce((a, { element }) => `${a} ${element}`, "")
|
|
102
98
|
);
|
|
103
99
|
return { image, width, height };
|