abstract-3d 4.0.10 → 4.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/abstract-3d.d.ts +6 -4
- package/lib/abstract-3d.d.ts.map +1 -1
- package/lib/abstract-3d.js +12 -0
- package/lib/abstract-3d.js.map +1 -1
- package/lib/renderers/three/appearance/appearance.d.ts +5 -3
- package/lib/renderers/three/appearance/appearance.d.ts.map +1 -1
- package/lib/renderers/three/appearance/appearance.js +1 -1
- package/lib/renderers/three/appearance/appearance.js.map +1 -1
- package/lib/renderers/three/build/materials.d.ts.map +1 -1
- package/lib/renderers/three/build/materials.js +8 -6
- package/lib/renderers/three/build/materials.js.map +1 -1
- package/package.json +3 -3
- package/src/abstract-3d.ts +17 -4
- package/src/renderers/three/appearance/appearance.test.ts +9 -4
- package/src/renderers/three/appearance/appearance.ts +6 -4
- package/src/renderers/three/build/materials.ts +8 -6
- package/lib/renderers/ifc/ifc.test.d.ts +0 -2
- package/lib/renderers/ifc/ifc.test.d.ts.map +0 -1
- package/lib/renderers/ifc/ifc.test.js +0 -380
- package/lib/renderers/ifc/ifc.test.js.map +0 -1
- package/lib/renderers/react/react-camera.d.ts +0 -71
- package/lib/renderers/react/react-camera.d.ts.map +0 -1
- package/lib/renderers/react/react-camera.js +0 -201
- package/lib/renderers/react/react-camera.js.map +0 -1
- package/lib/renderers/react/react-dimension.d.ts +0 -27
- package/lib/renderers/react/react-dimension.d.ts.map +0 -1
- package/lib/renderers/react/react-dimension.js +0 -44
- package/lib/renderers/react/react-dimension.js.map +0 -1
- package/lib/renderers/react/react-group.d.ts +0 -29
- package/lib/renderers/react/react-group.d.ts.map +0 -1
- package/lib/renderers/react/react-group.js +0 -82
- package/lib/renderers/react/react-group.js.map +0 -1
- package/lib/renderers/react/react-image-material.d.ts +0 -30
- package/lib/renderers/react/react-image-material.d.ts.map +0 -1
- package/lib/renderers/react/react-image-material.js +0 -81
- package/lib/renderers/react/react-image-material.js.map +0 -1
- package/lib/renderers/react/react-material.d.ts +0 -19
- package/lib/renderers/react/react-material.d.ts.map +0 -1
- package/lib/renderers/react/react-material.js +0 -39
- package/lib/renderers/react/react-material.js.map +0 -1
- package/lib/renderers/react/react-mesh.d.ts +0 -11
- package/lib/renderers/react/react-mesh.d.ts.map +0 -1
- package/lib/renderers/react/react-mesh.js +0 -302
- package/lib/renderers/react/react-mesh.js.map +0 -1
- package/lib/renderers/react/react-relation.d.ts +0 -10
- package/lib/renderers/react/react-relation.d.ts.map +0 -1
- package/lib/renderers/react/react-relation.js +0 -31
- package/lib/renderers/react/react-relation.js.map +0 -1
- package/lib/renderers/react/react-scene.d.ts +0 -25
- package/lib/renderers/react/react-scene.d.ts.map +0 -1
- package/lib/renderers/react/react-scene.js +0 -13
- package/lib/renderers/react/react-scene.js.map +0 -1
- package/lib/renderers/react/react-types.d.ts +0 -7
- package/lib/renderers/react/react-types.d.ts.map +0 -1
- package/lib/renderers/react/react-types.js +0 -3
- package/lib/renderers/react/react-types.js.map +0 -1
- package/lib/renderers/three/appearance/appearance.test.d.ts +0 -2
- package/lib/renderers/three/appearance/appearance.test.d.ts.map +0 -1
- package/lib/renderers/three/appearance/appearance.test.js +0 -97
- package/lib/renderers/three/appearance/appearance.test.js.map +0 -1
- package/lib/renderers/three/appearance.d.ts +0 -41
- package/lib/renderers/three/appearance.d.ts.map +0 -1
- package/lib/renderers/three/appearance.js +0 -100
- package/lib/renderers/three/appearance.js.map +0 -1
- package/lib/renderers/three/build/build.test.d.ts +0 -2
- package/lib/renderers/three/build/build.test.d.ts.map +0 -1
- package/lib/renderers/three/build/build.test.js +0 -120
- package/lib/renderers/three/build/build.test.js.map +0 -1
- package/lib/renderers/three/build.d.ts +0 -50
- package/lib/renderers/three/build.d.ts.map +0 -1
- package/lib/renderers/three/build.js +0 -210
- package/lib/renderers/three/build.js.map +0 -1
- package/lib/renderers/three/camera/camera.test.d.ts +0 -2
- package/lib/renderers/three/camera/camera.test.d.ts.map +0 -1
- package/lib/renderers/three/camera/camera.test.js +0 -46
- package/lib/renderers/three/camera/camera.test.js.map +0 -1
- package/lib/renderers/three/camera.d.ts +0 -63
- package/lib/renderers/three/camera.d.ts.map +0 -1
- package/lib/renderers/three/camera.js +0 -85
- package/lib/renderers/three/camera.js.map +0 -1
- package/lib/renderers/three/compile/compile.test.d.ts +0 -2
- package/lib/renderers/three/compile/compile.test.d.ts.map +0 -1
- package/lib/renderers/three/compile/compile.test.js +0 -93
- package/lib/renderers/three/compile/compile.test.js.map +0 -1
- package/lib/renderers/three/compile.d.ts +0 -58
- package/lib/renderers/three/compile.d.ts.map +0 -1
- package/lib/renderers/three/compile.js +0 -89
- package/lib/renderers/three/compile.js.map +0 -1
- package/lib/renderers/three/controls.d.ts +0 -27
- package/lib/renderers/three/controls.d.ts.map +0 -1
- package/lib/renderers/three/controls.js +0 -115
- package/lib/renderers/three/controls.js.map +0 -1
- package/lib/renderers/three/geometry/geometry.test.d.ts +0 -2
- package/lib/renderers/three/geometry/geometry.test.d.ts.map +0 -1
- package/lib/renderers/three/geometry/geometry.test.js +0 -80
- package/lib/renderers/three/geometry/geometry.test.js.map +0 -1
- package/lib/renderers/three/geometry.d.ts +0 -20
- package/lib/renderers/three/geometry.d.ts.map +0 -1
- package/lib/renderers/three/geometry.js +0 -164
- package/lib/renderers/three/geometry.js.map +0 -1
- package/lib/renderers/three/gizmo.d.ts +0 -49
- package/lib/renderers/three/gizmo.d.ts.map +0 -1
- package/lib/renderers/three/gizmo.js +0 -172
- package/lib/renderers/three/gizmo.js.map +0 -1
- package/lib/renderers/three/input.d.ts +0 -25
- package/lib/renderers/three/input.d.ts.map +0 -1
- package/lib/renderers/three/input.js +0 -71
- package/lib/renderers/three/input.js.map +0 -1
- package/lib/renderers/three/lines.d.ts +0 -16
- package/lib/renderers/three/lines.d.ts.map +0 -1
- package/lib/renderers/three/lines.js +0 -63
- package/lib/renderers/three/lines.js.map +0 -1
- package/lib/renderers/three/materials.d.ts +0 -15
- package/lib/renderers/three/materials.d.ts.map +0 -1
- package/lib/renderers/three/materials.js +0 -70
- package/lib/renderers/three/materials.js.map +0 -1
- package/lib/renderers/three/options.d.ts +0 -68
- package/lib/renderers/three/options.d.ts.map +0 -1
- package/lib/renderers/three/options.js +0 -64
- package/lib/renderers/three/options.js.map +0 -1
- package/lib/renderers/three/overlays.d.ts +0 -25
- package/lib/renderers/three/overlays.d.ts.map +0 -1
- package/lib/renderers/three/overlays.js +0 -57
- package/lib/renderers/three/overlays.js.map +0 -1
- package/lib/renderers/three/quality/quality.test.d.ts +0 -2
- package/lib/renderers/three/quality/quality.test.d.ts.map +0 -1
- package/lib/renderers/three/quality/quality.test.js +0 -23
- package/lib/renderers/three/quality/quality.test.js.map +0 -1
- package/lib/renderers/three/quality.d.ts +0 -24
- package/lib/renderers/three/quality.d.ts.map +0 -1
- package/lib/renderers/three/quality.js +0 -67
- package/lib/renderers/three/quality.js.map +0 -1
- package/lib/renderers/three/text/text.test.d.ts +0 -2
- package/lib/renderers/three/text/text.test.d.ts.map +0 -1
- package/lib/renderers/three/text/text.test.js +0 -70
- package/lib/renderers/three/text/text.test.js.map +0 -1
- package/lib/renderers/three/text.d.ts +0 -53
- package/lib/renderers/three/text.d.ts.map +0 -1
- package/lib/renderers/three/text.js +0 -151
- package/lib/renderers/three/text.js.map +0 -1
- package/lib/renderers/three/viewer/options.test.d.ts +0 -2
- package/lib/renderers/three/viewer/options.test.d.ts.map +0 -1
- package/lib/renderers/three/viewer/options.test.js +0 -38
- package/lib/renderers/three/viewer/options.test.js.map +0 -1
- package/lib/renderers/three/viewer.d.ts +0 -38
- package/lib/renderers/three/viewer.d.ts.map +0 -1
- package/lib/renderers/three/viewer.js +0 -435
- package/lib/renderers/three/viewer.js.map +0 -1
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import TinySDF from "@mapbox/tiny-sdf";
|
|
2
|
-
import { Color, DataTexture, FrontSide, InstancedBufferAttribute, InstancedMesh, LinearFilter, Matrix4, PlaneGeometry, RedFormat, UnsignedByteType, Vector3, } from "three";
|
|
3
|
-
import { float, fwidth, instancedBufferAttribute, smoothstep, texture as textureNode, uv } from "three/tsl";
|
|
4
|
-
import { MeshBasicNodeMaterial } from "three/webgpu";
|
|
5
|
-
/** Text as signed distance field glyphs from the system font, packed into one atlas texture, so all text draws in one call */
|
|
6
|
-
export const RASTER_SIZE = 40;
|
|
7
|
-
export const SDF_BUFFER = 4;
|
|
8
|
-
const SDF_RADIUS = 10;
|
|
9
|
-
/** The distance field's value at the glyph's edge, from tiny-sdf's default cutoff of 0.25 */
|
|
10
|
-
export const SDF_EDGE = 0.75;
|
|
11
|
-
const FONT_FAMILY = "Helvetica, Arial, sans-serif";
|
|
12
|
-
const LINE_HEIGHT = 1.5;
|
|
13
|
-
const LETTER_SPACING = 0.001;
|
|
14
|
-
/** Of the font size, above the baseline, to center a line's glyphs in it */
|
|
15
|
-
const ASCENT = 0.8;
|
|
16
|
-
/** Rasterizes with the OS's built-in Helvetica or Arial, on a canvas created at first use */
|
|
17
|
-
export function createSystemFontRasterizer() {
|
|
18
|
-
const sdf = {};
|
|
19
|
-
return (char) => {
|
|
20
|
-
sdf.current ??= new TinySDF({ fontSize: RASTER_SIZE, buffer: SDF_BUFFER, radius: SDF_RADIUS, fontFamily: FONT_FAMILY });
|
|
21
|
-
return sdf.current.draw(char);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
export function createGlyphAtlas(rasterize = createSystemFontRasterizer(), size = 1024) {
|
|
25
|
-
const data = new Uint8Array(size * size);
|
|
26
|
-
const texture = new DataTexture(data, size, size, RedFormat, UnsignedByteType);
|
|
27
|
-
texture.minFilter = LinearFilter;
|
|
28
|
-
texture.magFilter = LinearFilter;
|
|
29
|
-
texture.generateMipmaps = false;
|
|
30
|
-
const glyphs = new Map();
|
|
31
|
-
const shelf = { x: 0, y: 0, height: 0 };
|
|
32
|
-
const pack = (bitmap) => {
|
|
33
|
-
if (shelf.x + bitmap.width > size) {
|
|
34
|
-
Object.assign(shelf, { x: 0, y: shelf.y + shelf.height, height: 0 });
|
|
35
|
-
}
|
|
36
|
-
if (shelf.y + bitmap.height > size) {
|
|
37
|
-
return undefined;
|
|
38
|
-
}
|
|
39
|
-
const [x, y] = [shelf.x, shelf.y];
|
|
40
|
-
for (let row = 0; row < bitmap.height; row++) {
|
|
41
|
-
data.set(bitmap.data.subarray(row * bitmap.width, (row + 1) * bitmap.width), (y + row) * size + x);
|
|
42
|
-
}
|
|
43
|
-
Object.assign(shelf, { x: x + bitmap.width, height: Math.max(shelf.height, bitmap.height) });
|
|
44
|
-
texture.needsUpdate = true;
|
|
45
|
-
// Bitmap rows run top down from the texture's v = 0, while the quad's uv runs bottom up
|
|
46
|
-
return [x / size, (y + bitmap.height) / size, bitmap.width / size, -bitmap.height / size];
|
|
47
|
-
};
|
|
48
|
-
const getGlyph = (char) => {
|
|
49
|
-
const cached = glyphs.get(char);
|
|
50
|
-
if (cached) {
|
|
51
|
-
return cached;
|
|
52
|
-
}
|
|
53
|
-
const bitmap = rasterize(char);
|
|
54
|
-
const hasInk = bitmap.width > 2 * SDF_BUFFER && bitmap.height > 2 * SDF_BUFFER;
|
|
55
|
-
const rect = hasInk ? pack(bitmap) : undefined;
|
|
56
|
-
const glyph = {
|
|
57
|
-
rect: rect ?? [0, 0, 0, 0],
|
|
58
|
-
left: (bitmap.glyphLeft - SDF_BUFFER) / RASTER_SIZE,
|
|
59
|
-
top: (bitmap.glyphTop + SDF_BUFFER) / RASTER_SIZE,
|
|
60
|
-
width: rect ? bitmap.width / RASTER_SIZE : 0,
|
|
61
|
-
height: rect ? bitmap.height / RASTER_SIZE : 0,
|
|
62
|
-
advance: bitmap.glyphAdvance / RASTER_SIZE,
|
|
63
|
-
};
|
|
64
|
-
glyphs.set(char, glyph);
|
|
65
|
-
return glyph;
|
|
66
|
-
};
|
|
67
|
-
return { texture, getGlyph, dispose: () => texture.dispose() };
|
|
68
|
-
}
|
|
69
|
-
/** Lays out the text centered on the origin, each line centered, as drei's Text did */
|
|
70
|
-
export function layoutText(text, fontSize, getGlyph) {
|
|
71
|
-
const lineHeight = LINE_HEIGHT * fontSize;
|
|
72
|
-
const lines = text.split("\n");
|
|
73
|
-
const top = (lines.length * lineHeight) / 2;
|
|
74
|
-
return lines.flatMap((line, i) => {
|
|
75
|
-
const glyphs = Array.from(line, getGlyph);
|
|
76
|
-
const advances = glyphs.map((g) => (g.advance + LETTER_SPACING) * fontSize);
|
|
77
|
-
const baseline = top - i * lineHeight - (lineHeight - fontSize) / 2 - ASCENT * fontSize;
|
|
78
|
-
const starts = advances.reduce((acc, a, j) => [...acc, acc[j] + a], [-advances.reduce((sum, a) => sum + a, 0) / 2]);
|
|
79
|
-
return glyphs.flatMap((glyph, j) => glyph.width === 0
|
|
80
|
-
? []
|
|
81
|
-
: [
|
|
82
|
-
{
|
|
83
|
-
glyph,
|
|
84
|
-
x: starts[j] + (glyph.left + glyph.width / 2) * fontSize,
|
|
85
|
-
y: baseline + (glyph.top - glyph.height / 2) * fontSize,
|
|
86
|
-
width: glyph.width * fontSize,
|
|
87
|
-
height: glyph.height * fontSize,
|
|
88
|
-
},
|
|
89
|
-
]);
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
/** All texts of a part as glyph quads of one instanced mesh, each slot a text */
|
|
93
|
-
export function createTextPart(entries, atlas) {
|
|
94
|
-
const layouts = entries.map((e) => layoutText(e.text, e.fontSize, atlas.getGlyph));
|
|
95
|
-
const firsts = layouts.reduce((acc, quads, i) => [...acc, acc[i] + quads.length], [0]);
|
|
96
|
-
const count = firsts[layouts.length];
|
|
97
|
-
const quads = layouts.flat();
|
|
98
|
-
const slotOfGlyph = Int32Array.from(layouts.flatMap((l, slot) => l.map(() => slot)));
|
|
99
|
-
const rects = new InstancedBufferAttribute(Float32Array.from(quads.flatMap((q) => q.glyph.rect)), 4);
|
|
100
|
-
const opacities = new InstancedBufferAttribute(new Float32Array(count).fill(1), 1);
|
|
101
|
-
const glyphMatrices = quads.map((q) => new Matrix4().makeTranslation(q.x, q.y, 0).scale(scale.set(q.width, q.height, 1)));
|
|
102
|
-
const geometry = new PlaneGeometry();
|
|
103
|
-
const mesh = new InstancedMesh(geometry, createTextMaterial(atlas.texture, rects, opacities), count);
|
|
104
|
-
// Drawn after the opaque batches, and never culled as a whole, as its glyphs move with their items
|
|
105
|
-
mesh.renderOrder = 1;
|
|
106
|
-
mesh.frustumCulled = false;
|
|
107
|
-
return {
|
|
108
|
-
object: mesh,
|
|
109
|
-
place: (slot, matrix) => {
|
|
110
|
-
const text = scratch.multiplyMatrices(matrix, entries[slot].local);
|
|
111
|
-
for (let i = firsts[slot]; i < firsts[slot + 1]; i++) {
|
|
112
|
-
mesh.setMatrixAt(i, glyph.multiplyMatrices(text, glyphMatrices[i]));
|
|
113
|
-
}
|
|
114
|
-
mesh.boundingSphere = null;
|
|
115
|
-
},
|
|
116
|
-
paint: (slot, rgba) => {
|
|
117
|
-
color.setRGB(rgba.x, rgba.y, rgba.z);
|
|
118
|
-
for (let i = firsts[slot]; i < firsts[slot + 1]; i++) {
|
|
119
|
-
mesh.setColorAt(i, color);
|
|
120
|
-
opacities.setX(i, rgba.w);
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
flush: () => {
|
|
124
|
-
mesh.instanceMatrix.needsUpdate = true;
|
|
125
|
-
if (mesh.instanceColor) {
|
|
126
|
-
mesh.instanceColor.needsUpdate = true;
|
|
127
|
-
}
|
|
128
|
-
opacities.needsUpdate = true;
|
|
129
|
-
},
|
|
130
|
-
pickSlot: (hit) => (hit.instanceId === undefined ? undefined : slotOfGlyph[hit.instanceId]),
|
|
131
|
-
dispose: () => {
|
|
132
|
-
geometry.dispose();
|
|
133
|
-
mesh.material.dispose();
|
|
134
|
-
mesh.dispose();
|
|
135
|
-
},
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
/** White glyphs, colored per instance, with antialiased edges from the distance field's screen-space gradient */
|
|
139
|
-
function createTextMaterial(atlas, rects, opacities) {
|
|
140
|
-
const material = new MeshBasicNodeMaterial({ side: FrontSide, transparent: true, depthWrite: false });
|
|
141
|
-
const rect = instancedBufferAttribute(rects, "vec4");
|
|
142
|
-
const distance = textureNode(atlas, uv().mul(rect.zw).add(rect.xy)).r;
|
|
143
|
-
const edge = fwidth(distance).mul(0.7);
|
|
144
|
-
material.opacityNode = smoothstep(float(SDF_EDGE).sub(edge), float(SDF_EDGE).add(edge), distance).mul(instancedBufferAttribute(opacities, "float"));
|
|
145
|
-
return material;
|
|
146
|
-
}
|
|
147
|
-
const scratch = new Matrix4();
|
|
148
|
-
const glyph = new Matrix4();
|
|
149
|
-
const scale = new Vector3();
|
|
150
|
-
const color = new Color();
|
|
151
|
-
//# sourceMappingURL=text.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/renderers/three/text.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,wBAAwB,EACxB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,OAAO,GACR,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,OAAO,IAAI,WAAW,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAC5G,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGrD,8HAA8H;AAE9H,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,6FAA6F;AAC7F,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,WAAW,GAAG,8BAA8B,CAAC;AACnD,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,4EAA4E;AAC5E,MAAM,MAAM,GAAG,GAAG,CAAC;AAuCnB,6FAA6F;AAC7F,MAAM,UAAU,0BAA0B;IACxC,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,GAAG,CAAC,OAAO,KAAK,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;QACxH,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAS,GAAc,0BAA0B,EAAE,EAAE,IAAI,GAAG,IAAI;IAC/F,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC/E,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;IACjC,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;IACjC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;IACxC,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAExC,MAAM,IAAI,GAAG,CAAC,MAAmB,EAA6B,EAAE;QAC9D,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAC3B,wFAAwF;QACxF,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5F,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAS,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,UAAU,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/C,MAAM,KAAK,GAAU;YACnB,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,WAAW;YACnD,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,WAAW;YACjD,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO,EAAE,MAAM,CAAC,YAAY,GAAG,WAAW;SAC3C,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AACjE,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAiC;IAC1F,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAC;QACxF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAwB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5I,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CACjC,KAAK,CAAC,KAAK,KAAK,CAAC;YACf,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE;oBACE,KAAK;oBACL,CAAC,EAAE,MAAM,CAAC,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,QAAQ;oBACzD,CAAC,EAAE,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ;oBACvD,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,QAAQ;oBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ;iBAChC;aACF,CACN,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AASD,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,OAAiC,EAAE,KAAiB;IACjF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAwB,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/G,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,IAAI,wBAAwB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrG,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnF,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1H,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IACrG,mGAAmG;IACnG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAE3B,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACtB,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,CAAC;YACpE,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvD,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACpB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvD,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC1B,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;YACxC,CAAC;YACD,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3F,OAAO,EAAE,GAAG,EAAE;YACZ,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iHAAiH;AACjH,SAAS,kBAAkB,CAAC,KAAkB,EAAE,KAA+B,EAAE,SAAmC;IAClH,MAAM,QAAQ,GAAG,IAAI,qBAAqB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACtG,MAAM,IAAI,GAAG,wBAAwB,CAAS,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACpJ,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;AAC5B,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;AAC5B,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"options.test.d.ts","sourceRoot":"","sources":["../../../../src/renderers/three/viewer/options.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { vec3 } from "../../../abstract-3d.js";
|
|
3
|
-
import { getChanges } from "./options.js";
|
|
4
|
-
const scene = { size_deprecated: vec3(1, 1, 1), groups: [] };
|
|
5
|
-
const changes = (a, b) => [...getChanges(a, b)].toSorted();
|
|
6
|
-
describe("getChanges", () => {
|
|
7
|
-
it("changes nothing for equal options, even when records and arrays are new objects", () => {
|
|
8
|
-
const a = {
|
|
9
|
-
scene,
|
|
10
|
-
selectedIds: { a: true },
|
|
11
|
-
hoveredIds: ["a"],
|
|
12
|
-
camera: { type: "Perspective", fov: 45 },
|
|
13
|
-
onClickGroup: () => undefined,
|
|
14
|
-
};
|
|
15
|
-
expect(changes(a, { ...a, selectedIds: { a: true }, hoveredIds: ["a"], camera: { type: "Perspective", fov: 45 } })).toEqual([]);
|
|
16
|
-
});
|
|
17
|
-
it("only repaints for a new selection or hover", () => {
|
|
18
|
-
expect(changes({ selectedIds: { a: true } }, { selectedIds: { b: true } })).toEqual(["paint"]);
|
|
19
|
-
expect(changes({ hoveredIds: ["a"] }, { hoveredIds: [] })).toEqual(["paint"]);
|
|
20
|
-
});
|
|
21
|
-
it("rebuilds for a new scene, and recompiles it", () => {
|
|
22
|
-
expect(changes({ scene }, { scene: { ...scene } })).toEqual(["build", "compile", "lights", "overlays"]);
|
|
23
|
-
});
|
|
24
|
-
it("rebuilds without compiling for new material states and active relations", () => {
|
|
25
|
-
expect(changes({}, { activeComponents: { a: "Accept" } })).toEqual(["build"]);
|
|
26
|
-
expect(changes({}, { activeRelations: [] })).toEqual(["build"]);
|
|
27
|
-
});
|
|
28
|
-
it("leaves view, buffer zones and padding for the next fit, which a new camera does", () => {
|
|
29
|
-
expect(changes({ view: "front" }, { view: "top" })).toEqual([]);
|
|
30
|
-
expect(changes({}, { bufferZones: { left: 10 } })).toEqual([]);
|
|
31
|
-
expect(changes({ camera: { type: "Perspective" } }, { camera: { type: "Orthographic" } })).toEqual(["camera"]);
|
|
32
|
-
});
|
|
33
|
-
it("only stores new callbacks, except that clicking dimensions depends on onClickGroup", () => {
|
|
34
|
-
expect(changes({ onHoverGroup: () => undefined }, { onHoverGroup: () => undefined })).toEqual([]);
|
|
35
|
-
expect(changes({}, { onClickGroup: () => undefined })).toEqual(["paint"]);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
//# sourceMappingURL=options.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"options.test.js","sourceRoot":"","sources":["../../../../src/renderers/three/viewer/options.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { OrthographicCamera, PerspectiveCamera, Scene as ThreeScene } from "three";
|
|
2
|
-
import { WebGPURenderer } from "three/webgpu";
|
|
3
|
-
import type { View } from "../../abstract-3d.js";
|
|
4
|
-
import type { ViewerOptions } from "./options.js";
|
|
5
|
-
import type { Tier } from "./quality.js";
|
|
6
|
-
/** The interactive viewer: renderer, render on demand, camera, controls, input, overlays and gizmo, updated by diffing its options */
|
|
7
|
-
export type Viewer<Content> = {
|
|
8
|
-
/** Applies any subset of the options; only what changed is redone */
|
|
9
|
-
readonly update: (options: Partial<ViewerOptions<Content>>) => void;
|
|
10
|
-
/** Fits the scene into view, from the given view or the current direction */
|
|
11
|
-
readonly fitView: (view?: View, animate?: boolean) => void;
|
|
12
|
-
/** Renders a frame, e.g. after changing objects added through `three` */
|
|
13
|
-
readonly invalidate: () => void;
|
|
14
|
-
/** Resolves once the renderer is initialized */
|
|
15
|
-
readonly ready: Promise<void>;
|
|
16
|
-
readonly getStats: () => ViewerStats;
|
|
17
|
-
readonly three: {
|
|
18
|
-
readonly renderer: WebGPURenderer;
|
|
19
|
-
readonly scene: ThreeScene;
|
|
20
|
-
readonly getCamera: () => PerspectiveCamera | OrthographicCamera;
|
|
21
|
-
};
|
|
22
|
-
readonly dispose: () => void;
|
|
23
|
-
};
|
|
24
|
-
export type ViewerStats = {
|
|
25
|
-
/** The scene is built and its shaders compiled */
|
|
26
|
-
readonly loaded: boolean;
|
|
27
|
-
readonly tier: Tier;
|
|
28
|
-
readonly frames: number;
|
|
29
|
-
/** CPU time of the last frame */
|
|
30
|
-
readonly frameMs: number;
|
|
31
|
-
/** Draw calls of the last frame, post-processing included */
|
|
32
|
-
readonly drawCalls: number;
|
|
33
|
-
/** CPU time of the last pick under the pointer, and of the last repaint */
|
|
34
|
-
readonly pickMs: number;
|
|
35
|
-
readonly paintMs: number;
|
|
36
|
-
};
|
|
37
|
-
export declare function createViewer<Content>(container: HTMLElement, initialOptions: ViewerOptions<Content>): Viewer<Content>;
|
|
38
|
-
//# sourceMappingURL=viewer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../../src/renderers/three/viewer.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,kBAAkB,EAClB,iBAAiB,EAEjB,KAAK,IAAI,UAAU,EAGpB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAkB,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAS,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAgBxD,OAAO,KAAK,EAAsB,aAAa,EAAE,MAAM,cAAc,CAAC;AAItE,OAAO,KAAK,EAAc,IAAI,EAAgB,MAAM,cAAc,CAAC;AAInE,sIAAsI;AAEtI,MAAM,MAAM,MAAM,CAAC,OAAO,IAAI;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC;IACpE,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;IAChC,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,WAAW,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;QAClC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;QAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;KAClE,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAKF,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAkbrH"}
|