@jfk-solutions/demo3d-file-format 1.8.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 +211 -0
- package/dist/examples/export-embedded-viewer-standalone.html +1 -1
- package/dist/examples/three-render-smoke-standalone.html +295 -231
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.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 +77 -2
- package/dist/raw3d.d.ts.map +1 -1
- package/dist/raw3d.js +103 -7
- 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 +2 -1
- package/dist/three/index.d.ts.map +1 -1
- package/dist/three/index.js +2 -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/raw3d.d.ts +25 -0
- package/dist/three/raw3d.d.ts.map +1 -1
- package/dist/three/raw3d.js +404 -16
- 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/package.json +1 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** Decode the native per-bone vertex-index and float-weight buffers without a renderer. */
|
|
2
|
+
export function decodeRaw3DSkinInfluences(mesh, project) {
|
|
3
|
+
const vertexBuffer = project.vertexBuffers[mesh.vertexBufferIndex];
|
|
4
|
+
if (!vertexBuffer?.data || vertexBuffer.stride <= 0 || vertexBuffer.data.byteLength % vertexBuffer.stride)
|
|
5
|
+
throw new Error("Invalid RAW3D skinned vertex buffer.");
|
|
6
|
+
const count = vertexBuffer.data.byteLength / vertexBuffer.stride;
|
|
7
|
+
const result = Array.from({ length: count }, () => []);
|
|
8
|
+
mesh.bones.forEach((bone, boneIndex) => {
|
|
9
|
+
if (bone.skinIndexBuffer < 0 && bone.skinWeightsVertexBuffer < 0)
|
|
10
|
+
return;
|
|
11
|
+
const indices = project.indexBuffers[bone.skinIndexBuffer], weights = project.vertexBuffers[bone.skinWeightsVertexBuffer];
|
|
12
|
+
if (!indices?.data || !weights?.data)
|
|
13
|
+
throw new Error(`Missing RAW3D skin buffers for bone ${boneIndex}.`);
|
|
14
|
+
const elementSize = /32/i.test(indices.format) ? 4 : 2;
|
|
15
|
+
if (indices.data.byteLength % elementSize)
|
|
16
|
+
throw new Error(`Invalid RAW3D skin index buffer for bone ${boneIndex}.`);
|
|
17
|
+
const length = indices.data.byteLength / elementSize;
|
|
18
|
+
const stride = weights.data.byteLength === length * 4 ? 4 : weights.stride;
|
|
19
|
+
if (stride < 4 || weights.data.byteLength !== length * stride)
|
|
20
|
+
throw new Error(`Invalid RAW3D skin weight buffer for bone ${boneIndex}.`);
|
|
21
|
+
const indexView = new DataView(indices.data.buffer, indices.data.byteOffset, indices.data.byteLength);
|
|
22
|
+
const weightView = new DataView(weights.data.buffer, weights.data.byteOffset, weights.data.byteLength);
|
|
23
|
+
for (let index = 0; index < length; index++) {
|
|
24
|
+
const vertex = elementSize === 4 ? indexView.getUint32(index * 4, true) : indexView.getUint16(index * 2, true);
|
|
25
|
+
const weight = weightView.getFloat32(index * stride, true);
|
|
26
|
+
if (vertex >= count || !Number.isFinite(weight) || weight < 0)
|
|
27
|
+
throw new Error(`Invalid RAW3D skin influence for bone ${boneIndex}.`);
|
|
28
|
+
if (weight > 0)
|
|
29
|
+
result[vertex].push({ boneIndex, weight });
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return result.map(influences => {
|
|
33
|
+
const sum = influences.reduce((total, influence) => total + influence.weight, 0);
|
|
34
|
+
return influences.map(influence => ({ boneIndex: influence.boneIndex, weight: influence.weight / sum }));
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=raw3d-skinning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw3d-skinning.js","sourceRoot":"","sources":["../src/raw3d-skinning.ts"],"names":[],"mappings":"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"}
|
package/dist/raw3d.d.ts
CHANGED
|
@@ -2,7 +2,11 @@ import { type Demo3DInput } from "./binary.js";
|
|
|
2
2
|
import { Demo3DResource } from "./model.js";
|
|
3
3
|
import { type Demo3DXmlElement, type ParseXmlDocument } from "./xml.js";
|
|
4
4
|
import { type ZipEntryInfo } from "./zip.js";
|
|
5
|
-
|
|
5
|
+
import { Raw3DAnimation, Raw3DInterpolationMode } from "./raw3d-animation.js";
|
|
6
|
+
import type { Raw3DAnimationOptions } from "./raw3d-effects.js";
|
|
7
|
+
export interface ParseRaw3DOptions extends Raw3DAnimationOptions {
|
|
8
|
+
/** Optional explicit resource loader; archive resources take precedence. No automatic network access. */
|
|
9
|
+
readonly resolveResource?: (path: string) => Promise<Uint8Array | undefined> | Uint8Array | undefined;
|
|
6
10
|
readonly parseXml?: ParseXmlDocument;
|
|
7
11
|
readonly xmlParser?: "fast" | "dom";
|
|
8
12
|
}
|
|
@@ -27,6 +31,14 @@ export declare class Raw3DNode {
|
|
|
27
31
|
readonly castsShadow: boolean;
|
|
28
32
|
readonly customAttributes: ReadonlyMap<string, string>;
|
|
29
33
|
readonly xml: Demo3DXmlElement;
|
|
34
|
+
get visible(): boolean;
|
|
35
|
+
get interpolationMode(): Raw3DInterpolationMode;
|
|
36
|
+
get highlight(): number;
|
|
37
|
+
get hasBeenOptimized(): boolean;
|
|
38
|
+
get userData(): string | undefined;
|
|
39
|
+
get clientOwner(): string | undefined;
|
|
40
|
+
get isDecal(): boolean;
|
|
41
|
+
get isBillboard(): boolean;
|
|
30
42
|
constructor(index: number, name: string, parentIndex: number | undefined, meshIndex: number | undefined, layerIndex: number | undefined, materialIndices: readonly number[], textIndex: number | undefined, interactionMode: number | undefined, location: readonly number[], rotation: readonly number[], scale: readonly number[], castsShadow: boolean, customAttributes: ReadonlyMap<string, string>, xml: Demo3DXmlElement);
|
|
31
43
|
}
|
|
32
44
|
export declare class Raw3DLayer {
|
|
@@ -47,6 +59,13 @@ export declare class Raw3DMaterial {
|
|
|
47
59
|
readonly scaleU: number;
|
|
48
60
|
readonly scaleV: number;
|
|
49
61
|
readonly xml: Demo3DXmlElement;
|
|
62
|
+
get streamableTextureIndex(): number;
|
|
63
|
+
get luminosity(): number;
|
|
64
|
+
get offsetU(): number;
|
|
65
|
+
get offsetV(): number;
|
|
66
|
+
get pointSize(): number;
|
|
67
|
+
get normalDepth(): number;
|
|
68
|
+
get shader(): string;
|
|
50
69
|
constructor(red: number, green: number, blue: number, transparency: number, reflectivity: number, textureIndex: number | undefined, normalTextureIndex: number | undefined, normalScale: number, scaleU: number, scaleV: number, xml: Demo3DXmlElement);
|
|
51
70
|
}
|
|
52
71
|
export declare class Raw3DTexture {
|
|
@@ -55,6 +74,17 @@ export declare class Raw3DTexture {
|
|
|
55
74
|
readonly xml: Demo3DXmlElement;
|
|
56
75
|
constructor(path: string, data: Uint8Array | undefined, xml: Demo3DXmlElement);
|
|
57
76
|
}
|
|
77
|
+
export declare class Raw3DStreamableTexture {
|
|
78
|
+
readonly xml: Demo3DXmlElement;
|
|
79
|
+
readonly index: number;
|
|
80
|
+
readonly data: Uint8Array | undefined;
|
|
81
|
+
constructor(xml: Demo3DXmlElement, index: number, data?: Uint8Array | undefined);
|
|
82
|
+
get name(): string;
|
|
83
|
+
get path(): string;
|
|
84
|
+
get id(): string | undefined;
|
|
85
|
+
get width(): number;
|
|
86
|
+
get height(): number;
|
|
87
|
+
}
|
|
58
88
|
export declare class Raw3DText {
|
|
59
89
|
readonly value: string;
|
|
60
90
|
readonly size: number;
|
|
@@ -75,6 +105,12 @@ export declare class Raw3DLight {
|
|
|
75
105
|
readonly attenuationLinear: number;
|
|
76
106
|
readonly attenuationQuadratic: number;
|
|
77
107
|
readonly xml: Demo3DXmlElement;
|
|
108
|
+
get index(): number | undefined;
|
|
109
|
+
get attenuationRange(): number;
|
|
110
|
+
get spotlightFalloff(): number;
|
|
111
|
+
get spotlightInnerAngle(): number;
|
|
112
|
+
get spotlightOuterAngle(): number;
|
|
113
|
+
get castsShadows(): boolean;
|
|
78
114
|
constructor(nodeIndex: number | undefined, materialIndex: number | undefined, enabled: boolean, type: string, attenuationConstant: number, attenuationLinear: number, attenuationQuadratic: number, xml: Demo3DXmlElement);
|
|
79
115
|
}
|
|
80
116
|
export declare class Raw3DVertexAttribute {
|
|
@@ -100,16 +136,48 @@ export declare class Raw3DIndexBuffer {
|
|
|
100
136
|
readonly xml: Demo3DXmlElement;
|
|
101
137
|
constructor(path: string, format: string, data: Uint8Array | undefined, xml: Demo3DXmlElement);
|
|
102
138
|
}
|
|
139
|
+
export declare class Raw3DBone {
|
|
140
|
+
readonly xml: Demo3DXmlElement;
|
|
141
|
+
constructor(xml: Demo3DXmlElement);
|
|
142
|
+
get name(): string;
|
|
143
|
+
/** Scene node driving this bone; -1 denotes the mesh's coordinate frame. */
|
|
144
|
+
get parentIndex(): number;
|
|
145
|
+
get skinIndexBuffer(): number;
|
|
146
|
+
get skinWeightsVertexBuffer(): number;
|
|
147
|
+
get location(): readonly number[];
|
|
148
|
+
get rotation(): readonly number[];
|
|
149
|
+
}
|
|
150
|
+
export declare class Raw3DUIButton {
|
|
151
|
+
readonly xml: Demo3DXmlElement;
|
|
152
|
+
readonly index: number;
|
|
153
|
+
constructor(xml: Demo3DXmlElement, index: number);
|
|
154
|
+
get name(): string;
|
|
155
|
+
get id(): string | undefined;
|
|
156
|
+
get visible(): boolean;
|
|
157
|
+
get checked(): boolean;
|
|
158
|
+
}
|
|
103
159
|
export declare class Raw3DMesh {
|
|
104
160
|
readonly vertexBufferIndex: number;
|
|
105
161
|
readonly indexBufferIndices: readonly number[];
|
|
106
162
|
/** The primitive topology. Omitted by RAW3D means TriangleList. */
|
|
107
163
|
readonly meshType: string;
|
|
108
164
|
readonly xml: Demo3DXmlElement;
|
|
165
|
+
get bones(): readonly Raw3DBone[];
|
|
109
166
|
constructor(vertexBufferIndex: number, indexBufferIndices: readonly number[],
|
|
110
167
|
/** The primitive topology. Omitted by RAW3D means TriangleList. */
|
|
111
168
|
meshType: string, xml: Demo3DXmlElement);
|
|
112
169
|
}
|
|
170
|
+
export declare class Raw3DSceneProperties {
|
|
171
|
+
readonly xml: Demo3DXmlElement;
|
|
172
|
+
constructor(xml: Demo3DXmlElement);
|
|
173
|
+
get showDefaultFloor(): boolean;
|
|
174
|
+
get allowTeleportOnDefaultFloor(): boolean;
|
|
175
|
+
get useDefaultLighting(): boolean;
|
|
176
|
+
get ambientLightColor(): readonly number[];
|
|
177
|
+
get floorOrigin(): readonly number[];
|
|
178
|
+
get floorNormal(): readonly number[];
|
|
179
|
+
get quality(): number | undefined;
|
|
180
|
+
}
|
|
113
181
|
export declare class Raw3DProject {
|
|
114
182
|
readonly root: Demo3DXmlElement;
|
|
115
183
|
readonly origin: string | undefined;
|
|
@@ -123,7 +191,14 @@ export declare class Raw3DProject {
|
|
|
123
191
|
readonly meshes: readonly Raw3DMesh[];
|
|
124
192
|
readonly vertexBuffers: readonly Raw3DVertexBuffer[];
|
|
125
193
|
readonly indexBuffers: readonly Raw3DIndexBuffer[];
|
|
126
|
-
|
|
194
|
+
readonly animationOptions: Raw3DAnimationOptions;
|
|
195
|
+
readonly streamableTextures: readonly Raw3DStreamableTexture[];
|
|
196
|
+
private cachedAnimation?;
|
|
197
|
+
/** Parsed on demand; importing the parser never loads a renderer. */
|
|
198
|
+
get animation(): Raw3DAnimation;
|
|
199
|
+
get sceneProperties(): Raw3DSceneProperties | undefined;
|
|
200
|
+
get buttons(): readonly Raw3DUIButton[];
|
|
201
|
+
constructor(root: Demo3DXmlElement, origin: string | undefined, views: readonly Raw3DView[], nodes: readonly Raw3DNode[], layers: readonly Raw3DLayer[], materials: readonly Raw3DMaterial[], textures: readonly Raw3DTexture[], textObjects: readonly Raw3DText[], lights: readonly Raw3DLight[], meshes: readonly Raw3DMesh[], vertexBuffers: readonly Raw3DVertexBuffer[], indexBuffers: readonly Raw3DIndexBuffer[], animationOptions?: Raw3DAnimationOptions, streamableTextures?: readonly Raw3DStreamableTexture[]);
|
|
127
202
|
}
|
|
128
203
|
export declare class Raw3DPackage {
|
|
129
204
|
readonly entries: readonly ZipEntryInfo[];
|
package/dist/raw3d.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw3d.d.ts","sourceRoot":"","sources":["../src/raw3d.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAmB,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAwB,MAAM,UAAU,CAAC;AAC/G,OAAO,EAA2B,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"raw3d.d.ts","sourceRoot":"","sources":["../src/raw3d.ts"],"names":[],"mappings":"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"}
|
package/dist/raw3d.js
CHANGED
|
@@ -4,6 +4,7 @@ import { parseDemo3DXmlFast } from "./fast-xml.js";
|
|
|
4
4
|
import { Demo3DResource } from "./model.js";
|
|
5
5
|
import { defaultParseXml, xmlDocumentToElement } from "./xml.js";
|
|
6
6
|
import { parseZip } from "./zip.js";
|
|
7
|
+
import { Raw3DAnimation, Raw3DInterpolationMode } from "./raw3d-animation.js";
|
|
7
8
|
export class Raw3DView {
|
|
8
9
|
name;
|
|
9
10
|
position;
|
|
@@ -29,6 +30,14 @@ export class Raw3DNode {
|
|
|
29
30
|
castsShadow;
|
|
30
31
|
customAttributes;
|
|
31
32
|
xml;
|
|
33
|
+
get visible() { return booleanAttribute(this.xml, "Visible", true); }
|
|
34
|
+
get interpolationMode() { return numberAttribute(this.xml, "InterpolationMode", 0); }
|
|
35
|
+
get highlight() { return numberAttribute(this.xml, "Highlight", -1); }
|
|
36
|
+
get hasBeenOptimized() { return booleanAttribute(this.xml, "HasBeenOptimized", false); }
|
|
37
|
+
get userData() { return attribute(this.xml, "UserData"); }
|
|
38
|
+
get clientOwner() { return attribute(this.xml, "ClientOwner"); }
|
|
39
|
+
get isDecal() { return booleanAttribute(this.xml, "IsDecal", false); }
|
|
40
|
+
get isBillboard() { return booleanAttribute(this.xml, "IsBillboard", false); }
|
|
32
41
|
constructor(index, name, parentIndex, meshIndex, layerIndex, materialIndices, textIndex, interactionMode, location, rotation, scale, castsShadow, customAttributes, xml) {
|
|
33
42
|
this.index = index;
|
|
34
43
|
this.name = name;
|
|
@@ -68,6 +77,13 @@ export class Raw3DMaterial {
|
|
|
68
77
|
scaleU;
|
|
69
78
|
scaleV;
|
|
70
79
|
xml;
|
|
80
|
+
get streamableTextureIndex() { return integerAttribute(this.xml, "StreamableTexture") ?? -1; }
|
|
81
|
+
get luminosity() { return numberAttribute(this.xml, "Luminosity", 0); }
|
|
82
|
+
get offsetU() { return numberAttribute(this.xml, "U", 0); }
|
|
83
|
+
get offsetV() { return numberAttribute(this.xml, "V", 0); }
|
|
84
|
+
get pointSize() { return numberAttribute(this.xml, "PointSize", 1); }
|
|
85
|
+
get normalDepth() { return numberAttribute(this.xml, "NormalDepth", 0); }
|
|
86
|
+
get shader() { return attribute(this.xml, "Shader") ?? "Default"; }
|
|
71
87
|
constructor(red, green, blue, transparency, reflectivity, textureIndex, normalTextureIndex, normalScale, scaleU, scaleV, xml) {
|
|
72
88
|
this.red = red;
|
|
73
89
|
this.green = green;
|
|
@@ -92,6 +108,21 @@ export class Raw3DTexture {
|
|
|
92
108
|
this.xml = xml;
|
|
93
109
|
}
|
|
94
110
|
}
|
|
111
|
+
export class Raw3DStreamableTexture {
|
|
112
|
+
xml;
|
|
113
|
+
index;
|
|
114
|
+
data;
|
|
115
|
+
constructor(xml, index, data = undefined) {
|
|
116
|
+
this.xml = xml;
|
|
117
|
+
this.index = index;
|
|
118
|
+
this.data = data;
|
|
119
|
+
}
|
|
120
|
+
get name() { return attribute(this.xml, "Name") ?? ""; }
|
|
121
|
+
get path() { return attribute(this.xml, "Path") ?? ""; }
|
|
122
|
+
get id() { return attribute(this.xml, "Id"); }
|
|
123
|
+
get width() { return integerAttribute(this.xml, "Width") ?? 0; }
|
|
124
|
+
get height() { return integerAttribute(this.xml, "Height") ?? 0; }
|
|
125
|
+
}
|
|
95
126
|
export class Raw3DText {
|
|
96
127
|
value;
|
|
97
128
|
size;
|
|
@@ -121,6 +152,12 @@ export class Raw3DLight {
|
|
|
121
152
|
attenuationLinear;
|
|
122
153
|
attenuationQuadratic;
|
|
123
154
|
xml;
|
|
155
|
+
get index() { return integerAttribute(this.xml, "Index"); }
|
|
156
|
+
get attenuationRange() { return numberAttribute(this.xml, "AttenuationRange", 0); }
|
|
157
|
+
get spotlightFalloff() { return numberAttribute(this.xml, "SpotlightFalloff", 0); }
|
|
158
|
+
get spotlightInnerAngle() { return numberAttribute(this.xml, "SpotlightInnerAngle", 0); }
|
|
159
|
+
get spotlightOuterAngle() { return numberAttribute(this.xml, "SpotlightOuterAngle", 0); }
|
|
160
|
+
get castsShadows() { return booleanAttribute(this.xml, "CastsShadows", false); }
|
|
124
161
|
constructor(nodeIndex, materialIndex, enabled, type, attenuationConstant, attenuationLinear, attenuationQuadratic, xml) {
|
|
125
162
|
this.nodeIndex = nodeIndex;
|
|
126
163
|
this.materialIndex = materialIndex;
|
|
@@ -172,11 +209,37 @@ export class Raw3DIndexBuffer {
|
|
|
172
209
|
this.xml = xml;
|
|
173
210
|
}
|
|
174
211
|
}
|
|
212
|
+
export class Raw3DBone {
|
|
213
|
+
xml;
|
|
214
|
+
constructor(xml) {
|
|
215
|
+
this.xml = xml;
|
|
216
|
+
}
|
|
217
|
+
get name() { return attribute(this.xml, "Name") ?? ""; }
|
|
218
|
+
/** Scene node driving this bone; -1 denotes the mesh's coordinate frame. */
|
|
219
|
+
get parentIndex() { return integerAttribute(this.xml, "Parent") ?? -1; }
|
|
220
|
+
get skinIndexBuffer() { return integerAttribute(this.xml, "SkinIndexBuffer") ?? -1; }
|
|
221
|
+
get skinWeightsVertexBuffer() { return integerAttribute(this.xml, "SkinWeightsVertexBuffer") ?? -1; }
|
|
222
|
+
get location() { return numberList(attribute(this.xml, "Location"), [0, 0, 0]); }
|
|
223
|
+
get rotation() { return numberList(attribute(this.xml, "Rotation"), [0, 0, 0]); }
|
|
224
|
+
}
|
|
225
|
+
export class Raw3DUIButton {
|
|
226
|
+
xml;
|
|
227
|
+
index;
|
|
228
|
+
constructor(xml, index) {
|
|
229
|
+
this.xml = xml;
|
|
230
|
+
this.index = index;
|
|
231
|
+
}
|
|
232
|
+
get name() { return attribute(this.xml, "Name") ?? ""; }
|
|
233
|
+
get id() { return attribute(this.xml, "Id"); }
|
|
234
|
+
get visible() { return booleanAttribute(this.xml, "IsVisible", true); }
|
|
235
|
+
get checked() { return booleanAttribute(this.xml, "IsChecked", false); }
|
|
236
|
+
}
|
|
175
237
|
export class Raw3DMesh {
|
|
176
238
|
vertexBufferIndex;
|
|
177
239
|
indexBufferIndices;
|
|
178
240
|
meshType;
|
|
179
241
|
xml;
|
|
242
|
+
get bones() { return (this.xml.child("Bones")?.childrenNamed("Bone") ?? []).map(xml => new Raw3DBone(xml)); }
|
|
180
243
|
constructor(vertexBufferIndex, indexBufferIndices,
|
|
181
244
|
/** The primitive topology. Omitted by RAW3D means TriangleList. */
|
|
182
245
|
meshType, xml) {
|
|
@@ -186,6 +249,19 @@ export class Raw3DMesh {
|
|
|
186
249
|
this.xml = xml;
|
|
187
250
|
}
|
|
188
251
|
}
|
|
252
|
+
export class Raw3DSceneProperties {
|
|
253
|
+
xml;
|
|
254
|
+
constructor(xml) {
|
|
255
|
+
this.xml = xml;
|
|
256
|
+
}
|
|
257
|
+
get showDefaultFloor() { return booleanAttribute(this.xml, "ShowDefaultFloor", true); }
|
|
258
|
+
get allowTeleportOnDefaultFloor() { return booleanAttribute(this.xml, "AllowTeleportOnDefaultFloor", true); }
|
|
259
|
+
get useDefaultLighting() { return booleanAttribute(this.xml, "UseDefaultLighting", true); }
|
|
260
|
+
get ambientLightColor() { return numberList(attribute(this.xml, "AmbientLightColor")); }
|
|
261
|
+
get floorOrigin() { return numberList(attribute(this.xml, "FloorOrigin")); }
|
|
262
|
+
get floorNormal() { return numberList(attribute(this.xml, "FloorNormal")); }
|
|
263
|
+
get quality() { return integerAttribute(this.xml, "Quality"); }
|
|
264
|
+
}
|
|
189
265
|
export class Raw3DProject {
|
|
190
266
|
root;
|
|
191
267
|
origin;
|
|
@@ -199,7 +275,17 @@ export class Raw3DProject {
|
|
|
199
275
|
meshes;
|
|
200
276
|
vertexBuffers;
|
|
201
277
|
indexBuffers;
|
|
202
|
-
|
|
278
|
+
animationOptions;
|
|
279
|
+
streamableTextures;
|
|
280
|
+
cachedAnimation;
|
|
281
|
+
/** Parsed on demand; importing the parser never loads a renderer. */
|
|
282
|
+
get animation() { return this.cachedAnimation ??= new Raw3DAnimation(this); }
|
|
283
|
+
get sceneProperties() {
|
|
284
|
+
const xml = this.root.child("SceneProperties");
|
|
285
|
+
return xml ? new Raw3DSceneProperties(xml) : undefined;
|
|
286
|
+
}
|
|
287
|
+
get buttons() { return (this.root.child("Buttons")?.childrenNamed("UIButton") ?? []).map((xml, index) => new Raw3DUIButton(xml, integerAttribute(xml, "Index") ?? index)); }
|
|
288
|
+
constructor(root, origin, views, nodes, layers, materials, textures, textObjects, lights, meshes, vertexBuffers, indexBuffers, animationOptions = {}, streamableTextures = []) {
|
|
203
289
|
this.root = root;
|
|
204
290
|
this.origin = origin;
|
|
205
291
|
this.views = views;
|
|
@@ -212,6 +298,8 @@ export class Raw3DProject {
|
|
|
212
298
|
this.meshes = meshes;
|
|
213
299
|
this.vertexBuffers = vertexBuffers;
|
|
214
300
|
this.indexBuffers = indexBuffers;
|
|
301
|
+
this.animationOptions = animationOptions;
|
|
302
|
+
this.streamableTextures = streamableTextures;
|
|
215
303
|
}
|
|
216
304
|
}
|
|
217
305
|
export class Raw3DPackage {
|
|
@@ -248,10 +336,12 @@ export async function parseRaw3D(input, options = {}) {
|
|
|
248
336
|
throw new Demo3DUnsupportedError(`RAW3D Model.xml has unsupported root element "${root.name}".`, "RAW3D_MODEL_ROOT_UNSUPPORTED");
|
|
249
337
|
}
|
|
250
338
|
const loadData = async (path) => {
|
|
339
|
+
if (!path)
|
|
340
|
+
return undefined;
|
|
251
341
|
const entry = entryByPath.get(path.toLowerCase());
|
|
252
|
-
return entry ? entry.arrayBuffer() :
|
|
342
|
+
return entry ? entry.arrayBuffer() : options.resolveResource?.(path);
|
|
253
343
|
};
|
|
254
|
-
const model = await extractRaw3DProject(root, loadData);
|
|
344
|
+
const model = await extractRaw3DProject(root, loadData, options);
|
|
255
345
|
const thumbnailEntry = entryByPath.get("thumbnail.png");
|
|
256
346
|
const aspectsEntry = entryByPath.get("aspects.json");
|
|
257
347
|
const [thumbnail, aspects] = await Promise.all([
|
|
@@ -260,26 +350,28 @@ export async function parseRaw3D(input, options = {}) {
|
|
|
260
350
|
]);
|
|
261
351
|
return new Raw3DPackage(archive.entries.map(toEntryInfo), modelEntry.name, modelXml, model, thumbnail, aspects);
|
|
262
352
|
}
|
|
263
|
-
async function extractRaw3DProject(root, loadData) {
|
|
353
|
+
async function extractRaw3DProject(root, loadData, options) {
|
|
264
354
|
const textureElements = root.child("Textures")?.childrenNamed("Texture") ?? [];
|
|
265
355
|
const vertexBufferElements = root.child("VertexBuffers")?.childrenNamed("VertexBuffer") ?? [];
|
|
266
356
|
const indexBufferElements = root.child("IndexBuffers")?.childrenNamed("IndexBuffer") ?? [];
|
|
357
|
+
const streamElements = root.child("StreamableTextures")?.children ?? [];
|
|
358
|
+
const streams = await Promise.all(streamElements.map(async (xml, index) => new Raw3DStreamableTexture(xml, integerAttribute(xml, "Index") ?? index, await loadData(attribute(xml, "Path") ?? ""))));
|
|
267
359
|
const [textureData, vertexData, indexData] = await Promise.all([
|
|
268
360
|
Promise.all(textureElements.map((element) => loadData(attribute(element, "Path") ?? ""))),
|
|
269
361
|
Promise.all(vertexBufferElements.map((element) => loadData(attribute(element, "Path") ?? ""))),
|
|
270
362
|
Promise.all(indexBufferElements.map((element) => loadData(attribute(element, "Path") ?? "")))
|
|
271
363
|
]);
|
|
272
|
-
return new Raw3DProject(root, attribute(root, "Origin"), (root.child("Views")?.childrenNamed("View") ?? []).map((element) => new Raw3DView(attribute(element, "Name") ?? "", numberList(attribute(element, "Position")), numberList(attribute(element, "Target")))), (root.child("Nodes")?.childrenNamed("Node") ?? []).map((element, position) => new Raw3DNode(integerAttribute(element, "Index") ?? position, attribute(element, "Name") ?? "", integerAttribute(element, "Parent"), integerAttribute(element, "Mesh"), integerAttribute(element, "Layer"), integerList(attribute(element, "Materials")), integerAttribute(element, "Text"), integerAttribute(element, "InteractionMode"), numberList(attribute(element, "Location")), numberList(attribute(element, "Rotation")), numberList(attribute(element, "Scale"), [1, 1, 1]), booleanAttribute(element, "CastsShadow", true), parseCustomAttributes(attribute(element, "CustomAttributes")), element)), (root.child("Layers")?.childrenNamed("Layer") ?? []).map((element) => new Raw3DLayer(attribute(element, "Name") ?? "", integerAttribute(element, "Material"), element)), (root.child("Materials")?.childrenNamed("Material") ?? []).map((element) => new Raw3DMaterial(numberAttribute(element, "R", 0), numberAttribute(element, "G", 0), numberAttribute(element, "B", 0), numberAttribute(element, "A",
|
|
364
|
+
return new Raw3DProject(root, attribute(root, "Origin"), (root.child("Views")?.childrenNamed("View") ?? []).map((element) => new Raw3DView(attribute(element, "Name") ?? "", numberList(attribute(element, "Position")), numberList(attribute(element, "Target")))), (root.child("Nodes")?.childrenNamed("Node") ?? []).map((element, position) => new Raw3DNode(integerAttribute(element, "Index") ?? position, attribute(element, "Name") ?? "", integerAttribute(element, "Parent"), integerAttribute(element, "Mesh"), integerAttribute(element, "Layer"), integerList(attribute(element, "Materials")), integerAttribute(element, "Text"), integerAttribute(element, "InteractionMode"), numberList(attribute(element, "Location")), numberList(attribute(element, "Rotation")), numberList(attribute(element, "Scale"), [1, 1, 1]), booleanAttribute(element, "CastsShadow", true), parseCustomAttributes(attribute(element, "CustomAttributes")), element)), (root.child("Layers")?.childrenNamed("Layer") ?? []).map((element) => new Raw3DLayer(attribute(element, "Name") ?? "", integerAttribute(element, "Material"), element)), (root.child("Materials")?.childrenNamed("Material") ?? []).map((element) => new Raw3DMaterial(numberAttribute(element, "R", 0), numberAttribute(element, "G", 0), numberAttribute(element, "B", 0), 1 - numberAttribute(element, "A", 1), numberAttribute(element, "Reflectivity", 0), integerAttribute(element, "Texture"), integerAttribute(element, "NormalTexture"), numberAttribute(element, "NormalScale", 1), numberAttribute(element, "SU", 1), numberAttribute(element, "SV", 1), element)), textureElements.map((element, index) => new Raw3DTexture(attribute(element, "Path") ?? "", textureData[index], element)), (root.child("TextObjects")?.childrenNamed("Text") ?? []).map((element) => new Raw3DText(attribute(element, "Value") ?? "", numberAttribute(element, "Size", 0.1), attribute(element, "FontFamily") ?? "Arial", integerAttribute(element, "Material"), integerAttribute(element, "VerticalAlign") ?? 0, numberList(attribute(element, "StartPosition")), numberList(attribute(element, "EndPosition")), element)), (root.child("Lights")?.childrenNamed("Light") ?? []).map((element) => new Raw3DLight(integerAttribute(element, "Node"), integerAttribute(element, "Material"), booleanAttribute(element, "Enabled", true), attribute(element, "Type") ?? "Directional", numberAttribute(element, "AttenuationConstant", 1), numberAttribute(element, "AttenuationLinear", 0), numberAttribute(element, "AttenuationQuadratic", 0), element)), (root.child("Meshes")?.childrenNamed("Mesh") ?? []).map((element) => new Raw3DMesh(integerAttribute(element, "VertexBuffer") ?? -1, integerList(attribute(element, "IndexBuffers")), attribute(element, "MeshType") ?? "TriangleList", element)), vertexBufferElements.map((element, index) => {
|
|
273
365
|
let offset = 0;
|
|
274
366
|
const attributes = element.childrenNamed("Attribute").map((attributeElement) => {
|
|
275
367
|
const type = attribute(attributeElement, "Type") ?? "Vector3";
|
|
276
368
|
const componentCount = vectorComponentCount(type);
|
|
277
369
|
const result = new Raw3DVertexAttribute(attribute(attributeElement, "Usage") ?? "", type, componentCount, offset, attributeElement);
|
|
278
|
-
offset += componentCount * 4;
|
|
370
|
+
offset += /^(Color|Byte4|Short2|NormalizedShort2)$/i.test(type) ? 4 : /^(Short4|NormalizedShort4)$/i.test(type) ? 8 : componentCount * 4;
|
|
279
371
|
return result;
|
|
280
372
|
});
|
|
281
373
|
return new Raw3DVertexBuffer(attribute(element, "Path") ?? "", attributes, offset, vertexData[index], element);
|
|
282
|
-
}), indexBufferElements.map((element, index) => new Raw3DIndexBuffer(attribute(element, "Path") ?? "", attribute(element, "Format") ?? "UInt16", indexData[index], element)));
|
|
374
|
+
}), indexBufferElements.map((element, index) => new Raw3DIndexBuffer(attribute(element, "Path") ?? "", attribute(element, "Format") ?? "UInt16", indexData[index], element)), options, streams);
|
|
283
375
|
}
|
|
284
376
|
function attribute(element, name) {
|
|
285
377
|
return element.attributes.find((item) => item.localName === name)?.value;
|
|
@@ -306,6 +398,10 @@ function integerList(value) {
|
|
|
306
398
|
return numberList(value).map((item) => Math.trunc(item));
|
|
307
399
|
}
|
|
308
400
|
function vectorComponentCount(type) {
|
|
401
|
+
if (/^(Color|Byte4|Short4|NormalizedShort4)$/i.test(type))
|
|
402
|
+
return 4;
|
|
403
|
+
if (/^(Short2|NormalizedShort2)$/i.test(type))
|
|
404
|
+
return 2;
|
|
309
405
|
if (/^(Single|Float|Double|Half)$/i.test(type)) {
|
|
310
406
|
return 1;
|
|
311
407
|
}
|
package/dist/raw3d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw3d.js","sourceRoot":"","sources":["../src/raw3d.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"raw3d.js","sourceRoot":"","sources":["../src/raw3d.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Renderer-independent rigid transforms in native RAW3D coordinates. */
|
|
2
|
+
export type Raw3DVector3 = readonly [number, number, number];
|
|
3
|
+
export type Raw3DQuaternion = readonly [number, number, number, number];
|
|
4
|
+
export interface Raw3DRigidTransform {
|
|
5
|
+
readonly position: Raw3DVector3;
|
|
6
|
+
readonly quaternion: Raw3DQuaternion;
|
|
7
|
+
}
|
|
8
|
+
export declare function raw3DQuaternionFromRotation(rotation: readonly number[]): Raw3DQuaternion;
|
|
9
|
+
export declare function raw3DRotationFromQuaternion([x, y, z, w]: Raw3DQuaternion): Raw3DVector3;
|
|
10
|
+
/**
|
|
11
|
+
* Normalized dual-quaternion linear blending (DLB), independently implemented
|
|
12
|
+
* from Kavan et al., Dual Quaternions for Rigid Transformation Blending (2006).
|
|
13
|
+
* This follows a rigid screw path; unlike ScLERP its speed need not be constant.
|
|
14
|
+
*/
|
|
15
|
+
export declare function interpolateRaw3DDualQuaternion(start: Raw3DRigidTransform, end: Raw3DRigidTransform, fraction: number): Raw3DRigidTransform;
|
|
16
|
+
//# sourceMappingURL=rigid-interpolation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rigid-interpolation.d.ts","sourceRoot":"","sources":["../src/rigid-interpolation.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7D,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACxE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;CACtC;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAOxF;AAED,wBAAgB,2BAA2B,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,eAAe,GAAG,YAAY,CAKpF;AASD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,GACrE,mBAAmB,CAsBrB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export function raw3DQuaternionFromRotation(rotation) {
|
|
2
|
+
const [x, y, z] = [0, 1, 2].map(i => (rotation[i] ?? 0) / 2);
|
|
3
|
+
const a = Math.cos(x), b = Math.sin(x), c = Math.cos(y), d = Math.sin(y);
|
|
4
|
+
const e = Math.cos(z), f = Math.sin(z);
|
|
5
|
+
// Native yaw-pitch-roll corresponds to intrinsic YXZ.
|
|
6
|
+
return [b * c * e + a * d * f, a * d * e - b * c * f,
|
|
7
|
+
a * c * f - b * d * e, a * c * e + b * d * f];
|
|
8
|
+
}
|
|
9
|
+
export function raw3DRotationFromQuaternion([x, y, z, w]) {
|
|
10
|
+
const sine = Math.max(-1, Math.min(1, 2 * (x * w - y * z)));
|
|
11
|
+
return Math.abs(sine) < .9999999
|
|
12
|
+
? [Math.asin(sine), Math.atan2(2 * (x * z + y * w), 1 - 2 * (x * x + y * y)), Math.atan2(2 * (x * y + z * w), 1 - 2 * (x * x + z * z))]
|
|
13
|
+
: [Math.asin(sine), Math.atan2(2 * (y * w - x * z), 1 - 2 * (y * y + z * z)), 0];
|
|
14
|
+
}
|
|
15
|
+
function multiply(a, b) {
|
|
16
|
+
return [a[3] * b[0] + a[0] * b[3] + a[1] * b[2] - a[2] * b[1],
|
|
17
|
+
a[3] * b[1] - a[0] * b[2] + a[1] * b[3] + a[2] * b[0],
|
|
18
|
+
a[3] * b[2] + a[0] * b[1] - a[1] * b[0] + a[2] * b[3],
|
|
19
|
+
a[3] * b[3] - a[0] * b[0] - a[1] * b[1] - a[2] * b[2]];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Normalized dual-quaternion linear blending (DLB), independently implemented
|
|
23
|
+
* from Kavan et al., Dual Quaternions for Rigid Transformation Blending (2006).
|
|
24
|
+
* This follows a rigid screw path; unlike ScLERP its speed need not be constant.
|
|
25
|
+
*/
|
|
26
|
+
export function interpolateRaw3DDualQuaternion(start, end, fraction) {
|
|
27
|
+
if (!Number.isFinite(fraction))
|
|
28
|
+
throw new RangeError("Interpolation fraction must be finite.");
|
|
29
|
+
const t = Math.max(0, Math.min(1, fraction));
|
|
30
|
+
const normalize = (q) => {
|
|
31
|
+
const length = Math.hypot(...q);
|
|
32
|
+
if (!Number.isFinite(length) || length < 1e-12)
|
|
33
|
+
throw new RangeError("A rigid transform needs a finite nonzero quaternion.");
|
|
34
|
+
return q.map(v => v / length);
|
|
35
|
+
};
|
|
36
|
+
const a = normalize(start.quaternion), b = normalize(end.quaternion);
|
|
37
|
+
if (![...start.position, ...end.position].every(Number.isFinite))
|
|
38
|
+
throw new RangeError("Rigid transform positions must be finite.");
|
|
39
|
+
const ad = multiply([...start.position, 0], a), bd = multiply([...end.position, 0], b);
|
|
40
|
+
// q and -q describe the same pose. Align both real and dual parts together.
|
|
41
|
+
const sign = a.reduce((sum, value, i) => sum + value * b[i], 0) < 0 ? -1 : 1;
|
|
42
|
+
const real = a.map((value, i) => (1 - t) * value + t * sign * b[i]);
|
|
43
|
+
const dual = ad.map((value, i) => ((1 - t) * value + t * sign * bd[i]) / 2);
|
|
44
|
+
const length = Math.hypot(...real);
|
|
45
|
+
const q = real.map(v => v / length);
|
|
46
|
+
const d = dual.map(v => v / length);
|
|
47
|
+
const projection = q.reduce((sum, value, i) => sum + value * d[i], 0);
|
|
48
|
+
const orthogonal = d.map((value, i) => value - projection * q[i]);
|
|
49
|
+
const translation = multiply(orthogonal, [-q[0], -q[1], -q[2], q[3]]);
|
|
50
|
+
return { position: [2 * translation[0], 2 * translation[1], 2 * translation[2]], quaternion: q };
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=rigid-interpolation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rigid-interpolation.js","sourceRoot":"","sources":["../src/rigid-interpolation.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|