postext-folio 0.1.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -4
- package/dist/bookGeometry.d.ts +77 -0
- package/dist/bookGeometry.d.ts.map +1 -0
- package/dist/bookGeometry.js +204 -0
- package/dist/bookGeometry.js.map +1 -0
- package/dist/deskTextures.d.ts +24 -0
- package/dist/deskTextures.d.ts.map +1 -0
- package/dist/deskTextures.js +88 -0
- package/dist/deskTextures.js.map +1 -0
- package/dist/environments.d.ts +27 -0
- package/dist/environments.d.ts.map +1 -0
- package/dist/environments.js +97 -0
- package/dist/environments.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/pageFlip.d.ts +160 -26
- package/dist/pageFlip.d.ts.map +1 -1
- package/dist/pageFlip.js +1272 -340
- package/dist/pageFlip.js.map +1 -1
- package/dist/pageFlipFlat.d.ts +131 -0
- package/dist/pageFlipFlat.d.ts.map +1 -0
- package/dist/pageFlipFlat.js +870 -0
- package/dist/pageFlipFlat.js.map +1 -0
- package/dist/paper.d.ts +40 -0
- package/dist/paper.d.ts.map +1 -0
- package/dist/paper.js +65 -0
- package/dist/paper.js.map +1 -0
- package/dist/postext.d.ts +12 -2
- package/dist/postext.d.ts.map +1 -1
- package/dist/postext.js +167 -6
- package/dist/postext.js.map +1 -1
- package/dist/procedural.d.ts +35 -0
- package/dist/procedural.d.ts.map +1 -0
- package/dist/procedural.js +390 -0
- package/dist/procedural.js.map +1 -0
- package/dist/viewer.d.ts +41 -1
- package/dist/viewer.d.ts.map +1 -1
- package/dist/viewer.js +133 -16
- package/dist/viewer.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { BackSide, BoxGeometry, Color, Mesh, MeshBasicMaterial, PlaneGeometry, Scene, SphereGeometry, Vector3, } from "three";
|
|
2
|
+
/** An emitter: a panel of light of colour × strength (HDR, so it can be
|
|
3
|
+
* far brighter than white). */
|
|
4
|
+
function panel(w, h, color, strength, at, lookAt = [0, 0, 0]) {
|
|
5
|
+
const m = new Mesh(new PlaneGeometry(w, h), new MeshBasicMaterial({ color: new Color(color).multiplyScalar(strength), side: 2 }));
|
|
6
|
+
m.position.set(...at);
|
|
7
|
+
m.lookAt(...lookAt);
|
|
8
|
+
return m;
|
|
9
|
+
}
|
|
10
|
+
function room(color, strength = 1, size = [20, 20, 12]) {
|
|
11
|
+
const g = new BoxGeometry(...size);
|
|
12
|
+
// The floor (the desk's plane, z < 0 in the room) a little darker.
|
|
13
|
+
const m = new Mesh(g, new MeshBasicMaterial({ color: new Color(color).multiplyScalar(strength), side: BackSide }));
|
|
14
|
+
m.position.z = size[2] / 2 - 2;
|
|
15
|
+
return m;
|
|
16
|
+
}
|
|
17
|
+
function sphere(color, strength, at, r = 0.5) {
|
|
18
|
+
const m = new Mesh(new SphereGeometry(r, 24, 12), new MeshBasicMaterial({ color: new Color(color).multiplyScalar(strength) }));
|
|
19
|
+
m.position.set(...at);
|
|
20
|
+
return m;
|
|
21
|
+
}
|
|
22
|
+
function sceneOf(...objects) {
|
|
23
|
+
const scene = new Scene();
|
|
24
|
+
scene.add(...objects);
|
|
25
|
+
return scene;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The environments: a photographer's studio (a large softbox above left,
|
|
29
|
+
* a fill on the right, a neutral grey room), daylight from a tall window
|
|
30
|
+
* on the left, a warm reading lamp in a dim room, an even overcast sky,
|
|
31
|
+
* and night (a lamp, a faint cool window). Coordinates are in book units
|
|
32
|
+
* where the book is about 2 across, centred at the origin on the desk.
|
|
33
|
+
*/
|
|
34
|
+
export function environment(kind) {
|
|
35
|
+
switch (kind) {
|
|
36
|
+
case "studio":
|
|
37
|
+
return {
|
|
38
|
+
scene: sceneOf(room("#6d6d6d"), panel(6, 4, "#ffffff", 7, [-4, 3, 7]), panel(4, 6, "#ffffff", 2.2, [7, -1, 4]), panel(10, 2, "#ffffff", 1.5, [0, 8, 6])),
|
|
39
|
+
key: new Vector3(-0.4, 0.3, 0.86).normalize(),
|
|
40
|
+
keyColor: new Color("#ffffff"),
|
|
41
|
+
keyIntensity: 0.5,
|
|
42
|
+
softness: 0.55,
|
|
43
|
+
exposure: 1.15,
|
|
44
|
+
};
|
|
45
|
+
case "daylight":
|
|
46
|
+
return {
|
|
47
|
+
scene: sceneOf(room("#9a948c"),
|
|
48
|
+
// The window: bright, a little cool; the sky through it brighter
|
|
49
|
+
// above.
|
|
50
|
+
panel(1, 9, "#dfe9ff", 14, [-9.5, 1, 4.5], [0, 1, 4.5]), panel(1, 4, "#f2f6ff", 22, [-9.4, 1, 8], [0, 1, 8]),
|
|
51
|
+
// Sunlit floor bounce.
|
|
52
|
+
panel(8, 4, "#ffe6c4", 1.8, [-3, 0, -1.9], [-3, 0, 5]),
|
|
53
|
+
// Light bounced off the room's far wall.
|
|
54
|
+
panel(10, 8, "#fff8f0", 1.6, [9.5, 0, 4], [0, 0, 4])),
|
|
55
|
+
key: new Vector3(-0.75, 0.15, 0.64).normalize(),
|
|
56
|
+
keyColor: new Color("#fff4e6"),
|
|
57
|
+
keyIntensity: 1.0,
|
|
58
|
+
softness: 0.35,
|
|
59
|
+
exposure: 1.2,
|
|
60
|
+
};
|
|
61
|
+
case "lamp":
|
|
62
|
+
return {
|
|
63
|
+
scene: sceneOf(room("#2a2420", 0.6), sphere("#ffdcb4", 60, [-2.2, 1.8, 3.4], 0.45), panel(3, 3, "#ffd2a4", 0.8, [-2.2, 1.8, 4.2], [-2.2, 1.8, 0])),
|
|
64
|
+
key: new Vector3(-0.5, 0.42, 0.76).normalize(),
|
|
65
|
+
keyColor: new Color("#ffe2c0"),
|
|
66
|
+
keyIntensity: 1.8,
|
|
67
|
+
softness: 0.18,
|
|
68
|
+
exposure: 1.15,
|
|
69
|
+
};
|
|
70
|
+
case "overcast":
|
|
71
|
+
return {
|
|
72
|
+
scene: sceneOf(room("#8c8e92"),
|
|
73
|
+
// The sky round the room more than overhead: the camera looks
|
|
74
|
+
// nearly straight down, so the zenith is what every page mirrors
|
|
75
|
+
// back at it, a veil over the ink (#327). A dim ceiling and four
|
|
76
|
+
// bright walls give as much light with little to reflect.
|
|
77
|
+
panel(18, 18, "#f4f6fa", 0.8, [0, 0, 9.9], [0, 0, 0]), panel(18, 8, "#e6eaf0", 1.7, [0, 9.9, 4.5], [0, 0, 4.5]), panel(18, 8, "#e6eaf0", 1.4, [0, -9.9, 4.5], [0, 0, 4.5]), panel(18, 8, "#e6eaf0", 1.6, [-9.9, 0, 4.5], [0, 0, 4.5]), panel(18, 8, "#e6eaf0", 1.5, [9.9, 0, 4.5], [0, 0, 4.5])),
|
|
78
|
+
// Faint, and far enough off the vertical that its glint on gloss
|
|
79
|
+
// falls off the spread.
|
|
80
|
+
key: new Vector3(-0.4, 0.45, 0.8).normalize(),
|
|
81
|
+
keyColor: new Color("#f3f6ff"),
|
|
82
|
+
keyIntensity: 0.25,
|
|
83
|
+
softness: 1,
|
|
84
|
+
exposure: 1.14,
|
|
85
|
+
};
|
|
86
|
+
case "night":
|
|
87
|
+
return {
|
|
88
|
+
scene: sceneOf(room("#14161c", 0.6), sphere("#ffd8ac", 45, [1.8, 2.4, 3.0], 0.4), panel(1, 6, "#4b5f8c", 1.6, [-9.5, 0, 4], [0, 0, 4])),
|
|
89
|
+
key: new Vector3(0.45, 0.55, 0.7).normalize(),
|
|
90
|
+
keyColor: new Color("#ffdcb2"),
|
|
91
|
+
keyIntensity: 1.6,
|
|
92
|
+
softness: 0.15,
|
|
93
|
+
exposure: 1.25,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=environments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../src/environments.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
export { PageFlipper, canFlip } from "./pageFlip";
|
|
2
|
+
export { FlatPageFlipper } from "./pageFlipFlat";
|
|
2
3
|
export type { PageSource, SpreadSrc } from "./pageFlip";
|
|
3
4
|
export { spreadsOf, spreadOfPage } from "./spreads";
|
|
4
5
|
export type { Spread } from "./spreads";
|
|
5
6
|
export { createFolio } from "./viewer";
|
|
6
|
-
export type { FolioLabels, FolioOptions, FolioPage, FolioState, FolioViewer } from "./viewer";
|
|
7
|
+
export type { FolioAppearance, FolioLabels, FolioOptions, FolioPage, FolioState, FolioViewer } from "./viewer";
|
|
8
|
+
export type { FlipAppearance } from "./pageFlip";
|
|
9
|
+
export { paperSpec, type PaperSpec } from "./paper";
|
|
10
|
+
export { loadDeskMaps, type DeskMaps } from "./deskTextures";
|
|
7
11
|
export { createFolioFromDocument, firstPageIsRecto } from "./postext";
|
|
8
12
|
export type { FolioDocumentOptions, FolioDocumentViewer } from "./postext";
|
|
9
13
|
export { FOLIO_CSS } from "./styles";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACpD,YAAY,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACpD,YAAY,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/G,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { PageFlipper, canFlip } from "./pageFlip";
|
|
2
|
+
export { FlatPageFlipper } from "./pageFlipFlat";
|
|
2
3
|
export { spreadsOf, spreadOfPage } from "./spreads";
|
|
3
4
|
export { createFolio } from "./viewer";
|
|
5
|
+
export { paperSpec } from "./paper";
|
|
6
|
+
export { loadDeskMaps } from "./deskTextures";
|
|
4
7
|
export { createFolioFromDocument, firstPageIsRecto } from "./postext";
|
|
5
8
|
export { FOLIO_CSS } from "./styles";
|
|
6
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,SAAS,EAAkB,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,YAAY,EAAiB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/pageFlip.d.ts
CHANGED
|
@@ -1,22 +1,72 @@
|
|
|
1
|
+
import { type FolioConfig, type FolioPaperConfig } from "postext";
|
|
1
2
|
/** A page: an image URL, or a canvas or a decoded image to draw; "" is a
|
|
2
3
|
* blank page (drawn as paper), null no page at all. */
|
|
3
4
|
export type PageSource = string | HTMLCanvasElement | HTMLImageElement | null;
|
|
4
5
|
/** A spread: [verso, recto]. */
|
|
5
6
|
export type SpreadSrc = [PageSource, PageSource];
|
|
7
|
+
/** How the book is presented: the `folio` settings, the page's physical
|
|
8
|
+
* width, the leaves of the book outside the pages shown (counted for the
|
|
9
|
+
* thickness of the page block) and the paper of each leaf that is not
|
|
10
|
+
* the book's own. */
|
|
11
|
+
export interface FlipAppearance {
|
|
12
|
+
folio?: FolioConfig;
|
|
13
|
+
/** The trim width of a page, mm. Default 150. */
|
|
14
|
+
pageWidthMm?: number;
|
|
15
|
+
/** Leaves before the first spread and after the last one. */
|
|
16
|
+
extraLeaves?: {
|
|
17
|
+
before: number;
|
|
18
|
+
after: number;
|
|
19
|
+
};
|
|
20
|
+
/** Leaf k's own paper (a `:::paper` run), by leaf. */
|
|
21
|
+
leafPapers?: readonly (FolioPaperConfig | undefined)[];
|
|
22
|
+
/** One page per leaf (the single-page view): the leaf's back is blank,
|
|
23
|
+
* so a leaf counts half a sheet towards the block's thickness. */
|
|
24
|
+
singlePage?: boolean;
|
|
25
|
+
/** Where the scanned desk textures are served (a folder holding
|
|
26
|
+
* `manifest.json`, as postext.dev serves under `/folio/textures`).
|
|
27
|
+
* Without it, or until they load, the desk is drawn with procedural
|
|
28
|
+
* maps. */
|
|
29
|
+
textureBaseUrl?: string;
|
|
30
|
+
/** The leaves that are the book's own covers (`folio.binding.cover:
|
|
31
|
+
* 'pages'`): the front board (leaf 0) and the back board (the last
|
|
32
|
+
* leaf), when the document has them. No case is drawn then. */
|
|
33
|
+
coverLeaves?: {
|
|
34
|
+
front?: number;
|
|
35
|
+
back?: number;
|
|
36
|
+
};
|
|
37
|
+
/** The picture printed on the spine (`folio.binding.spineImage`): the
|
|
38
|
+
* spine as seen with the book standing, head up and the front cover to
|
|
39
|
+
* the right. Fitted to cover the back of the block, centred. A
|
|
40
|
+
* saddle-stitched book has no spine and shows none. */
|
|
41
|
+
spineImage?: PageSource;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The stock a publisher would print a book of `pages` pages on, when its
|
|
45
|
+
* settings name none: a long book goes on lighter paper, a very long one
|
|
46
|
+
* on bible paper (2,000 pages make a volume about 4.5 cm thick, not 11).
|
|
47
|
+
* Settings that name a stock, a grammage or a bulk are kept as they are.
|
|
48
|
+
*/
|
|
49
|
+
export declare function withStockForExtent(folio: FolioConfig | undefined, pages: number): FolioConfig | undefined;
|
|
6
50
|
/**
|
|
7
|
-
* Turns the pages of the
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
51
|
+
* Turns the pages of the viewer's DOM spread in a 3D scene: the book lies
|
|
52
|
+
* open on a desk, seen from in front and above (tilted by `folio.tilt`),
|
|
53
|
+
* lit by an environment (image-based light, reflected by glossy paper) and
|
|
54
|
+
* a key light that casts the shadows. The pages already read and those
|
|
55
|
+
* still to come form two blocks of real thickness (leaf count × the
|
|
56
|
+
* paper's caliper, the book's other chapters included), bound in a case or
|
|
57
|
+
* a soft cover; the open pages curve down into the gutter, whose darkness
|
|
58
|
+
* is the occlusion of that shape.
|
|
59
|
+
*
|
|
60
|
+
* The book is a stack of leaves: leaf k has spread k's recto on its front
|
|
61
|
+
* and spread k + 1's verso on its back. `go(n)` sends every leaf before
|
|
62
|
+
* spread n to the left and the rest to the right; each turns on its own,
|
|
63
|
+
* following the one before it at a short remove, so several pages can be
|
|
64
|
+
* in the air at once.
|
|
14
65
|
*
|
|
15
66
|
* The book is modelled bound on the left. A right-bound one is the same
|
|
16
67
|
* book seen in a mirror (the DOM spread's `dir="rtl"`): the stage is
|
|
17
68
|
* mirrored, so the verso lies on the right and the leaves turn from left
|
|
18
|
-
* to right, while the page images
|
|
19
|
-
* back to read as they are on the desk.
|
|
69
|
+
* to right, while the page images and the pointer are mirrored back.
|
|
20
70
|
*/
|
|
21
71
|
export declare class PageFlipper {
|
|
22
72
|
private canvas;
|
|
@@ -31,17 +81,31 @@ export declare class PageFlipper {
|
|
|
31
81
|
private left;
|
|
32
82
|
private right;
|
|
33
83
|
private desk;
|
|
84
|
+
private stacks;
|
|
85
|
+
private covers;
|
|
86
|
+
private coverMaterial;
|
|
87
|
+
/** The spine picture, once loaded, and the faces it is printed on. */
|
|
88
|
+
private spineSrc;
|
|
89
|
+
private spineTex;
|
|
90
|
+
private spineFaces;
|
|
91
|
+
private edges;
|
|
92
|
+
private key;
|
|
93
|
+
private pmrem;
|
|
94
|
+
private envKind;
|
|
95
|
+
private env;
|
|
34
96
|
/** Everything on the desk, in the book's own coordinates (mirrored for a
|
|
35
97
|
* right-bound book). */
|
|
36
98
|
private stage;
|
|
37
99
|
/** 1 for a left-bound book, −1 for a right-bound one. */
|
|
38
100
|
private sign;
|
|
39
|
-
/** Towards the light, in the book's coordinates. */
|
|
40
|
-
private light;
|
|
41
101
|
private shadowScene;
|
|
42
102
|
private shadowCamera;
|
|
43
103
|
private shadowTarget;
|
|
44
|
-
|
|
104
|
+
/** Draw the leaves in the air, and the rest of the book, into the
|
|
105
|
+
* height map. */
|
|
106
|
+
private leafCaster;
|
|
107
|
+
private staticCaster;
|
|
108
|
+
private staticCasters;
|
|
45
109
|
private leaves;
|
|
46
110
|
private loader;
|
|
47
111
|
private textures;
|
|
@@ -53,6 +117,7 @@ export declare class PageFlipper {
|
|
|
53
117
|
private turns;
|
|
54
118
|
private target;
|
|
55
119
|
private raf;
|
|
120
|
+
private lastFrame;
|
|
56
121
|
private starting;
|
|
57
122
|
private disposed;
|
|
58
123
|
/** The spread last reported settled (the one the DOM shows). */
|
|
@@ -61,6 +126,21 @@ export declare class PageFlipper {
|
|
|
61
126
|
private turnAt;
|
|
62
127
|
/** A redraw of the book at rest is queued. */
|
|
63
128
|
private still;
|
|
129
|
+
private appearance;
|
|
130
|
+
private resolved;
|
|
131
|
+
private bookSpec;
|
|
132
|
+
private leafSpecs;
|
|
133
|
+
/** The book's own covers, as stiff laminated board. */
|
|
134
|
+
private coverSpec;
|
|
135
|
+
private surfaces;
|
|
136
|
+
/** What the surfaces were built for. */
|
|
137
|
+
private surfaceKey;
|
|
138
|
+
private raycaster;
|
|
139
|
+
/** The reader's own view (right-drag): turned round the book by `yaw`,
|
|
140
|
+
* tilted by `pitch` (radians from straight above; null: the setting's
|
|
141
|
+
* tilt). */
|
|
142
|
+
private orbit;
|
|
143
|
+
private paper;
|
|
64
144
|
constructor(canvas: HTMLCanvasElement, spread: HTMLElement, book: SpreadSrc[], at: number, onSettle: (index: number) => void,
|
|
65
145
|
/** The reader's hand turned the book to another spread. */
|
|
66
146
|
onTarget: (index: number) => void,
|
|
@@ -68,20 +148,63 @@ export declare class PageFlipper {
|
|
|
68
148
|
binding?: "left" | "right",
|
|
69
149
|
/** `persistent`: the canvas draws the book at rest too (the DOM pages
|
|
70
150
|
* are hidden by the host and serve only as texture sources and text
|
|
71
|
-
* alternatives)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
{ persistent, turnAt }?: {
|
|
151
|
+
* alternatives). `turnAt`: how far through its turn (0 … 1) a leaf
|
|
152
|
+
* let go of turns over rather than falling back. Default 0.5. */
|
|
153
|
+
{ persistent, turnAt, appearance }?: {
|
|
75
154
|
persistent?: boolean;
|
|
76
155
|
turnAt?: number;
|
|
156
|
+
appearance?: FlipAppearance;
|
|
77
157
|
});
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
*
|
|
81
|
-
|
|
158
|
+
private openGeometry;
|
|
159
|
+
/** Changes how the book is presented (paper, binding, desk, light,
|
|
160
|
+
* tilt, the leaves round the pages shown). */
|
|
161
|
+
setAppearance(appearance: FlipAppearance): void;
|
|
162
|
+
/** Puts a scanned surface on the desk: colour (tinted by the surface's
|
|
163
|
+
* colour or the scan's own suggestion), relief, roughness and ambient
|
|
164
|
+
* occlusion, tiled at the scan's physical size. */
|
|
165
|
+
private dressDesk;
|
|
166
|
+
/** Pages in the whole book (the ones shown and those round them). */
|
|
167
|
+
private pageCount;
|
|
168
|
+
/** The colour the book's own boards show at their edges and spine: the
|
|
169
|
+
* setting's cover colour when it names one, else the printed cover's
|
|
170
|
+
* ground. */
|
|
171
|
+
private boardColor;
|
|
172
|
+
private sampled;
|
|
173
|
+
/** The paper of leaf k (outside the pages shown: the book's). */
|
|
174
|
+
private specOf;
|
|
175
|
+
private dressPage;
|
|
176
|
+
private pxPerMm;
|
|
177
|
+
/** The leaves lying on each side now (in the air: neither). */
|
|
178
|
+
private stackLeaves;
|
|
179
|
+
/** Loads the spine picture, then rebuilds the book to print it. */
|
|
180
|
+
private loadSpine;
|
|
181
|
+
/**
|
|
182
|
+
* The spine picture on the two outer faces of the back of the block
|
|
183
|
+
* (the one beside an empty side shows: the front cover is up when the
|
|
184
|
+
* pages lie on the right, down when they lie on the left), fitted to
|
|
185
|
+
* cover a face `depth` thick and `height` long, centred.
|
|
186
|
+
*/
|
|
187
|
+
private printSpine;
|
|
188
|
+
private clearSpine;
|
|
189
|
+
/** Rebuilds the book's surfaces, blocks and covers when the stacks change. */
|
|
190
|
+
private buildBook;
|
|
191
|
+
/** The key light over the book, its shadow covering the book and round. */
|
|
192
|
+
private layoutLight;
|
|
193
|
+
/** Sizes the drawing buffer to the canvas's device pixels and frames
|
|
194
|
+
* the tilted book onto the DOM spread: the camera stands in front of
|
|
195
|
+
* the book and above it, as far back as the whole book needs to fit the
|
|
196
|
+
* spread's box, the projection shifted so the book sits centred in it. */
|
|
82
197
|
private layout;
|
|
83
|
-
|
|
84
|
-
|
|
198
|
+
/** The height of a side's open page away from the gutter. */
|
|
199
|
+
private topZ;
|
|
200
|
+
/** Turns the view round the book (`dx`, px of a drag) and tilts it
|
|
201
|
+
* (`dy`), never below a low angle over the table. */
|
|
202
|
+
orbitBy(dx: number, dy: number): void;
|
|
203
|
+
/** Back to the view the settings give, easing there (the reader let go
|
|
204
|
+
* of the view). */
|
|
205
|
+
resetOrbit(): void;
|
|
206
|
+
private orbitFrame;
|
|
207
|
+
/** The colour of the book's blank pages (0 … 1, as CSS gives it). */
|
|
85
208
|
setPaper(r: number, g: number, b: number): void;
|
|
86
209
|
/** Starts loading the pages of these spreads as textures. */
|
|
87
210
|
preload(indexes: number[]): void;
|
|
@@ -104,9 +227,19 @@ export declare class PageFlipper {
|
|
|
104
227
|
private lift;
|
|
105
228
|
private frame;
|
|
106
229
|
private settle;
|
|
107
|
-
/** The pointer on the
|
|
108
|
-
* mirrored for a right-bound book)
|
|
230
|
+
/** The pointer on the pages' plane, in the book's coordinates (x
|
|
231
|
+
* mirrored for a right-bound book): a ray from the eye through the
|
|
232
|
+
* pointer, met with the plane the open pages lie in on that side. */
|
|
109
233
|
private toWorld;
|
|
234
|
+
/** A board turns on the top of the block it leaves (read before it
|
|
235
|
+
* leaves it); other leaves on the gutter. */
|
|
236
|
+
private hingeOf;
|
|
237
|
+
/** The page under the pointer: +1 the one a forward turn takes (the
|
|
238
|
+
* recto), −1 the other, 0 none. */
|
|
239
|
+
hit(event: {
|
|
240
|
+
clientX: number;
|
|
241
|
+
clientY: number;
|
|
242
|
+
}): 1 | -1 | 0;
|
|
110
243
|
/** Takes hold of the page under the pointer; false when there is none
|
|
111
244
|
* to turn (or pages are already in the air). */
|
|
112
245
|
grab(event: {
|
|
@@ -119,8 +252,9 @@ export declare class PageFlipper {
|
|
|
119
252
|
clientY: number;
|
|
120
253
|
}): void;
|
|
121
254
|
/** Lets go. A click turns the page over from where it was taken; a drag
|
|
122
|
-
* carries on
|
|
123
|
-
*
|
|
255
|
+
* carries on to the nearer side (the throw's speed counted, as if it
|
|
256
|
+
* went on a quarter of a second), the paper easing there from the hand's
|
|
257
|
+
* speed, never jumping. */
|
|
124
258
|
release(click?: boolean): void;
|
|
125
259
|
private draw;
|
|
126
260
|
/** Back to a transparent canvas (the DOM spread shows), unless leaves
|
package/dist/pageFlip.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pageFlip.d.ts","sourceRoot":"","sources":["../src/pageFlip.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pageFlip.d.ts","sourceRoot":"","sources":["../src/pageFlip.ts"],"names":[],"mappings":"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"}
|