@jfk-solutions/demo3d-file-format 1.7.0 → 1.9.0
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/README.md +289 -1
- package/dist/examples/export-embedded-viewer-standalone.html +193 -0
- package/dist/examples/three-render-smoke-standalone.html +4997 -0
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/model.d.ts +20 -3
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +89 -11
- package/dist/model.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +135 -9
- package/dist/parser.js.map +1 -1
- package/dist/raw3d-animation.d.ts +63 -0
- package/dist/raw3d-animation.d.ts.map +1 -0
- package/dist/raw3d-animation.js +200 -0
- package/dist/raw3d-animation.js.map +1 -0
- package/dist/raw3d-effects.d.ts +66 -0
- package/dist/raw3d-effects.d.ts.map +1 -0
- package/dist/raw3d-effects.js +172 -0
- package/dist/raw3d-effects.js.map +1 -0
- package/dist/raw3d-skinning.d.ts +8 -0
- package/dist/raw3d-skinning.d.ts.map +1 -0
- package/dist/raw3d-skinning.js +37 -0
- package/dist/raw3d-skinning.js.map +1 -0
- package/dist/raw3d.d.ts +84 -4
- package/dist/raw3d.d.ts.map +1 -1
- package/dist/raw3d.js +111 -9
- package/dist/raw3d.js.map +1 -1
- package/dist/rigid-interpolation.d.ts +16 -0
- package/dist/rigid-interpolation.d.ts.map +1 -0
- package/dist/rigid-interpolation.js +52 -0
- package/dist/rigid-interpolation.js.map +1 -0
- package/dist/three/backend.d.ts +13 -0
- package/dist/three/backend.d.ts.map +1 -0
- package/dist/three/backend.js +9 -0
- package/dist/three/backend.js.map +1 -0
- package/dist/three/effects.d.ts +7 -0
- package/dist/three/effects.d.ts.map +1 -0
- package/dist/three/effects.js +127 -0
- package/dist/three/effects.js.map +1 -0
- package/dist/three/index.d.ts +5 -1
- package/dist/three/index.d.ts.map +1 -1
- package/dist/three/index.js +35 -1
- package/dist/three/index.js.map +1 -1
- package/dist/three/native-lighting.d.ts +5 -0
- package/dist/three/native-lighting.d.ts.map +1 -0
- package/dist/three/native-lighting.js +86 -0
- package/dist/three/native-lighting.js.map +1 -0
- package/dist/three/parallax.d.ts +5 -0
- package/dist/three/parallax.d.ts.map +1 -0
- package/dist/three/parallax.js +63 -0
- package/dist/three/parallax.js.map +1 -0
- package/dist/three/presentation.d.ts +31 -0
- package/dist/three/presentation.d.ts.map +1 -0
- package/dist/three/presentation.js +137 -0
- package/dist/three/presentation.js.map +1 -0
- package/dist/three/raw3d.d.ts +27 -0
- package/dist/three/raw3d.d.ts.map +1 -1
- package/dist/three/raw3d.js +536 -25
- package/dist/three/raw3d.js.map +1 -1
- package/dist/three/renderer.d.ts.map +1 -1
- package/dist/three/renderer.js +3 -0
- package/dist/three/renderer.js.map +1 -1
- package/dist/three/skinning.d.ts +11 -0
- package/dist/three/skinning.d.ts.map +1 -0
- package/dist/three/skinning.js +92 -0
- package/dist/three/skinning.js.map +1 -0
- package/dist/three/tsl.d.ts +60 -0
- package/dist/three/tsl.d.ts.map +1 -0
- package/dist/three/tsl.js +3 -0
- package/dist/three/tsl.js.map +1 -0
- package/dist/three/webgpu-native.d.ts +3 -0
- package/dist/three/webgpu-native.d.ts.map +1 -0
- package/dist/three/webgpu-native.js +58 -0
- package/dist/three/webgpu-native.js.map +1 -0
- package/dist/three/webgpu-relief.d.ts +3 -0
- package/dist/three/webgpu-relief.d.ts.map +1 -0
- package/dist/three/webgpu-relief.js +61 -0
- package/dist/three/webgpu-relief.js.map +1 -0
- package/dist/xml.d.ts +4 -1
- package/dist/xml.d.ts.map +1 -1
- package/dist/xml.js +14 -3
- package/dist/xml.js.map +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type * as Three from "three";
|
|
2
|
+
import type * as GPU from "three/webgpu";
|
|
3
|
+
export interface Raw3DNodeBackend {
|
|
4
|
+
point(): Three.PointLight;
|
|
5
|
+
spot(): Three.SpotLight;
|
|
6
|
+
standard(parameters: Three.MeshStandardMaterialParameters): Three.MeshStandardMaterial;
|
|
7
|
+
configure(material: Three.Material): void;
|
|
8
|
+
}
|
|
9
|
+
export declare function registerRaw3DNodeBackend(module: object, backend: Raw3DNodeBackend): void;
|
|
10
|
+
export declare function raw3DNodeBackend(module: object): Raw3DNodeBackend | undefined;
|
|
11
|
+
/** Call before building RAW3D groups when using a manually created node renderer. */
|
|
12
|
+
export declare function configureRaw3DWebGPURenderer(renderer: GPU.WebGPURenderer, module?: typeof GPU): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/three/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;IAC1B,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,8BAA8B,GAAG,KAAK,CAAC,oBAAoB,CAAC;IACvF,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAmC;AAC5H,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAiC;AAE/G,qFAAqF;AACrF,wBAAsB,4BAA4B,CAAC,QAAQ,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnH"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const backends = new WeakMap();
|
|
2
|
+
export function registerRaw3DNodeBackend(module, backend) { backends.set(module, backend); }
|
|
3
|
+
export function raw3DNodeBackend(module) { return backends.get(module); }
|
|
4
|
+
/** Call before building RAW3D groups when using a manually created node renderer. */
|
|
5
|
+
export async function configureRaw3DWebGPURenderer(renderer, module) {
|
|
6
|
+
const implementation = await import("./webgpu-native.js");
|
|
7
|
+
implementation.configure(renderer, module ?? await import("three/webgpu"));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/three/backend.ts"],"names":[],"mappings":"AASA,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA4B,CAAC;AACzD,MAAM,UAAU,wBAAwB,CAAC,MAAc,EAAE,OAAyB,IAAU,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5H,MAAM,UAAU,gBAAgB,CAAC,MAAc,IAAkC,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAE/G,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,QAA4B,EAAE,MAAmB;IAClG,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC1D,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type * as Three from "three";
|
|
2
|
+
import type { Raw3DEffectState } from "../raw3d-effects.js";
|
|
3
|
+
import type { Raw3DProject } from "../raw3d.js";
|
|
4
|
+
import type { Raw3DThreeModule } from "./raw3d.js";
|
|
5
|
+
export declare function configureRaw3DDrawable(object: Three.Object3D, billboard: boolean, decal: boolean, three: Raw3DThreeModule): void;
|
|
6
|
+
export declare function applyRaw3DThreeEffects(group: Three.Group, frame: Raw3DEffectState, project: Raw3DProject, three: Raw3DThreeModule): void;
|
|
7
|
+
//# sourceMappingURL=effects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../src/three/effects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAOnD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CA0BhI;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CA2DxI"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { configureRaw3DLightMaterial } from "./native-lighting.js";
|
|
2
|
+
import { raw3DNodeBackend } from "./backend.js";
|
|
3
|
+
import { configureRaw3DRelief } from "./parallax.js";
|
|
4
|
+
const billboardState = new WeakMap();
|
|
5
|
+
export function configureRaw3DDrawable(object, billboard, decal, three) {
|
|
6
|
+
if (billboard && !billboardState.has(object)) {
|
|
7
|
+
const saved = { rotation: object.quaternion.clone(), callback: object.onBeforeRender };
|
|
8
|
+
billboardState.set(object, saved);
|
|
9
|
+
const cameraRotation = new three.Quaternion(), parentRotation = new three.Quaternion();
|
|
10
|
+
object.onBeforeRender = function (...args) {
|
|
11
|
+
saved.callback.apply(this, args);
|
|
12
|
+
const camera = args[2];
|
|
13
|
+
camera.getWorldQuaternion(cameraRotation);
|
|
14
|
+
this.parent?.getWorldQuaternion(parentRotation);
|
|
15
|
+
this.quaternion.copy(parentRotation.invert()).multiply(cameraRotation);
|
|
16
|
+
this.updateMatrixWorld(true);
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
else if (!billboard && billboardState.has(object)) {
|
|
20
|
+
const saved = billboardState.get(object);
|
|
21
|
+
object.quaternion.copy(saved.rotation);
|
|
22
|
+
object.onBeforeRender = saved.callback;
|
|
23
|
+
billboardState.delete(object);
|
|
24
|
+
}
|
|
25
|
+
object.renderOrder = decal ? 1 : 0;
|
|
26
|
+
const drawable = object;
|
|
27
|
+
if (drawable.material)
|
|
28
|
+
for (const material of Array.isArray(drawable.material) ? drawable.material : [drawable.material]) {
|
|
29
|
+
material.polygonOffset = decal;
|
|
30
|
+
material.polygonOffsetFactor = decal ? -1 : 0;
|
|
31
|
+
material.polygonOffsetUnits = decal ? -1 : 0;
|
|
32
|
+
if (decal)
|
|
33
|
+
material.depthWrite = false;
|
|
34
|
+
configureRaw3DLightMaterial(material, three);
|
|
35
|
+
configureRaw3DRelief(material, three);
|
|
36
|
+
raw3DNodeBackend(three)?.configure(material);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function applyRaw3DThreeEffects(group, frame, project, three) {
|
|
40
|
+
const sources = new Map(project.lights.map((source, index) => [source.index ?? index, source]));
|
|
41
|
+
const lights = [];
|
|
42
|
+
group.traverse(object => { if (object.userData.raw3d?.kind === "light")
|
|
43
|
+
lights.push(object); });
|
|
44
|
+
for (let light of lights) {
|
|
45
|
+
const index = light.userData.raw3d.index, state = frame.lights.get(index), source = sources.get(index);
|
|
46
|
+
if (!state || !source)
|
|
47
|
+
continue;
|
|
48
|
+
const wanted = state.type === 1 ? "PointLight" : state.type === 2 ? "SpotLight" : "DirectionalLight";
|
|
49
|
+
if (light.type !== wanted && light.type !== "AmbientLight") {
|
|
50
|
+
const parent = light.parent;
|
|
51
|
+
const previous = light;
|
|
52
|
+
previous.target?.removeFromParent();
|
|
53
|
+
previous.shadow?.dispose();
|
|
54
|
+
const backend = raw3DNodeBackend(three);
|
|
55
|
+
const replacement = state.type === 1 ? backend?.point() ?? new three.PointLight() : state.type === 2 ? backend?.spot() ?? new three.SpotLight() : new three.DirectionalLight();
|
|
56
|
+
replacement.userData = light.userData;
|
|
57
|
+
replacement.name = light.name;
|
|
58
|
+
parent.remove(light);
|
|
59
|
+
parent.add(replacement);
|
|
60
|
+
light = replacement;
|
|
61
|
+
}
|
|
62
|
+
light.visible = state.enabled;
|
|
63
|
+
const material = source.materialIndex === undefined ? undefined : project.materials[source.materialIndex];
|
|
64
|
+
if (material)
|
|
65
|
+
light.color.setRGB(material.red, material.green, material.blue);
|
|
66
|
+
if (state.materialProperties.Diffuse !== undefined)
|
|
67
|
+
light.color.setHex(state.materialProperties.Diffuse & 0xffffff, three.SRGBColorSpace);
|
|
68
|
+
if (light instanceof three.PointLight || light instanceof three.SpotLight || light instanceof three.DirectionalLight)
|
|
69
|
+
light.castShadow = state.castsShadows;
|
|
70
|
+
if (light instanceof three.PointLight || light instanceof three.SpotLight) {
|
|
71
|
+
light.distance = Math.max(0, state.attenuationRange);
|
|
72
|
+
light.decay = 0;
|
|
73
|
+
}
|
|
74
|
+
if (light instanceof three.SpotLight) {
|
|
75
|
+
light.angle = Math.max(.00001, Math.min(Math.PI / 2, state.spotlightOuterAngle / 2));
|
|
76
|
+
light.penumbra = state.spotlightOuterAngle > 0 ? Math.max(0, Math.min(1, 1 - state.spotlightInnerAngle / state.spotlightOuterAngle)) : 0;
|
|
77
|
+
}
|
|
78
|
+
if (light instanceof three.SpotLight || light instanceof three.DirectionalLight) {
|
|
79
|
+
light.target.position.set(0, 0, -1);
|
|
80
|
+
light.parent.add(light.target);
|
|
81
|
+
}
|
|
82
|
+
light.userData.raw3d.parameters = state;
|
|
83
|
+
}
|
|
84
|
+
const hasSceneState = project.sceneProperties !== undefined || project.animation.effects.tracks.some(track => track.target === "scene");
|
|
85
|
+
if (hasSceneState) {
|
|
86
|
+
let ambient = group.children.find(object => object.userData.raw3d?.kind === "scene-ambient");
|
|
87
|
+
if (!ambient) {
|
|
88
|
+
ambient = new three.AmbientLight();
|
|
89
|
+
ambient.userData.raw3d = { kind: "scene-ambient" };
|
|
90
|
+
group.add(ambient);
|
|
91
|
+
}
|
|
92
|
+
ambient.color.setRGB(...frame.scene.ambientLightColor);
|
|
93
|
+
let key = group.children.find(object => object.userData.raw3d?.kind === "scene-default-light");
|
|
94
|
+
if (!key) {
|
|
95
|
+
key = new three.DirectionalLight(0xffffff, 1);
|
|
96
|
+
key.position.set(3, 5, 4);
|
|
97
|
+
key.userData.raw3d = { kind: "scene-default-light" };
|
|
98
|
+
group.add(key);
|
|
99
|
+
}
|
|
100
|
+
key.visible = frame.scene.useDefaultLighting;
|
|
101
|
+
let floor = group.children.find(object => object.userData.raw3d?.kind === "scene-floor");
|
|
102
|
+
if (!floor && frame.scene.showDefaultFloor) {
|
|
103
|
+
const bounds = new three.Box3().setFromObject(group), size = bounds.getSize(new three.Vector3());
|
|
104
|
+
const extent = Math.max(size.x, size.z, 1) * 1.2;
|
|
105
|
+
floor = new three.Mesh(new three.PlaneGeometry(extent, extent), new three.MeshStandardMaterial({ color: 0x777777, roughness: 1, side: three.DoubleSide }));
|
|
106
|
+
floor.userData.raw3d = { kind: "scene-floor" };
|
|
107
|
+
const origin = project.sceneProperties?.floorOrigin ?? [];
|
|
108
|
+
const normal = project.sceneProperties?.floorNormal ?? [];
|
|
109
|
+
floor.position.set(origin[0] ?? 0, origin[1] ?? 0, -(origin[2] ?? 0));
|
|
110
|
+
const direction = new three.Vector3(normal[0] ?? 0, normal[1] ?? 1, -(normal[2] ?? 0));
|
|
111
|
+
if (direction.lengthSq() < 1e-12)
|
|
112
|
+
throw new Error("RAW3D floor normal must be nonzero.");
|
|
113
|
+
direction.normalize();
|
|
114
|
+
const center = bounds.isEmpty() ? floor.position.clone() : bounds.getCenter(new three.Vector3());
|
|
115
|
+
center.addScaledVector(direction, -center.clone().sub(floor.position).dot(direction));
|
|
116
|
+
floor.position.copy(center);
|
|
117
|
+
floor.quaternion.setFromUnitVectors(new three.Vector3(0, 0, 1), direction);
|
|
118
|
+
floor.receiveShadow = true;
|
|
119
|
+
configureRaw3DLightMaterial(floor.material, three);
|
|
120
|
+
group.add(floor);
|
|
121
|
+
}
|
|
122
|
+
if (floor)
|
|
123
|
+
floor.visible = frame.scene.showDefaultFloor;
|
|
124
|
+
}
|
|
125
|
+
group.updateMatrixWorld(true);
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=effects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.js","sourceRoot":"","sources":["../../src/three/effects.ts"],"names":[],"mappings":"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"}
|
package/dist/three/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type * as Three from "three";
|
|
2
|
+
export { configureRaw3DWebGPURenderer } from "./backend.js";
|
|
2
3
|
import { Demo3DMaterial, Demo3DMesh, Demo3DPackage, Demo3DProject } from "../model.js";
|
|
3
|
-
export { createRaw3DThreeGroup, createRaw3DThreeScene, decodeRaw3DThreeGeometry, type Raw3DThreeModule, type Raw3DThreeOptions, type Raw3DThreeScene, type Raw3DThreeStats, type Raw3DThreeWarning } from "./raw3d.js";
|
|
4
|
+
export { createRaw3DThreeGroup, createRaw3DThreePlayback, type Raw3DThreePlayback, createRaw3DThreeScene, decodeRaw3DThreeGeometry, type Raw3DThreeModule, type Raw3DThreeOptions, type Raw3DThreeScene, type Raw3DThreeStats, type Raw3DThreeWarning } from "./raw3d.js";
|
|
4
5
|
export { createDemo3DThreeRenderer, type Demo3DThreeCanvasRendererOptions, type Demo3DThreeModule, type Demo3DThreeRendererInstance, type Demo3DThreeRendererFallback, type Demo3DThreeRendererResult, type Demo3DThreeRenderBackend, type Demo3DThreeWebGPUModule } from "./renderer.js";
|
|
6
|
+
export { applyDemo3DThreeRenderMode, type Demo3DThreeRenderMode, type Demo3DThreeRenderModeOptions, type Demo3DThreeRenderModeResult } from "./presentation.js";
|
|
5
7
|
export type ThreeModule = typeof Three;
|
|
6
8
|
export interface Demo3DThreeWarning {
|
|
7
9
|
readonly code: string;
|
|
@@ -64,6 +66,8 @@ export interface Demo3DThreeScene {
|
|
|
64
66
|
}
|
|
65
67
|
export declare function createDemo3DThreeScene(parsed: Demo3DPackage | Demo3DProject, options?: Demo3DThreeRendererOptions): Promise<Demo3DThreeScene>;
|
|
66
68
|
export declare function createDemo3DThreeGroup(parsed: Demo3DPackage | Demo3DProject, options?: Demo3DThreeRendererOptions): Promise<Three.Group>;
|
|
69
|
+
/** Dispose geometries, materials, and textures owned by a generated Demo3D or RAW3D group. */
|
|
70
|
+
export declare function disposeDemo3DThreeGroup(root: Three.Object3D): void;
|
|
67
71
|
export declare function decodeDemo3DThreeGeometry(mesh: Demo3DMesh, three: ThreeModule): Three.BufferGeometry;
|
|
68
72
|
export declare function createDemo3DThreeMaterial(material: Demo3DMaterial | undefined, three: ThreeModule): Three.Material;
|
|
69
73
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/three/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,EAML,cAAc,EACd,UAAU,EACV,aAAa,EAEb,aAAa,EAKd,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,EACrC,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC;AAEvC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACjD,QAAQ,CAAC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACjD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAC7C,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAChD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC5D;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC,EAAE,MAAM,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B,EAAE,MAAM,CAAC;IACpC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAYD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAClD;AA0BD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,aAAa,GAAG,aAAa,EACrC,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,gBAAgB,CAAC,CAc3B;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,aAAa,GAAG,aAAa,EACrC,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAiCtB;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,cAAc,CA8DpG;AAuBD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,cAAc,GAAG,SAAS,EACpC,KAAK,EAAE,WAAW,GACjB,KAAK,CAAC,QAAQ,CAahB"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/three/index.ts"],"names":[],"mappings":"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"}
|
package/dist/three/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
export { configureRaw3DWebGPURenderer } from "./backend.js";
|
|
1
2
|
import { Demo3DConveyorSideProperties, Demo3DDimensionAspect, Demo3DDimensionPoint, Demo3DExtrusionPolygon, Demo3DExtrusionProfile, Demo3DMaterial, Demo3DMesh, Demo3DPackage, Demo3DPointCloud, Demo3DProject, Demo3DPhotoEye, Demo3DResource, Demo3DSupportStand, Demo3DVisual } from "../model.js";
|
|
2
3
|
import { Demo3DBinaryBlock, Demo3DXmlElement } from "../xml.js";
|
|
3
|
-
export { createRaw3DThreeGroup, createRaw3DThreeScene, decodeRaw3DThreeGeometry } from "./raw3d.js";
|
|
4
|
+
export { createRaw3DThreeGroup, createRaw3DThreePlayback, createRaw3DThreeScene, decodeRaw3DThreeGeometry } from "./raw3d.js";
|
|
4
5
|
export { createDemo3DThreeRenderer } from "./renderer.js";
|
|
6
|
+
export { applyDemo3DThreeRenderMode } from "./presentation.js";
|
|
5
7
|
export async function createDemo3DThreeScene(parsed, options = {}) {
|
|
6
8
|
const three = await resolveThree(options);
|
|
7
9
|
const group = await createDemo3DThreeGroup(parsed, { ...options, three });
|
|
@@ -45,6 +47,38 @@ export async function createDemo3DThreeGroup(parsed, options = {}) {
|
|
|
45
47
|
};
|
|
46
48
|
return root;
|
|
47
49
|
}
|
|
50
|
+
/** Dispose geometries, materials, and textures owned by a generated Demo3D or RAW3D group. */
|
|
51
|
+
export function disposeDemo3DThreeGroup(root) {
|
|
52
|
+
const geometries = new Set();
|
|
53
|
+
const materials = new Set();
|
|
54
|
+
const textures = new Set();
|
|
55
|
+
root.traverse((object) => {
|
|
56
|
+
const renderable = object;
|
|
57
|
+
if (renderable.geometry) {
|
|
58
|
+
geometries.add(renderable.geometry);
|
|
59
|
+
}
|
|
60
|
+
const objectMaterials = Array.isArray(renderable.material)
|
|
61
|
+
? renderable.material
|
|
62
|
+
: renderable.material ? [renderable.material] : [];
|
|
63
|
+
for (const material of objectMaterials) {
|
|
64
|
+
materials.add(material);
|
|
65
|
+
for (const value of Object.values(material)) {
|
|
66
|
+
if (value?.isTexture) {
|
|
67
|
+
textures.add(value);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
for (const geometry of geometries) {
|
|
73
|
+
geometry.dispose();
|
|
74
|
+
}
|
|
75
|
+
for (const material of materials) {
|
|
76
|
+
material.dispose();
|
|
77
|
+
}
|
|
78
|
+
for (const texture of textures) {
|
|
79
|
+
texture.dispose();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
48
82
|
export function decodeDemo3DThreeGeometry(mesh, three) {
|
|
49
83
|
if (mesh.meshFormat !== "TriangleList") {
|
|
50
84
|
throw new Error(`Unsupported Demo3D mesh format: ${mesh.meshFormat ?? "unknown"}`);
|