postext-folio 0.74.2 → 0.75.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/dist/pageFlip/finish.d.ts +8 -2
- package/dist/pageFlip/finish.d.ts.map +1 -1
- package/dist/pageFlip/finish.js +10 -2
- package/dist/pageFlip/finish.js.map +1 -1
- package/dist/pageFlip/leaf.d.ts +9 -1
- package/dist/pageFlip/leaf.d.ts.map +1 -1
- package/dist/pageFlip/leaf.js +22 -1
- package/dist/pageFlip/leaf.js.map +1 -1
- package/dist/pageFlip/materials.d.ts.map +1 -1
- package/dist/pageFlip/materials.js +15 -0
- package/dist/pageFlip/materials.js.map +1 -1
- package/dist/pageFlip/through.d.ts +63 -28
- package/dist/pageFlip/through.d.ts.map +1 -1
- package/dist/pageFlip/through.js +84 -22
- package/dist/pageFlip/through.js.map +1 -1
- package/dist/pageFlip.d.ts +4 -0
- package/dist/pageFlip.d.ts.map +1 -1
- package/dist/pageFlip.js +29 -11
- package/dist/pageFlip.js.map +1 -1
- package/dist/pageFlipFlat/shaders.d.ts.map +1 -1
- package/dist/pageFlipFlat/shaders.js +5 -1
- package/dist/pageFlipFlat/shaders.js.map +1 -1
- package/dist/postext/through.d.ts +2 -1
- package/dist/postext/through.d.ts.map +1 -1
- package/dist/postext/through.js +3 -2
- package/dist/postext/through.js.map +1 -1
- package/package.json +3 -3
|
@@ -49,6 +49,7 @@ export declare class FinishTextures {
|
|
|
49
49
|
throughOf(src: unknown): {
|
|
50
50
|
texture: Texture;
|
|
51
51
|
layers: number;
|
|
52
|
+
end?: boolean;
|
|
52
53
|
} | null;
|
|
53
54
|
/** The textures alive (for tests and for the frame budget). */
|
|
54
55
|
get size(): number;
|
|
@@ -113,6 +114,11 @@ export declare const FINISH_NORMAL = "\n if (finishMask.r > 0.0) normal = norma
|
|
|
113
114
|
export declare const FINISH_EMISSIVE = "\n totalEmissiveRadiance += finishMask.b * finishInk * 0.45;\n";
|
|
114
115
|
/** The clear coat a varnish lays (after three.js has set the stock's): a
|
|
115
116
|
* gloss varnish a hard, sharp coat, a satin one softer, a matte or soft-
|
|
116
|
-
* touch one next to none. A bare metal takes none.
|
|
117
|
-
|
|
117
|
+
* touch one next to none. A bare metal takes none. Under a coat the print
|
|
118
|
+
* has no surface of its own (the varnish wets it): the paper's own
|
|
119
|
+
* reflection goes, and all the light the surface sends back is the
|
|
120
|
+
* coat's, a sharp image of the lamps over a deep print (#1587). Left on,
|
|
121
|
+
* the stock's blurred reflection laid a milky veil over the photographs a
|
|
122
|
+
* spot gloss should deepen. */
|
|
123
|
+
export declare const FINISH_COAT = "\n #ifdef USE_CLEARCOAT\n if (finishMask.g > 0.0) {\n float s = smoothstep(0.3, 1.0, finishSheen);\n float w = finishCover * (1.0 - finishMask.r);\n material.clearcoat = mix(material.clearcoat, s, w);\n material.clearcoatRoughness = mix(material.clearcoatRoughness, min(1.0, max(mix(0.6, 0.03, s), 0.0525) + geometryRoughness), w);\n float wet = 1.0 - s * w;\n material.specularColor *= wet;\n material.specularF90 *= wet;\n }\n #endif\n";
|
|
118
124
|
//# sourceMappingURL=finish.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finish.d.ts","sourceRoot":"","sources":["../../src/pageFlip/finish.ts"],"names":[],"mappings":"AAMA,OAAO,EAAqF,KAAK,OAAO,EAAE,MAAM,OAAO,CAAC;AACxH,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpE;2EAC2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,qDAAqD;AACrD,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;0BACsB;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED;0DAC0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAIxD;AAED;qDACqD;AACrD,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAO3D;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,QAAQ,CAAuC;IAEvD;6CACyC;IACzC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,OAAO;IAyBxD,yEAAyE;IACzE,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI;IAQxC,6DAA6D;IAC7D,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI5B;kDAC8C;IAC9C,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"finish.d.ts","sourceRoot":"","sources":["../../src/pageFlip/finish.ts"],"names":[],"mappings":"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"}
|
package/dist/pageFlip/finish.js
CHANGED
|
@@ -87,7 +87,7 @@ export class FinishTextures {
|
|
|
87
87
|
let t = this.throughs.get(through);
|
|
88
88
|
if (!t)
|
|
89
89
|
this.throughs.set(through, (t = throughTexture(through)));
|
|
90
|
-
return { texture: t, layers: through.layers };
|
|
90
|
+
return { texture: t, layers: through.layers, ...(through.end ? { end: true } : {}) };
|
|
91
91
|
}
|
|
92
92
|
/** The textures alive (for tests and for the frame budget). */
|
|
93
93
|
get size() {
|
|
@@ -211,7 +211,12 @@ export const FINISH_EMISSIVE = /* glsl */ `
|
|
|
211
211
|
`;
|
|
212
212
|
/** The clear coat a varnish lays (after three.js has set the stock's): a
|
|
213
213
|
* gloss varnish a hard, sharp coat, a satin one softer, a matte or soft-
|
|
214
|
-
* touch one next to none. A bare metal takes none.
|
|
214
|
+
* touch one next to none. A bare metal takes none. Under a coat the print
|
|
215
|
+
* has no surface of its own (the varnish wets it): the paper's own
|
|
216
|
+
* reflection goes, and all the light the surface sends back is the
|
|
217
|
+
* coat's, a sharp image of the lamps over a deep print (#1587). Left on,
|
|
218
|
+
* the stock's blurred reflection laid a milky veil over the photographs a
|
|
219
|
+
* spot gloss should deepen. */
|
|
215
220
|
export const FINISH_COAT = /* glsl */ `
|
|
216
221
|
#ifdef USE_CLEARCOAT
|
|
217
222
|
if (finishMask.g > 0.0) {
|
|
@@ -219,6 +224,9 @@ export const FINISH_COAT = /* glsl */ `
|
|
|
219
224
|
float w = finishCover * (1.0 - finishMask.r);
|
|
220
225
|
material.clearcoat = mix(material.clearcoat, s, w);
|
|
221
226
|
material.clearcoatRoughness = mix(material.clearcoatRoughness, min(1.0, max(mix(0.6, 0.03, s), 0.0525) + geometryRoughness), w);
|
|
227
|
+
float wet = 1.0 - s * w;
|
|
228
|
+
material.specularColor *= wet;
|
|
229
|
+
material.specularF90 *= wet;
|
|
222
230
|
}
|
|
223
231
|
#endif
|
|
224
232
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finish.js","sourceRoot":"","sources":["../../src/pageFlip/finish.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"finish.js","sourceRoot":"","sources":["../../src/pageFlip/finish.ts"],"names":[],"mappings":"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"}
|
package/dist/pageFlip/leaf.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BufferGeometry, Mesh, BoxGeometry, MeshStandardMaterial, Plane } from 'three';
|
|
1
|
+
import { BufferGeometry, Mesh, BoxGeometry, MeshStandardMaterial, Plane, PlaneGeometry } from 'three';
|
|
2
2
|
import { type Profile } from '../bookGeometry.js';
|
|
3
3
|
import type { PaperSpec } from '../paper.js';
|
|
4
4
|
import { type PageMaterial } from './materials.js';
|
|
@@ -9,6 +9,14 @@ export declare const MAX_PITCH: number;
|
|
|
9
9
|
export declare const column: (t: number) => number;
|
|
10
10
|
/** Sets a page mesh's u coordinates to its columns. */
|
|
11
11
|
export declare function spreadColumns(geometry: BufferGeometry, nx: number): void;
|
|
12
|
+
/** A leaf's mesh: a grid of NX × NY columns from the spine, its ambient
|
|
13
|
+
* occlusion clear, and the side of a board it draws (see
|
|
14
|
+
* {@link setLeafFace}). */
|
|
15
|
+
export declare function leafGeometry(): PlaneGeometry;
|
|
16
|
+
/** Which side of a leaf's mesh looks out of it: +1 its front, −1 its back
|
|
17
|
+
* (a board's two faces, each drawn by a mesh of its own: the other side is
|
|
18
|
+
* inside the board, seen only through a hole, #1586), 0 both (a sheet). */
|
|
19
|
+
export declare function setLeafFace(geometry: BufferGeometry, face: -1 | 0 | 1): void;
|
|
12
20
|
/** A point in a leaf's own coordinates: `u` from the spine (0 … W), `v`
|
|
13
21
|
* from the middle of the page (−H/2 … H/2). Backward turns mirror x. */
|
|
14
22
|
export interface Pt {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../../src/pageFlip/leaf.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"leaf.d.ts","sourceRoot":"","sources":["../../src/pageFlip/leaf.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,EAAW,MAAM,OAAO,CAAC;AAChI,OAAO,EAAS,KAAK,OAAO,EAAS,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE3D,yEAAyE;AACzE,eAAO,MAAM,SAAS,QAAuB,CAAC;AAO9C;gEACgE;AAChE,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,WAAsB,CAAC;AAEvD,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,QAIjE;AAED;;4BAE4B;AAC5B,wBAAgB,YAAY,IAAI,aAAa,CAO5C;AAED;;4EAE4E;AAC5E,wBAAgB,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAKrE;AAcD;yEACyE;AACzE,MAAM,WAAW,EAAE;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,SAAI;;;;;;;;;;;SAgClE;AAED,KAAK,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC;AAUnD;gDACgD;AAChD,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAExC;AAED;8BAC8B;AAC9B,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAajD;AAED,kEAAkE;AAClE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,SAAI,EAAE,IAAI,SAAI,EAAE,KAAK,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiLtQ;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;CAC/C;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,QAYzC;AAED,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,CAAC,EAAE,EAAE,CAAC;IACN,CAAC,EAAE,EAAE,CAAC;IACN,uDAAuD;IACvD,IAAI,CAAC,EAAE;QAAE,GAAG,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,EAAE,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;IACpD,oEAAoE;IACpE,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,EAAE,CAAC;QAAC,EAAE,EAAE,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1F;;kEAE8D;IAC9D,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,EAAE,CAAC;QAAC,EAAE,EAAE,EAAE,CAAC;QAAC,GAAG,EAAE,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CACzF;AAED,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAOnE"}
|
package/dist/pageFlip/leaf.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// A leaf's shape: the open book's two surfaces, the fold and roll of a
|
|
2
2
|
// turning leaf, how far through its turn it is, and laying its mesh out
|
|
3
3
|
// (#1276: split out of pageFlip.ts).
|
|
4
|
-
import { Plane, Vector3 } from 'three';
|
|
4
|
+
import { BufferAttribute, Plane, PlaneGeometry, Vector3 } from 'three';
|
|
5
5
|
import { along, topAt } from '../bookGeometry.js';
|
|
6
6
|
import { ROLL, BLOCK_GAP, NX, NY, OWN_GAP } from './constants.js';
|
|
7
7
|
import { smooth } from './materials.js';
|
|
@@ -21,6 +21,27 @@ export function spreadColumns(geometry, nx) {
|
|
|
21
21
|
uv.setX(i, column((i % (nx + 1)) / nx));
|
|
22
22
|
uv.needsUpdate = true;
|
|
23
23
|
}
|
|
24
|
+
/** A leaf's mesh: a grid of NX × NY columns from the spine, its ambient
|
|
25
|
+
* occlusion clear, and the side of a board it draws (see
|
|
26
|
+
* {@link setLeafFace}). */
|
|
27
|
+
export function leafGeometry() {
|
|
28
|
+
const geometry = new PlaneGeometry(1, 1, NX, NY);
|
|
29
|
+
spreadColumns(geometry, NX);
|
|
30
|
+
const n = geometry.attributes.position.count;
|
|
31
|
+
geometry.setAttribute("ao", new BufferAttribute(new Float32Array(n).fill(1), 1));
|
|
32
|
+
geometry.setAttribute("leafFace", new BufferAttribute(new Float32Array(n), 1));
|
|
33
|
+
return geometry;
|
|
34
|
+
}
|
|
35
|
+
/** Which side of a leaf's mesh looks out of it: +1 its front, −1 its back
|
|
36
|
+
* (a board's two faces, each drawn by a mesh of its own: the other side is
|
|
37
|
+
* inside the board, seen only through a hole, #1586), 0 both (a sheet). */
|
|
38
|
+
export function setLeafFace(geometry, face) {
|
|
39
|
+
const attr = geometry.attributes.leafFace;
|
|
40
|
+
if (!attr || attr.getX(0) === face)
|
|
41
|
+
return;
|
|
42
|
+
attr.array.fill(face);
|
|
43
|
+
attr.needsUpdate = true;
|
|
44
|
+
}
|
|
24
45
|
/** max(a, b), rounded over a band `k` wide (no crease where they meet). */
|
|
25
46
|
function smoothMax(a, b, k) {
|
|
26
47
|
return (a + b + Math.sqrt((a - b) * (a - b) + k * k)) / 2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaf.js","sourceRoot":"","sources":["../../src/pageFlip/leaf.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,wEAAwE;AACxE,qCAAqC;AACrC,OAAO,EAA2D,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChG,OAAO,EAAE,KAAK,EAAgB,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAqB,MAAM,gBAAgB,CAAC;AAE3D,yEAAyE;AACzE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAE9C;;6CAE6C;AAC7C,MAAM,IAAI,GAAG,IAAI,CAAC;AAElB;gEACgE;AAChE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAEvD,uDAAuD;AACvD,MAAM,UAAU,aAAa,CAAC,QAAwB,EAAE,EAAU;IAChE,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE;QAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3E,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,CAAC;AAED,2EAA2E;AAC3E,SAAS,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IAChD,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED;6CAC6C;AAC7C,SAAS,SAAS,CAAC,IAAc,EAAE,MAAc;IAC/C,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC;AASD;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAC,CAAK,EAAE,CAAK,EAAE,CAAS,EAAE,CAAS,EAAE,IAAI,GAAG,CAAC;IACjE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;IACnC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnI,yEAAyE;IACzE,uEAAuE;IACvE,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,qEAAqE;IACrE,iEAAiE;IACjE,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7F,IAAI,CAAC,GAAG,IAAI,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACjD,sEAAsE;IACtE,sEAAsE;IACtE,qEAAqE;IACrE,wEAAwE;IACxE,wEAAwE;IACxE,oDAAoD;IACpD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;AAC3C,CAAC;AAID;0EAC0E;AAC1E,SAAS,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa;IACjD,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK;QAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5G,CAAC;AAED;gDACgD;AAChD,MAAM,UAAU,YAAY,CAAC,CAAK,EAAE,CAAK;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;8BAC8B;AAC9B,MAAM,UAAU,KAAK,CAAC,CAAK,EAAE,CAAK,EAAE,CAAS;IAC3C,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACV,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClB,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,QAAwB,EAAE,IAAiB,EAAE,OAAgB,EAAE,CAAS,EAAE,CAAS,EAAE,IAAY,EAAE,IAAc,EAAE,QAAgB,EAAE,CAAS,EAAE,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAuC;IACpO,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;IACzC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAa,CAAC;IAClB,IAAI,GAAW,CAAC;IAChB,IAAI,CAAS,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,EAAE,CAAC;QACV,wEAAwE;QACxE,uEAAuE;QACvE,qEAAqE;QACrE,mEAAmE;QACnE,qEAAqE;QACrE,uEAAuE;QACvE,qEAAqE;QACrE,kEAAkE;QAClE,6DAA6D;QAC7D,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5E,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9C,uEAAuE;QACvE,oEAAoE;QACpE,wEAAwE;QACxE,+DAA+D;QAC/D,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QACpF,CAAC,GAAG,CAAC,CAAC;QACN,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,0EAA0E;QAC1E,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;QAChD,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IACD,qEAAqE;IACrE,sEAAsE;IACtE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IAC1B,qEAAqE;IACrE,wEAAwE;IACxE,0DAA0D;IAC1D,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACtC,wEAAwE;IACxE,uEAAuE;IACvE,sEAAsE;IACtE,mBAAmB;IACnB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACvC,qEAAqE;IACrE,uEAAuE;IACvE,uEAAuE;IACvE,oEAAoE;IACpE,sEAAsE;IACtE,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAoB,EAAE;QACxD,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;QACvB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACpC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAC7E,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;YAClD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAClD,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;YACxB,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,mEAAmE;IACnE,oEAAoE;IACpE,mEAAmE;IACnE,oEAAoE;IACpE,oCAAoC;IACpC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,EAAE;QAC9D,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACjD,OAAO,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5G,CAAC,CAAC;IACF,oEAAoE;IACpE,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,MAAM,GAAG,GAA+B,EAAE,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACV,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC5D,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAC7E,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;gBACtB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACV,wDAAwD;oBACxD,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACxC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;oBACvB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,sEAAsE;gBACtE,oEAAoE;gBACpE,oEAAoE;gBACpE,mEAAmE;gBACnE,+DAA+D;gBAC/D,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBACzC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACV,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC5D,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YAC7E,CAAC;YACD,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3B,mEAAmE;YACnE,iEAAiE;YACjE,kEAAkE;YAClE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBACnB,mEAAmE;gBACnE,wCAAwC;gBACxC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;oBAC/E,IAAI,EAAE,GAAG,CAAC,CAAC;oBACX,IAAI,EAAE,GAAG,EAAE,CAAC;oBACZ,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;wBACnB,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;wBAC3B,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;4BAAE,EAAE,GAAG,GAAG,CAAC;;4BAC3B,EAAE,GAAG,GAAG,CAAC;oBAChB,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7D,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACtD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC/D,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACtD,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC;YACD,kEAAkE;YAClE,mEAAmE;YACnE,mEAAmE;YACnE,qEAAqE;YACrE,4BAA4B;YAC5B,kEAAkE;YAClE,mEAAmE;YACnE,qEAAqE;YACrE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC5J,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IAChC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,CAAC;AACtC,CAAC;AASD,+CAA+C;AAC/C,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAA+B,CAAC;IAC5D,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC;IACA,IAAI,CAAC,QAAQ,CAAC,MAA2B,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC/D,sDAAsD;IACtD,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;QAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAqC,EAAE,OAAO,EAAE,CAAC;IAChH,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC1B,CAAC;AA4BD;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,CAAU,EAAE,CAAS,EAAE,GAAW;IAC1D,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAClF,OAAO,IAAI,KAAK,EAAE,CAAC,6BAA6B,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACzF,CAAC"}
|
|
1
|
+
{"version":3,"file":"leaf.js","sourceRoot":"","sources":["../../src/pageFlip/leaf.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../../src/pageFlip/materials.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"materials.d.ts","sourceRoot":"","sources":["../../src/pageFlip/materials.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,12 +65,15 @@ export function pageMaterial(mirror, sign, cutMode = CUT_OFF) {
|
|
|
65
65
|
shader.vertexShader = shader.vertexShader
|
|
66
66
|
.replace("#include <common>", `#include <common>
|
|
67
67
|
attribute float ao;
|
|
68
|
+
attribute float leafFace;
|
|
68
69
|
varying float vAo;
|
|
69
70
|
varying vec2 vPageUv;
|
|
71
|
+
varying float vLeafFace;
|
|
70
72
|
${BOOK_POS_PARS}`)
|
|
71
73
|
.replace("#include <begin_vertex>", `#include <begin_vertex>
|
|
72
74
|
vAo = ao;
|
|
73
75
|
vPageUv = uv;
|
|
76
|
+
vLeafFace = leafFace;
|
|
74
77
|
${BOOK_POS}`);
|
|
75
78
|
shader.fragmentShader = keyShadowed(shader.fragmentShader)
|
|
76
79
|
.replace("#include <common>", `#include <common>
|
|
@@ -109,6 +112,7 @@ export function pageMaterial(mirror, sign, cutMode = CUT_OFF) {
|
|
|
109
112
|
uniform vec3 uReflectionNormal;
|
|
110
113
|
varying float vAo;
|
|
111
114
|
varying vec2 vPageUv;
|
|
115
|
+
varying float vLeafFace;
|
|
112
116
|
varying vec3 vBookPos;
|
|
113
117
|
${FINISH_PARS}
|
|
114
118
|
${CUT_PARS}
|
|
@@ -153,6 +157,17 @@ export function pageMaterial(mirror, sign, cutMode = CUT_OFF) {
|
|
|
153
157
|
}
|
|
154
158
|
${CUT_FRAGMENT}
|
|
155
159
|
${FINISH_READ}
|
|
160
|
+
// A board's face seen from inside the board, through a hole in
|
|
161
|
+
// the other face (#1586): the board's core, unprinted. A board
|
|
162
|
+
// draws each face from its own mesh, leafFace the side that
|
|
163
|
+
// looks out (+1 the front, −1 the back; 0 a sheet, both).
|
|
164
|
+
if (vLeafFace * (gl_FrontFacing ? 1.0 : -1.0) < -0.5) {
|
|
165
|
+
ink = uPaper * 0.8;
|
|
166
|
+
cutA = 1.0;
|
|
167
|
+
finishMask = vec4(0.0);
|
|
168
|
+
finishSheen = 0.0;
|
|
169
|
+
finishCover = 0.0;
|
|
170
|
+
}
|
|
156
171
|
// The other side's print, seen through the sheet (the same point
|
|
157
172
|
// of paper, so mirrored as it should be).
|
|
158
173
|
float other = front ? uHasBack : uHasFront;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materials.js","sourceRoot":"","sources":["../../src/pageFlip/materials.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"materials.js","sourceRoot":"","sources":["../../src/pageFlip/materials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MeshDepthMaterial, type Texture } from 'three';
|
|
1
|
+
import { BoxGeometry, MeshDepthMaterial, MeshStandardMaterial, type Texture } from 'three';
|
|
2
2
|
/** A through picture as the document side paints it: RGBA bytes, top row
|
|
3
3
|
* first; RGB the stack seen through the holes, A the depth code (0 off
|
|
4
4
|
* the holes, k the k-th layer beneath). `layers`: how many there are. */
|
|
@@ -7,6 +7,9 @@ export interface FaceThroughData {
|
|
|
7
7
|
height: number;
|
|
8
8
|
data: Uint8ClampedArray;
|
|
9
9
|
layers: number;
|
|
10
|
+
/** The deepest layer is past the book's end (the board or what the
|
|
11
|
+
* book lies on), not a page. */
|
|
12
|
+
end?: boolean;
|
|
10
13
|
}
|
|
11
14
|
/** A through picture as a texture: its colour sRGB like the pages' (the
|
|
12
15
|
* alpha, the depth codes, stays as it is), filtered; the shader reads
|
|
@@ -48,41 +51,78 @@ export interface CutUniforms {
|
|
|
48
51
|
uLeafDepth: {
|
|
49
52
|
value: number;
|
|
50
53
|
};
|
|
54
|
+
/** The depth code of the layer past the book's end, per face (0: the
|
|
55
|
+
* holes stop at a page). */
|
|
56
|
+
uFrontEnd: {
|
|
57
|
+
value: number;
|
|
58
|
+
};
|
|
59
|
+
uBackEnd: {
|
|
60
|
+
value: number;
|
|
61
|
+
};
|
|
62
|
+
/** Nothing lies past the book's end but the desk (no case): the ray
|
|
63
|
+
* that gets there leaves the book. */
|
|
64
|
+
uSeeDesk: {
|
|
65
|
+
value: number;
|
|
66
|
+
};
|
|
51
67
|
}
|
|
52
68
|
export declare const cutUniforms: (mode: number) => CutUniforms;
|
|
53
69
|
/** Declarations for the page material's fragment shader. */
|
|
54
|
-
export declare const CUT_PARS = "\n uniform float uCutMode;\n uniform float uHasFrontCut;\n uniform float uHasBackCut;\n uniform sampler2D uFrontThrough;\n uniform sampler2D uBackThrough;\n uniform float uHasFrontThrough;\n uniform float uHasBackThrough;\n uniform float uThroughLayers;\n uniform float uLeafDepth;\n // The direct light a hole's wall keeps from a point deep in it, and the\n // sky its depth leaves it.\n float throughLit = 1.0;\n float throughAo = 1.0;\n vec4 throughAt(bool front, ivec2 t) {\n return front ? texelFetch(uFrontThrough, t, 0) : texelFetch(uBackThrough, t, 0);\n }\n // The depth code at a point of the face (y down), 0 off the holes.\n float throughDepth(bool front, vec2 p, vec2 size) {\n ivec2 t = ivec2(clamp(p, vec2(0.0), vec2(0.999999)) * size);\n return floor(throughAt(front, t).a * 255.0 + 0.5);\n }\n vec3 throughColour(bool front, vec2 p) {\n return front ? texture2D(uFrontThrough, p).rgb : texture2D(uBackThrough, p).rgb;\n }\n";
|
|
70
|
+
export declare const CUT_PARS = "\n uniform float uCutMode;\n uniform float uHasFrontCut;\n uniform float uHasBackCut;\n uniform sampler2D uFrontThrough;\n uniform sampler2D uBackThrough;\n uniform float uHasFrontThrough;\n uniform float uHasBackThrough;\n uniform float uThroughLayers;\n uniform float uLeafDepth;\n uniform float uFrontEnd;\n uniform float uBackEnd;\n uniform float uSeeDesk;\n // The direct light a hole's wall keeps from a point deep in it, and the\n // sky its depth leaves it.\n float throughLit = 1.0;\n float throughAo = 1.0;\n vec4 throughAt(bool front, ivec2 t) {\n return front ? texelFetch(uFrontThrough, t, 0) : texelFetch(uBackThrough, t, 0);\n }\n // The depth code at a point of the face (y down), 0 off the holes.\n float throughDepth(bool front, vec2 p, vec2 size) {\n ivec2 t = ivec2(clamp(p, vec2(0.0), vec2(0.999999)) * size);\n return floor(throughAt(front, t).a * 255.0 + 0.5);\n }\n vec3 throughColour(bool front, vec2 p) {\n return front ? texture2D(uFrontThrough, p).rgb : texture2D(uBackThrough, p).rgb;\n }\n";
|
|
55
71
|
/**
|
|
56
72
|
* In `map_fragment`, once the face's page texel `page` (RGBA, alpha the
|
|
57
73
|
* cut) and its print `ink` are known. A leaf in the air drops its holes;
|
|
58
74
|
* an open page draws them: the view ray walked down the stack.
|
|
59
75
|
*/
|
|
60
|
-
export declare const CUT_FRAGMENT = "\n if (uCutMode > 0.5 && (front ? uHasFrontCut : uHasBackCut) > 0.5 && cutA < 0.999) {\n if (uCutMode > 1.5) {\n if (cutA < 0.5) discard;\n } else {\n vec2 p0 = vec2(tuv.x, 1.0 - tuv.y);\n bool hasThrough = (front ? uHasFrontThrough : uHasBackThrough) > 0.5;\n vec2 size = hasThrough ? vec2(front ? textureSize(uFrontThrough, 0) : textureSize(uBackThrough, 0)) : vec2(1.0);\n float d0 = hasThrough ? throughDepth(front, p0, size) : 0.0;\n // The picture is coarser than the page: at the hole's rim it may\n // still say paper where the page's alpha says hole.\n if (hasThrough && d0 < 0.5) {\n for (int i = 0; i < 4; i++) {\n vec2 o = vec2(i == 0 ? 1.0 : i == 1 ? -1.0 : 0.0, i == 2 ? 1.0 : i == 3 ? -1.0 : 0.0) / size;\n d0 = max(d0, throughDepth(front, p0 + o, size));\n }\n }\n // Off the holes (past the leaf's outline): nothing of this page.\n if (d0 < 0.5 && cutA < 0.5) discard;\n vec3 hole = uPaper;\n if (hasThrough && d0 > 0.5) {\n // The face's frame on screen: the gradients of its uv, so a step\n // on the page in view space is a step in the picture.\n vec3 pos = -vViewPosition;\n vec3 dp1 = dFdx(pos);\n vec3 dp2 = dFdy(pos);\n vec3 n = normalize(cross(dp1, dp2));\n vec3 eye = normalize(vViewPosition);\n if (dot(n, eye) < 0.0) n = -n;\n vec2 duv1 = dFdx(p0);\n vec2 duv2 = dFdy(p0);\n vec3 dp2perp = cross(dp2, n);\n vec3 dp1perp = cross(n, dp1);\n float det = dot(dp2perp, dp1);\n vec3 gu = (dp2perp * duv1.x + dp1perp * duv2.x) / det;\n vec3 gv = (dp2perp * duv1.y + dp1perp * duv2.y) / det;\n // A leaf down along the view ray, and a leaf up towards the key.\n float h = uLeafDepth;\n vec3 down = -eye * (h / max(dot(eye, n), 0.05)) + n * h;\n vec2 stepDown = vec2(dot(down, gu), dot(down, gv));\n vec2 stepUp = vec2(0.0);\n #if NUM_DIR_LIGHTS > 0\n vec3 l = directionalLights[0].direction;\n vec3 up = l * (h / max(dot(l, n), 0.05)) - n * h;\n stepUp = vec2(dot(up, gu), dot(up, gv));\n #endif\n float k = 1.0;\n float wall = 0.0;\n vec2 hit = p0;\n for (int i = 1; i <= 33; i++) {\n k = float(i);\n if (k > uThroughLayers) break;\n hit = p0 + stepDown * k;\n float d = throughDepth(front, hit, size);\n if (d < k) { wall = 1.0; break; }\n if (d < k + 0.5) break;\n }\n // The key's ray from there back up: paper on its way is a wall's\n // shadow.\n float lit = 1.0;\n float top = wall > 0.5 ? k - 0.5 : k;\n for (int j = 1; j <= 33; j++) {\n float z = top - float(j);\n if (z < 0.0) break;\n if (throughDepth(front, hit + stepUp * float(j), size) <= z) { lit = 0.0; break; }\n }\n throughLit = wall > 0.5 ? 0.45 * lit : lit;\n // Deeper is darker: less of the sky reaches down a narrow shaft.\n throughAo = mix(0.35, 1.0, exp(-0.12 * (k - 1.0))) * (wall > 0.5 ? 0.7 : 1.0);\n hole = wall > 0.5 ? uPaper * 0.8 : throughColour(front, hit);\n }\n ink = mix(hole, ink, cutA);\n }\n }\n";
|
|
76
|
+
export declare const CUT_FRAGMENT = "\n if (uCutMode > 0.5 && (front ? uHasFrontCut : uHasBackCut) > 0.5 && cutA < 0.999) {\n if (uCutMode > 1.5) {\n if (cutA < 0.5) discard;\n } else {\n vec2 p0 = vec2(tuv.x, 1.0 - tuv.y);\n bool hasThrough = (front ? uHasFrontThrough : uHasBackThrough) > 0.5;\n vec2 size = hasThrough ? vec2(front ? textureSize(uFrontThrough, 0) : textureSize(uBackThrough, 0)) : vec2(1.0);\n float d0 = hasThrough ? throughDepth(front, p0, size) : 0.0;\n // The picture is coarser than the page: at the hole's rim it may\n // still say paper where the page's alpha says hole.\n if (hasThrough && d0 < 0.5) {\n for (int i = 0; i < 4; i++) {\n vec2 o = vec2(i == 0 ? 1.0 : i == 1 ? -1.0 : 0.0, i == 2 ? 1.0 : i == 3 ? -1.0 : 0.0) / size;\n d0 = max(d0, throughDepth(front, p0 + o, size));\n }\n }\n // Off the holes (past the leaf's outline): nothing of this page.\n if (d0 < 0.5 && cutA < 0.5) discard;\n vec3 hole = uPaper;\n if (hasThrough && d0 > 0.5) {\n // The face's frame on screen: the gradients of its uv, so a step\n // on the page in view space is a step in the picture.\n vec3 pos = -vViewPosition;\n vec3 dp1 = dFdx(pos);\n vec3 dp2 = dFdy(pos);\n vec3 n = normalize(cross(dp1, dp2));\n vec3 eye = normalize(vViewPosition);\n if (dot(n, eye) < 0.0) n = -n;\n vec2 duv1 = dFdx(p0);\n vec2 duv2 = dFdy(p0);\n vec3 dp2perp = cross(dp2, n);\n vec3 dp1perp = cross(n, dp1);\n float det = dot(dp2perp, dp1);\n vec3 gu = (dp2perp * duv1.x + dp1perp * duv2.x) / det;\n vec3 gv = (dp2perp * duv1.y + dp1perp * duv2.y) / det;\n // A leaf down along the view ray, and a leaf up towards the key.\n float h = uLeafDepth;\n vec3 down = -eye * (h / max(dot(eye, n), 0.05)) + n * h;\n vec2 stepDown = vec2(dot(down, gu), dot(down, gv));\n vec2 stepUp = vec2(0.0);\n #if NUM_DIR_LIGHTS > 0\n vec3 l = directionalLights[0].direction;\n vec3 up = l * (h / max(dot(l, n), 0.05)) - n * h;\n stepUp = vec2(dot(up, gu), dot(up, gv));\n #endif\n float k = 1.0;\n float wall = 0.0;\n vec2 hit = p0;\n for (int i = 1; i <= 33; i++) {\n k = float(i);\n if (k > uThroughLayers) break;\n hit = p0 + stepDown * k;\n float d = throughDepth(front, hit, size);\n if (d < k) { wall = 1.0; break; }\n if (d < k + 0.5) break;\n }\n // Out past the book's last page with nothing there but the desk:\n // the page lets the eye through, to the real desk under the book.\n float endK = front ? uFrontEnd : uBackEnd;\n if (uSeeDesk > 0.5 && endK > 0.5 && wall < 0.5 && k > endK - 0.5) discard;\n // The key's ray from there back up: paper on its way is a wall's\n // shadow.\n float lit = 1.0;\n float top = wall > 0.5 ? k - 0.5 : k;\n for (int j = 1; j <= 33; j++) {\n float z = top - float(j);\n if (z < 0.0) break;\n if (throughDepth(front, hit + stepUp * float(j), size) <= z) { lit = 0.0; break; }\n }\n throughLit = wall > 0.5 ? 0.45 * lit : lit;\n // Deeper is darker: less of the sky reaches down a narrow shaft.\n throughAo = mix(0.35, 1.0, exp(-0.12 * (k - 1.0))) * (wall > 0.5 ? 0.7 : 1.0);\n hole = wall > 0.5 ? uPaper * 0.8 : throughColour(front, hit);\n }\n ink = mix(hole, ink, cutA);\n }\n }\n";
|
|
61
77
|
/**
|
|
62
78
|
* The key light's depth material for a cut leaf: three.js's, with the
|
|
63
79
|
* page texture's alpha discarding the holes (the leaf's front, or its back
|
|
64
80
|
* read through the paper), so the key's shadow falls through them.
|
|
65
81
|
*/
|
|
66
|
-
export declare function cutDepthMaterial(): MeshDepthMaterial & {
|
|
82
|
+
export declare function cutDepthMaterial(cut?: LeafCut): MeshDepthMaterial & {
|
|
67
83
|
userData: {
|
|
68
|
-
cut:
|
|
69
|
-
uCut: {
|
|
70
|
-
value: Texture | null;
|
|
71
|
-
};
|
|
72
|
-
uCutBack: {
|
|
73
|
-
value: number;
|
|
74
|
-
};
|
|
75
|
-
uMirror: {
|
|
76
|
-
value: number;
|
|
77
|
-
};
|
|
78
|
-
};
|
|
84
|
+
cut: LeafCut;
|
|
79
85
|
};
|
|
80
86
|
};
|
|
87
|
+
/** A leaf's cut as its depth material, its caster and a board's edges
|
|
88
|
+
* read it: the painted face whose alpha is the cut, whether that is its
|
|
89
|
+
* back, the book's mirroring, and whether there is a cut at all. */
|
|
90
|
+
export interface LeafCut {
|
|
91
|
+
uCut: {
|
|
92
|
+
value: Texture | null;
|
|
93
|
+
};
|
|
94
|
+
uCutBack: {
|
|
95
|
+
value: number;
|
|
96
|
+
};
|
|
97
|
+
uMirror: {
|
|
98
|
+
value: number;
|
|
99
|
+
};
|
|
100
|
+
uHasCut: {
|
|
101
|
+
value: number;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export declare const leafCut: () => LeafCut;
|
|
105
|
+
/**
|
|
106
|
+
* The edges of a board in the air (#1586): a unit box's four sides (its
|
|
107
|
+
* two faces are the leaf's meshes), its colour the board's. Each side
|
|
108
|
+
* stands only where the leaf has paper at its rim: a rounded or shaped
|
|
109
|
+
* outline takes its edges with it. Without a lid between the two faces a
|
|
110
|
+
* hole stays open through the board's thickness.
|
|
111
|
+
*/
|
|
112
|
+
export declare function boardEdges(cut: LeafCut): {
|
|
113
|
+
geometry: BoxGeometry;
|
|
114
|
+
material: MeshStandardMaterial;
|
|
115
|
+
};
|
|
81
116
|
/** The same discard for the height-map caster of a cut leaf. */
|
|
82
117
|
export declare const CASTER_CUT: {
|
|
83
118
|
pars: string;
|
|
84
119
|
discard: string;
|
|
85
120
|
};
|
|
121
|
+
/** The leaf's cut uniforms its depth material and its board's edges share,
|
|
122
|
+
* made once per mesh. */
|
|
123
|
+
export declare const leafCutOf: (mesh: {
|
|
124
|
+
userData: Record<string, unknown>;
|
|
125
|
+
}) => LeafCut;
|
|
86
126
|
type CutMesh = {
|
|
87
127
|
material: {
|
|
88
128
|
userData: {
|
|
@@ -108,31 +148,26 @@ export interface CutSources {
|
|
|
108
148
|
throughOf(src: unknown): {
|
|
109
149
|
texture: Texture;
|
|
110
150
|
layers: number;
|
|
151
|
+
end?: boolean;
|
|
111
152
|
} | null;
|
|
112
153
|
}
|
|
113
154
|
/**
|
|
114
155
|
* Sets a page mesh's cut uniforms from the pages on its faces: which face
|
|
115
156
|
* is cut, what its holes show (open pages), a leaf's thickness, and for a
|
|
116
157
|
* leaf in the air its key-light depth material and its caster, which
|
|
117
|
-
* discard the holes (the shared caster again once it is not cut).
|
|
158
|
+
* discard the holes (the shared caster again once it is not cut). `desk`:
|
|
159
|
+
* nothing lies past the book's end but the desk (no case), so an open page
|
|
160
|
+
* whose holes reach it lets the key light through them too.
|
|
118
161
|
*/
|
|
119
162
|
export declare function dressCut(mesh: CutMesh, sources: CutSources, leafDepth: number, caster: {
|
|
120
163
|
shared: unknown;
|
|
121
164
|
cut: () => unknown;
|
|
122
|
-
}): void;
|
|
165
|
+
}, desk?: boolean): void;
|
|
123
166
|
/** The caster discard's uniforms, fresh for each cut leaf. */
|
|
124
167
|
export declare const casterCut: () => {
|
|
125
|
-
uniforms: {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
};
|
|
129
|
-
uCutBack: {
|
|
130
|
-
value: number;
|
|
131
|
-
};
|
|
132
|
-
uMirror: {
|
|
133
|
-
value: number;
|
|
134
|
-
};
|
|
135
|
-
};
|
|
168
|
+
uniforms: Record<string, {
|
|
169
|
+
value: unknown;
|
|
170
|
+
}>;
|
|
136
171
|
pars: string;
|
|
137
172
|
discard: string;
|
|
138
173
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"through.d.ts","sourceRoot":"","sources":["../../src/pageFlip/through.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"through.d.ts","sourceRoot":"","sources":["../../src/pageFlip/through.ts"],"names":[],"mappings":"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"}
|