@jfk-solutions/demo3d-file-format 1.8.0 → 1.10.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.
Files changed (75) hide show
  1. package/README.md +225 -0
  2. package/dist/examples/export-embedded-viewer-standalone.html +1 -1
  3. package/dist/examples/three-render-smoke-standalone.html +295 -231
  4. package/dist/index.d.ts +8 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +7 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/model.d.ts +1 -0
  9. package/dist/model.d.ts.map +1 -1
  10. package/dist/model.js +6 -0
  11. package/dist/model.js.map +1 -1
  12. package/dist/raw3d-animation.d.ts +63 -0
  13. package/dist/raw3d-animation.d.ts.map +1 -0
  14. package/dist/raw3d-animation.js +200 -0
  15. package/dist/raw3d-animation.js.map +1 -0
  16. package/dist/raw3d-effects.d.ts +66 -0
  17. package/dist/raw3d-effects.d.ts.map +1 -0
  18. package/dist/raw3d-effects.js +172 -0
  19. package/dist/raw3d-effects.js.map +1 -0
  20. package/dist/raw3d-skinning.d.ts +8 -0
  21. package/dist/raw3d-skinning.d.ts.map +1 -0
  22. package/dist/raw3d-skinning.js +37 -0
  23. package/dist/raw3d-skinning.js.map +1 -0
  24. package/dist/raw3d.d.ts +77 -2
  25. package/dist/raw3d.d.ts.map +1 -1
  26. package/dist/raw3d.js +103 -7
  27. package/dist/raw3d.js.map +1 -1
  28. package/dist/rigid-interpolation.d.ts +16 -0
  29. package/dist/rigid-interpolation.d.ts.map +1 -0
  30. package/dist/rigid-interpolation.js +52 -0
  31. package/dist/rigid-interpolation.js.map +1 -0
  32. package/dist/three/backend.d.ts +13 -0
  33. package/dist/three/backend.d.ts.map +1 -0
  34. package/dist/three/backend.js +9 -0
  35. package/dist/three/backend.js.map +1 -0
  36. package/dist/three/effects.d.ts +7 -0
  37. package/dist/three/effects.d.ts.map +1 -0
  38. package/dist/three/effects.js +127 -0
  39. package/dist/three/effects.js.map +1 -0
  40. package/dist/three/index.d.ts +2 -1
  41. package/dist/three/index.d.ts.map +1 -1
  42. package/dist/three/index.js +72 -14
  43. package/dist/three/index.js.map +1 -1
  44. package/dist/three/native-lighting.d.ts +5 -0
  45. package/dist/three/native-lighting.d.ts.map +1 -0
  46. package/dist/three/native-lighting.js +86 -0
  47. package/dist/three/native-lighting.js.map +1 -0
  48. package/dist/three/parallax.d.ts +5 -0
  49. package/dist/three/parallax.d.ts.map +1 -0
  50. package/dist/three/parallax.js +63 -0
  51. package/dist/three/parallax.js.map +1 -0
  52. package/dist/three/raw3d.d.ts +25 -0
  53. package/dist/three/raw3d.d.ts.map +1 -1
  54. package/dist/three/raw3d.js +404 -16
  55. package/dist/three/raw3d.js.map +1 -1
  56. package/dist/three/renderer.d.ts.map +1 -1
  57. package/dist/three/renderer.js +3 -0
  58. package/dist/three/renderer.js.map +1 -1
  59. package/dist/three/skinning.d.ts +11 -0
  60. package/dist/three/skinning.d.ts.map +1 -0
  61. package/dist/three/skinning.js +92 -0
  62. package/dist/three/skinning.js.map +1 -0
  63. package/dist/three/tsl.d.ts +60 -0
  64. package/dist/three/tsl.d.ts.map +1 -0
  65. package/dist/three/tsl.js +3 -0
  66. package/dist/three/tsl.js.map +1 -0
  67. package/dist/three/webgpu-native.d.ts +3 -0
  68. package/dist/three/webgpu-native.d.ts.map +1 -0
  69. package/dist/three/webgpu-native.js +58 -0
  70. package/dist/three/webgpu-native.js.map +1 -0
  71. package/dist/three/webgpu-relief.d.ts +3 -0
  72. package/dist/three/webgpu-relief.d.ts.map +1 -0
  73. package/dist/three/webgpu-relief.js +61 -0
  74. package/dist/three/webgpu-relief.js.map +1 -0
  75. package/package.json +1 -1
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
- constructor(root, origin, views, nodes, layers, materials, textures, textObjects, lights, meshes, vertexBuffers, indexBuffers) {
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() : undefined;
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", 0), 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) => {
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":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAgD,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC/G,OAAO,EAAE,QAAQ,EAAoC,MAAM,UAAU,CAAC;AAOtE,MAAM,OAAO,SAAS;IAEF,IAAI;IACJ,QAAQ;IACR,MAAM;IAHxB,YACkB,IAAY,EACZ,QAA2B,EAC3B,MAAyB;oBAFzB,IAAI;wBACJ,QAAQ;sBACR,MAAM;IACrB,CAAC;CACL;AAED,MAAM,OAAO,SAAS;IAEF,KAAK;IACL,IAAI;IACJ,WAAW;IACX,SAAS;IACT,UAAU;IACV,eAAe;IACf,SAAS;IACT,eAAe;IACf,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,WAAW;IACX,gBAAgB;IAChB,GAAG;IAdrB,YACkB,KAAa,EACb,IAAY,EACZ,WAA+B,EAC/B,SAA6B,EAC7B,UAA8B,EAC9B,eAAkC,EAClC,SAA6B,EAC7B,eAAmC,EACnC,QAA2B,EAC3B,QAA2B,EAC3B,KAAwB,EACxB,WAAoB,EACpB,gBAA6C,EAC7C,GAAqB;qBAbrB,KAAK;oBACL,IAAI;2BACJ,WAAW;yBACX,SAAS;0BACT,UAAU;+BACV,eAAe;yBACf,SAAS;+BACT,eAAe;wBACf,QAAQ;wBACR,QAAQ;qBACR,KAAK;2BACL,WAAW;gCACX,gBAAgB;mBAChB,GAAG;IAClB,CAAC;CACL;AAED,MAAM,OAAO,UAAU;IAEH,IAAI;IACJ,aAAa;IACb,GAAG;IAHrB,YACkB,IAAY,EACZ,aAAiC,EACjC,GAAqB;oBAFrB,IAAI;6BACJ,aAAa;mBACb,GAAG;IAClB,CAAC;CACL;AAED,MAAM,OAAO,aAAa;IAEN,GAAG;IACH,KAAK;IACL,IAAI;IACJ,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,WAAW;IACX,MAAM;IACN,MAAM;IACN,GAAG;IAXrB,YACkB,GAAW,EACX,KAAa,EACb,IAAY,EACZ,YAAoB,EACpB,YAAoB,EACpB,YAAgC,EAChC,kBAAsC,EACtC,WAAmB,EACnB,MAAc,EACd,MAAc,EACd,GAAqB;mBAVrB,GAAG;qBACH,KAAK;oBACL,IAAI;4BACJ,YAAY;4BACZ,YAAY;4BACZ,YAAY;kCACZ,kBAAkB;2BAClB,WAAW;sBACX,MAAM;sBACN,MAAM;mBACN,GAAG;IAClB,CAAC;CACL;AAED,MAAM,OAAO,YAAY;IAEL,IAAI;IACJ,IAAI;IACJ,GAAG;IAHrB,YACkB,IAAY,EACZ,IAA4B,EAC5B,GAAqB;oBAFrB,IAAI;oBACJ,IAAI;mBACJ,GAAG;IAClB,CAAC;CACL;AAED,MAAM,OAAO,SAAS;IAEF,KAAK;IACL,IAAI;IACJ,UAAU;IACV,aAAa;IACb,aAAa;IACb,aAAa;IACb,WAAW;IACX,GAAG;IARrB,YACkB,KAAa,EACb,IAAY,EACZ,UAAkB,EAClB,aAAiC,EACjC,aAAqB,EACrB,aAAgC,EAChC,WAA8B,EAC9B,GAAqB;qBAPrB,KAAK;oBACL,IAAI;0BACJ,UAAU;6BACV,aAAa;6BACb,aAAa;6BACb,aAAa;2BACb,WAAW;mBACX,GAAG;IAClB,CAAC;CACL;AAED,MAAM,OAAO,UAAU;IAEH,SAAS;IACT,aAAa;IACb,OAAO;IACP,IAAI;IACJ,mBAAmB;IACnB,iBAAiB;IACjB,oBAAoB;IACpB,GAAG;IARrB,YACkB,SAA6B,EAC7B,aAAiC,EACjC,OAAgB,EAChB,IAAY,EACZ,mBAA2B,EAC3B,iBAAyB,EACzB,oBAA4B,EAC5B,GAAqB;yBAPrB,SAAS;6BACT,aAAa;uBACb,OAAO;oBACP,IAAI;mCACJ,mBAAmB;iCACnB,iBAAiB;oCACjB,oBAAoB;mBACpB,GAAG;IAClB,CAAC;CACL;AAED,MAAM,OAAO,oBAAoB;IAEb,KAAK;IACL,IAAI;IACJ,cAAc;IACd,MAAM;IACN,GAAG;IALrB,YACkB,KAAa,EACb,IAAY,EACZ,cAAsB,EACtB,MAAc,EACd,GAAqB;qBAJrB,KAAK;oBACL,IAAI;8BACJ,cAAc;sBACd,MAAM;mBACN,GAAG;IAClB,CAAC;CACL;AAED,MAAM,OAAO,iBAAiB;IAEV,IAAI;IACJ,UAAU;IACV,MAAM;IACN,IAAI;IACJ,GAAG;IALrB,YACkB,IAAY,EACZ,UAA2C,EAC3C,MAAc,EACd,IAA4B,EAC5B,GAAqB;oBAJrB,IAAI;0BACJ,UAAU;sBACV,MAAM;oBACN,IAAI;mBACJ,GAAG;IAClB,CAAC;CACL;AAED,MAAM,OAAO,gBAAgB;IAET,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,GAAG;IAJrB,YACkB,IAAY,EACZ,MAAc,EACd,IAA4B,EAC5B,GAAqB;oBAHrB,IAAI;sBACJ,MAAM;oBACN,IAAI;mBACJ,GAAG;IAClB,CAAC;CACL;AAED,MAAM,OAAO,SAAS;IAEF,iBAAiB;IACjB,kBAAkB;IAElB,QAAQ;IACR,GAAG;IALrB,YACkB,iBAAyB,EACzB,kBAAqC;IACrD,mEAAmE;IACnD,QAAgB,EAChB,GAAqB;iCAJrB,iBAAiB;kCACjB,kBAAkB;wBAElB,QAAQ;mBACR,GAAG;IAClB,CAAC;CACL;AAED,MAAM,OAAO,YAAY;IAEL,IAAI;IACJ,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,SAAS;IACT,QAAQ;IACR,WAAW;IACX,MAAM;IACN,MAAM;IACN,aAAa;IACb,YAAY;IAZ9B,YACkB,IAAsB,EACtB,MAA0B,EAC1B,KAA2B,EAC3B,KAA2B,EAC3B,MAA6B,EAC7B,SAAmC,EACnC,QAAiC,EACjC,WAAiC,EACjC,MAA6B,EAC7B,MAA4B,EAC5B,aAA2C,EAC3C,YAAyC;oBAXzC,IAAI;sBACJ,MAAM;qBACN,KAAK;qBACL,KAAK;sBACL,MAAM;yBACN,SAAS;wBACT,QAAQ;2BACR,WAAW;sBACX,MAAM;sBACN,MAAM;6BACN,aAAa;4BACb,YAAY;IAC3B,CAAC;CACL;AAED,MAAM,OAAO,YAAY;IAEL,OAAO;IACP,cAAc;IACd,QAAQ;IACR,KAAK;IACL,SAAS;IACT,OAAO;IANzB,YACkB,OAAgC,EAChC,cAAsB,EACtB,QAAgB,EAChB,KAAmB,EACnB,SAA0B,EAC1B,OAAwB;uBALxB,OAAO;8BACP,cAAc;wBACd,QAAQ;qBACR,KAAK;yBACL,SAAS;uBACT,OAAO;IACtB,CAAC;CACL;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAkB,EAAE,OAAO,GAAsB,EAAE;IAClF,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,cAAc,CAAC,4DAA4D,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,UAAU,CAAC,gBAAgB,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,sBAAsB,CAAC,yCAAyC,EAAE,mBAAmB,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,UAAU,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK;QAC1D,CAAC,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,sBAAsB,CAC9B,iDAAiD,IAAI,CAAC,IAAI,IAAI,EAC9D,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAY,EAAmC,EAAE;QACvE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;QACvD,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;KACpD,CAAC,CAAC;IAEH,OAAO,IAAI,YAAY,CACrB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAChC,UAAU,CAAC,IAAI,EACf,QAAQ,EACR,KAAK,EACL,SAAS,EACT,OAAO,CACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAAsB,EACtB,QAA2D;IAE3D,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/E,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC9F,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC3F,MAAM,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC9F,CAAC,CAAC;IAEH,OAAO,IAAI,YAAY,CACrB,IAAI,EACJ,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,EACzB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,SAAS,CAC/E,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,EAChC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAC1C,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CACzC,CAAC,EACF,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CACzF,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,QAAQ,EAC9C,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,EAChC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,EACnC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,EACjC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAClC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAC5C,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,EACjC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAC5C,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAC1C,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAC1C,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAClD,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,EAC9C,qBAAqB,CAAC,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAC7D,OAAO,CACR,CAAC,EACF,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,UAAU,CAClF,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,EAChC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,EACrC,OAAO,CACR,CAAC,EACF,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,aAAa,CAC3F,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAChC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAChC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAChC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAChC,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,EAC3C,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,EACpC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,EAC1C,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,EAC1C,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EACjC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EACjC,OAAO,CACR,CAAC,EACF,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,YAAY,CACtD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,EAChC,WAAW,CAAC,KAAK,CAAC,EAClB,OAAO,CACR,CAAC,EACF,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,SAAS,CACrF,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EACjC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EACrC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,OAAO,EAC3C,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,EACrC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,EAC/C,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,EAC/C,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,EAC7C,OAAO,CACR,CAAC,EACF,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,UAAU,CAClF,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,EACjC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,EACrC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAC1C,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,aAAa,EAC3C,eAAe,CAAC,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC,EAClD,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC,EAChD,eAAe,CAAC,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC,EACnD,OAAO,CACR,CAAC,EACF,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,SAAS,CAChF,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAC/C,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAC/C,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,cAAc,EAChD,OAAO,CACR,CAAC,EACF,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE;YAC7E,MAAM,IAAI,GAAG,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,SAAS,CAAC;YAC9D,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,oBAAoB,CACrC,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,EAAE,EAC1C,IAAI,EACJ,cAAc,EACd,MAAM,EACN,gBAAgB,CACjB,CAAC;YACF,MAAM,IAAI,cAAc,GAAG,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,iBAAiB,CAC1B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,EAChC,UAAU,EACV,MAAM,EACN,UAAU,CAAC,KAAK,CAAC,EACjB,OAAO,CACR,CAAC;IACJ,CAAC,CAAC,EACF,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAC9D,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,EAChC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,QAAQ,EACxC,SAAS,CAAC,KAAK,CAAC,EAChB,OAAO,CACR,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,OAAyB,EAAE,IAAY;IACxD,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,OAAyB,EAAE,IAAY,EAAE,QAAgB;IAChF,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAyB,EAAE,IAAY;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAyB,EAAE,IAAY,EAAE,QAAiB;IAClF,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IACtD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG,CAAC;AAC7E,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB,EAAE,QAAQ,GAAsB,EAAE;IAC7E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAyB;IACtD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAE,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,WAAW,CAAC,KAAmB;IACtC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,KAAe;IACvC,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACvF,CAAC"}
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"}
@@ -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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"}
@@ -1,6 +1,7 @@
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";
5
6
  export { applyDemo3DThreeRenderMode, type Demo3DThreeRenderMode, type Demo3DThreeRenderModeOptions, type Demo3DThreeRenderModeResult } from "./presentation.js";
6
7
  export type ThreeModule = typeof Three;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/three/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/three/index.ts"],"names":[],"mappings":"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"}