abstract-3d 1.4.13 → 1.4.14
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dxf.d.ts","sourceRoot":"","sources":["../../../src/renderers/dxf/dxf.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,IAAI,EAIJ,IAAI,
|
|
1
|
+
{"version":3,"file":"dxf.d.ts","sourceRoot":"","sources":["../../../src/renderers/dxf/dxf.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,IAAI,EAIJ,IAAI,EAWL,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAIxC,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AACrD,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjH,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAAC;AAE9G,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAgBxG;AAED,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,UAAU,QAAQ,CAAC,UAAU,CAAC,KAAG,MASrE,CAAC"}
|
package/lib/renderers/dxf/dxf.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { vec3RotCombine, vec3Zero, vec3TransRot, group, bounds3ToSize, vec3, rotationForCameraPos, bounds3FromPosAndSize, bounds3Merge, bounds3Center, } from "../../abstract-3d.js";
|
|
1
|
+
import { vec3RotCombine, vec3Zero, vec3TransRot, group, bounds3ToSize, vec3, rotationForCameraPos, bounds3FromPosAndSize, bounds3Merge, bounds3Center, vec3Add, } from "../../abstract-3d.js";
|
|
2
2
|
import { dxf } from "./dxf-encoding.js";
|
|
3
3
|
import { dxfPlane } from "./dxf-geometries/dxf-plane.js";
|
|
4
4
|
import { dxfBox } from "./dxf-geometries/dxf-box.js";
|
|
@@ -11,7 +11,7 @@ export function renderScenes(scenes, baseOptions) {
|
|
|
11
11
|
const allBounds = Array();
|
|
12
12
|
const handle = { handle: 0x1000 };
|
|
13
13
|
for (const view of scenes) {
|
|
14
|
-
const { groups } = dxfGroups(view.scene, { ...baseOptions, ...view.options, view: undefined, origin: "Center" }, view.pos, handle);
|
|
14
|
+
const { groups } = dxfGroups(view.scene, { ...baseOptions, ...view.options, view: undefined, origin: "Center" }, vec3Add(view.pos, view.scene.center_deprecated ?? vec3Zero), handle);
|
|
15
15
|
allGroups += groups;
|
|
16
16
|
allBounds.push(bounds3FromPosAndSize(view.pos, view.scene.size_deprecated));
|
|
17
17
|
}
|
|
@@ -22,10 +22,12 @@ export const render = (scene, options) => {
|
|
|
22
22
|
const center = scene.center_deprecated ?? vec3Zero;
|
|
23
23
|
const bounds = bounds3FromPosAndSize(center, scene.size_deprecated);
|
|
24
24
|
const offset = options?.origin === "Center" ? vec3Zero : vec3(Math.abs(bounds.min.x), Math.abs(bounds.min.y), -bounds.max.z);
|
|
25
|
-
const res = dxfGroups(scene,
|
|
25
|
+
const res = dxfGroups({ ...scene, groups: [group([], offset, vec3Zero, scene.groups)] }, options, center, {
|
|
26
|
+
handle: 0x1000,
|
|
27
|
+
});
|
|
26
28
|
return dxf(res.groups, center, scene.size_deprecated);
|
|
27
29
|
};
|
|
28
|
-
const dxfGroups = (scene, options,
|
|
30
|
+
const dxfGroups = (scene, options, center, handleRef //make sure we start with a value higher than any other handle id's used in the header
|
|
29
31
|
) => {
|
|
30
32
|
const opts = {
|
|
31
33
|
view: options?.view ?? "front",
|
|
@@ -33,9 +35,7 @@ const dxfGroups = (scene, options, offset, handleRef //make sure we start with a
|
|
|
33
35
|
cylinderSideCount: DEFAULT_CYLINDER_SIDE_COUNT,
|
|
34
36
|
};
|
|
35
37
|
const unitRot = vec3RotCombine(rotationForCameraPos(opts.view), scene.rotation_deprecated ?? vec3Zero);
|
|
36
|
-
|
|
37
|
-
const groupRoot = group([], offset, vec3Zero, scene.groups);
|
|
38
|
-
return { groups: dxfGroup(groupRoot, center, unitRot, opts, handleRef) };
|
|
38
|
+
return { groups: scene.groups.reduce((a, c) => a + dxfGroup(c, center, unitRot, opts, handleRef), "") };
|
|
39
39
|
};
|
|
40
40
|
function dxfGroup(g, parentPos, parentRot, options, handleRef) {
|
|
41
41
|
const pos = vec3TransRot(g.pos, parentPos, parentRot);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dxf.js","sourceRoot":"","sources":["../../../src/renderers/dxf/dxf.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACd,QAAQ,EAGR,YAAY,EACZ,KAAK,EACL,aAAa,EACb,IAAI,EACJ,oBAAoB,EACpB,qBAAqB,EAErB,YAAY,EACZ,aAAa,
|
|
1
|
+
{"version":3,"file":"dxf.js","sourceRoot":"","sources":["../../../src/renderers/dxf/dxf.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "abstract-3d",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.14",
|
|
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",
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"@types/three": "^0.180.0",
|
|
36
36
|
"react": "^19.0.0"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "c6e0047865bc7be0bea6993ec530c6eec40f3127"
|
|
39
39
|
}
|
package/src/renderers/dxf/dxf.ts
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
Bounds3,
|
|
15
15
|
bounds3Merge,
|
|
16
16
|
bounds3Center,
|
|
17
|
+
vec3Add,
|
|
17
18
|
} from "../../abstract-3d.js";
|
|
18
19
|
import { dxf, Handle } from "./dxf-encoding.js";
|
|
19
20
|
import { dxfPlane } from "./dxf-geometries/dxf-plane.js";
|
|
@@ -38,7 +39,7 @@ export function renderScenes(scenes: ReadonlyArray<DxfScene>, baseOptions?: Opti
|
|
|
38
39
|
const { groups } = dxfGroups(
|
|
39
40
|
view.scene,
|
|
40
41
|
{ ...baseOptions, ...view.options, view: undefined, origin: "Center" },
|
|
41
|
-
view.pos,
|
|
42
|
+
vec3Add(view.pos, view.scene.center_deprecated ?? vec3Zero),
|
|
42
43
|
handle
|
|
43
44
|
);
|
|
44
45
|
allGroups += groups;
|
|
@@ -53,14 +54,16 @@ export const render = (scene: Scene, options?: Optional<DxfOptions>): string =>
|
|
|
53
54
|
const bounds = bounds3FromPosAndSize(center, scene.size_deprecated);
|
|
54
55
|
const offset =
|
|
55
56
|
options?.origin === "Center" ? vec3Zero : vec3(Math.abs(bounds.min.x), Math.abs(bounds.min.y), -bounds.max.z);
|
|
56
|
-
const res = dxfGroups(scene,
|
|
57
|
+
const res = dxfGroups({ ...scene, groups: [group([], offset, vec3Zero, scene.groups)] }, options, center, {
|
|
58
|
+
handle: 0x1000,
|
|
59
|
+
});
|
|
57
60
|
return dxf(res.groups, center, scene.size_deprecated);
|
|
58
61
|
};
|
|
59
62
|
|
|
60
63
|
const dxfGroups = (
|
|
61
64
|
scene: Scene,
|
|
62
65
|
options: Optional<DxfOptions> | undefined,
|
|
63
|
-
|
|
66
|
+
center: Vec3,
|
|
64
67
|
handleRef: Handle //make sure we start with a value higher than any other handle id's used in the header
|
|
65
68
|
): { readonly groups: string } => {
|
|
66
69
|
const opts: DxfOptions = {
|
|
@@ -69,9 +72,7 @@ const dxfGroups = (
|
|
|
69
72
|
cylinderSideCount: DEFAULT_CYLINDER_SIDE_COUNT,
|
|
70
73
|
};
|
|
71
74
|
const unitRot = vec3RotCombine(rotationForCameraPos(opts.view), scene.rotation_deprecated ?? vec3Zero);
|
|
72
|
-
|
|
73
|
-
const groupRoot = group([], offset, vec3Zero, scene.groups);
|
|
74
|
-
return { groups: dxfGroup(groupRoot, center, unitRot, opts, handleRef) };
|
|
75
|
+
return { groups: scene.groups.reduce((a, c) => a + dxfGroup(c, center, unitRot, opts, handleRef), "") };
|
|
75
76
|
};
|
|
76
77
|
|
|
77
78
|
function dxfGroup(g: Group, parentPos: Vec3, parentRot: Vec3, options: DxfOptions, handleRef: Handle): string {
|