manga-renderer 1.0.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/LICENSE +17 -0
- package/README.md +118 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +184 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/book/book.d.ts +133 -0
- package/dist/lib/book/book.js +329 -0
- package/dist/lib/book/book.js.map +1 -0
- package/dist/lib/book/envelope.d.ts +26 -0
- package/dist/lib/book/envelope.js +158 -0
- package/dist/lib/book/envelope.js.map +1 -0
- package/dist/lib/book/imagePacking.d.ts +10 -0
- package/dist/lib/book/imagePacking.js +213 -0
- package/dist/lib/book/imagePacking.js.map +1 -0
- package/dist/lib/book/layout.d.ts +41 -0
- package/dist/lib/book/layout.js +14 -0
- package/dist/lib/book/layout.js.map +1 -0
- package/dist/lib/book/notebook.d.ts +72 -0
- package/dist/lib/book/notebook.js +30 -0
- package/dist/lib/book/notebook.js.map +1 -0
- package/dist/lib/book/richChat.d.ts +36 -0
- package/dist/lib/book/richChat.js +87 -0
- package/dist/lib/book/richChat.js.map +1 -0
- package/dist/lib/book/storyboard.d.ts +125 -0
- package/dist/lib/book/storyboard.js +44 -0
- package/dist/lib/book/storyboard.js.map +1 -0
- package/dist/lib/layeredCanvas/dataModels/bubble.d.ts +96 -0
- package/dist/lib/layeredCanvas/dataModels/bubble.js +630 -0
- package/dist/lib/layeredCanvas/dataModels/bubble.js.map +1 -0
- package/dist/lib/layeredCanvas/dataModels/effect.d.ts +25 -0
- package/dist/lib/layeredCanvas/dataModels/effect.js +104 -0
- package/dist/lib/layeredCanvas/dataModels/effect.js.map +1 -0
- package/dist/lib/layeredCanvas/dataModels/film.d.ts +44 -0
- package/dist/lib/layeredCanvas/dataModels/film.js +172 -0
- package/dist/lib/layeredCanvas/dataModels/film.js.map +1 -0
- package/dist/lib/layeredCanvas/dataModels/frameTree.d.ts +99 -0
- package/dist/lib/layeredCanvas/dataModels/frameTree.js +861 -0
- package/dist/lib/layeredCanvas/dataModels/frameTree.js.map +1 -0
- package/dist/lib/layeredCanvas/dataModels/media.d.ts +39 -0
- package/dist/lib/layeredCanvas/dataModels/media.js +69 -0
- package/dist/lib/layeredCanvas/dataModels/media.js.map +1 -0
- package/dist/lib/layeredCanvas/layers/SampleLayer.d.ts +6 -0
- package/dist/lib/layeredCanvas/layers/SampleLayer.js +22 -0
- package/dist/lib/layeredCanvas/layers/SampleLayer.js.map +1 -0
- package/dist/lib/layeredCanvas/layers/arrayLayer.d.ts +49 -0
- package/dist/lib/layeredCanvas/layers/arrayLayer.js +364 -0
- package/dist/lib/layeredCanvas/layers/arrayLayer.js.map +1 -0
- package/dist/lib/layeredCanvas/layers/bubbleLayer.d.ts +97 -0
- package/dist/lib/layeredCanvas/layers/bubbleLayer.js +1418 -0
- package/dist/lib/layeredCanvas/layers/bubbleLayer.js.map +1 -0
- package/dist/lib/layeredCanvas/layers/floorLayer.d.ts +13 -0
- package/dist/lib/layeredCanvas/layers/floorLayer.js +64 -0
- package/dist/lib/layeredCanvas/layers/floorLayer.js.map +1 -0
- package/dist/lib/layeredCanvas/layers/frameLayer.d.ts +106 -0
- package/dist/lib/layeredCanvas/layers/frameLayer.js +1283 -0
- package/dist/lib/layeredCanvas/layers/frameLayer.js.map +1 -0
- package/dist/lib/layeredCanvas/layers/inlinePainterLayer.d.ts +33 -0
- package/dist/lib/layeredCanvas/layers/inlinePainterLayer.js +222 -0
- package/dist/lib/layeredCanvas/layers/inlinePainterLayer.js.map +1 -0
- package/dist/lib/layeredCanvas/layers/paperRendererLayer.d.ts +64 -0
- package/dist/lib/layeredCanvas/layers/paperRendererLayer.js +443 -0
- package/dist/lib/layeredCanvas/layers/paperRendererLayer.js.map +1 -0
- package/dist/lib/layeredCanvas/layers/undoLayer.d.ts +8 -0
- package/dist/lib/layeredCanvas/layers/undoLayer.js +24 -0
- package/dist/lib/layeredCanvas/layers/undoLayer.js.map +1 -0
- package/dist/lib/layeredCanvas/system/keyCache.d.ts +4 -0
- package/dist/lib/layeredCanvas/system/keyCache.js +61 -0
- package/dist/lib/layeredCanvas/system/keyCache.js.map +1 -0
- package/dist/lib/layeredCanvas/system/layeredCanvas.d.ts +172 -0
- package/dist/lib/layeredCanvas/system/layeredCanvas.js +597 -0
- package/dist/lib/layeredCanvas/system/layeredCanvas.js.map +1 -0
- package/dist/lib/layeredCanvas/system/paperArray.d.ts +29 -0
- package/dist/lib/layeredCanvas/system/paperArray.js +108 -0
- package/dist/lib/layeredCanvas/system/paperArray.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/draw/bubbleGraphic.d.ts +7 -0
- package/dist/lib/layeredCanvas/tools/draw/bubbleGraphic.js +728 -0
- package/dist/lib/layeredCanvas/tools/draw/bubbleGraphic.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/draw/clickableIcon.d.ts +42 -0
- package/dist/lib/layeredCanvas/tools/draw/clickableIcon.js +129 -0
- package/dist/lib/layeredCanvas/tools/draw/clickableIcon.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/draw/drawFilmStack.d.ts +4 -0
- package/dist/lib/layeredCanvas/tools/draw/drawFilmStack.js +53 -0
- package/dist/lib/layeredCanvas/tools/draw/drawFilmStack.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/draw/drawText.d.ts +8 -0
- package/dist/lib/layeredCanvas/tools/draw/drawText.js +45 -0
- package/dist/lib/layeredCanvas/tools/draw/drawText.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/draw/richText.d.ts +15 -0
- package/dist/lib/layeredCanvas/tools/draw/richText.js +172 -0
- package/dist/lib/layeredCanvas/tools/draw/richText.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/draw/selectionFrame.d.ts +5 -0
- package/dist/lib/layeredCanvas/tools/draw/selectionFrame.js +63 -0
- package/dist/lib/layeredCanvas/tools/draw/selectionFrame.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/draw/typeSetting.d.ts +16 -0
- package/dist/lib/layeredCanvas/tools/draw/typeSetting.js +2 -0
- package/dist/lib/layeredCanvas/tools/draw/typeSetting.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/draw/verticalText.d.ts +3 -0
- package/dist/lib/layeredCanvas/tools/draw/verticalText.js +230 -0
- package/dist/lib/layeredCanvas/tools/draw/verticalText.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/focusKeeper.d.ts +8 -0
- package/dist/lib/layeredCanvas/tools/focusKeeper.js +15 -0
- package/dist/lib/layeredCanvas/tools/focusKeeper.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/frameExamples.d.ts +382 -0
- package/dist/lib/layeredCanvas/tools/frameExamples.js +758 -0
- package/dist/lib/layeredCanvas/tools/frameExamples.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/geometry/bubbleGeometry.d.ts +12 -0
- package/dist/lib/layeredCanvas/tools/geometry/bubbleGeometry.js +117 -0
- package/dist/lib/layeredCanvas/tools/geometry/bubbleGeometry.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/geometry/convertPoint.d.ts +2 -0
- package/dist/lib/layeredCanvas/tools/geometry/convertPoint.js +25 -0
- package/dist/lib/layeredCanvas/tools/geometry/convertPoint.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/geometry/geometry.d.ts +69 -0
- package/dist/lib/layeredCanvas/tools/geometry/geometry.js +408 -0
- package/dist/lib/layeredCanvas/tools/geometry/geometry.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/geometry/geometry.vitest.d.ts +1 -0
- package/dist/lib/layeredCanvas/tools/geometry/geometry.vitest.js +58 -0
- package/dist/lib/layeredCanvas/tools/geometry/geometry.vitest.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/geometry/quickHull.d.ts +10 -0
- package/dist/lib/layeredCanvas/tools/geometry/quickHull.js +91 -0
- package/dist/lib/layeredCanvas/tools/geometry/quickHull.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/geometry/trapezoid.d.ts +18 -0
- package/dist/lib/layeredCanvas/tools/geometry/trapezoid.js +105 -0
- package/dist/lib/layeredCanvas/tools/geometry/trapezoid.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/grid.d.ts +7 -0
- package/dist/lib/layeredCanvas/tools/grid.js +16 -0
- package/dist/lib/layeredCanvas/tools/grid.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/haiku.d.ts +1 -0
- package/dist/lib/layeredCanvas/tools/haiku.js +17 -0
- package/dist/lib/layeredCanvas/tools/haiku.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/imageUtil.d.ts +8 -0
- package/dist/lib/layeredCanvas/tools/imageUtil.js +58 -0
- package/dist/lib/layeredCanvas/tools/imageUtil.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/kinsoku.d.ts +26 -0
- package/dist/lib/layeredCanvas/tools/kinsoku.js +124 -0
- package/dist/lib/layeredCanvas/tools/kinsoku.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/misc.d.ts +25 -0
- package/dist/lib/layeredCanvas/tools/misc.js +46 -0
- package/dist/lib/layeredCanvas/tools/misc.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/perfectFreehandUtil.d.ts +2 -0
- package/dist/lib/layeredCanvas/tools/perfectFreehandUtil.js +21 -0
- package/dist/lib/layeredCanvas/tools/perfectFreehandUtil.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/pictureControl.d.ts +4 -0
- package/dist/lib/layeredCanvas/tools/pictureControl.js +24 -0
- package/dist/lib/layeredCanvas/tools/pictureControl.js.map +1 -0
- package/dist/lib/layeredCanvas/tools/rectHandle.d.ts +6 -0
- package/dist/lib/layeredCanvas/tools/rectHandle.js +17 -0
- package/dist/lib/layeredCanvas/tools/rectHandle.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bubble.js","sourceRoot":"","sources":["../../../../src/lib/layeredCanvas/dataModels/bubble.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Media } from './media';
|
|
2
|
+
import { FloatField } from 'fastsdf';
|
|
3
|
+
export declare class Effect {
|
|
4
|
+
ulid: string;
|
|
5
|
+
inputMedia: Media | null;
|
|
6
|
+
outputMedia: Media | null;
|
|
7
|
+
constructor();
|
|
8
|
+
get tag(): string;
|
|
9
|
+
clone(): Effect;
|
|
10
|
+
cleanInput(): void;
|
|
11
|
+
setOutputDirty(): void;
|
|
12
|
+
apply(inputMedia: Media): Promise<Media>;
|
|
13
|
+
decompile(): any;
|
|
14
|
+
static compile(markUp: any): OutlineEffect;
|
|
15
|
+
}
|
|
16
|
+
export declare class OutlineEffect extends Effect {
|
|
17
|
+
color: string;
|
|
18
|
+
width: number;
|
|
19
|
+
sharp: number;
|
|
20
|
+
rawDistanceField: FloatField | null;
|
|
21
|
+
constructor(color: string, width: number, sharp: number);
|
|
22
|
+
clone(): Effect;
|
|
23
|
+
apply(inputMedia: Media): Promise<Media>;
|
|
24
|
+
decompile(): any;
|
|
25
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ulid } from 'ulid';
|
|
2
|
+
import { ImageMedia } from './media';
|
|
3
|
+
import { Computron, JFACompute, FloatField } from 'fastsdf';
|
|
4
|
+
import parseColor from 'color-parse';
|
|
5
|
+
const isTestEnvironment = typeof process !== 'undefined' && (process.env.NODE_ENV === 'test' || process.env.VITEST);
|
|
6
|
+
let jfa;
|
|
7
|
+
async function init() {
|
|
8
|
+
const c = new Computron();
|
|
9
|
+
await c.init();
|
|
10
|
+
jfa = new JFACompute(c);
|
|
11
|
+
await jfa.init();
|
|
12
|
+
}
|
|
13
|
+
if (!isTestEnvironment) {
|
|
14
|
+
init();
|
|
15
|
+
}
|
|
16
|
+
export class Effect {
|
|
17
|
+
ulid;
|
|
18
|
+
inputMedia;
|
|
19
|
+
outputMedia;
|
|
20
|
+
constructor() {
|
|
21
|
+
this.ulid = ulid();
|
|
22
|
+
this.inputMedia = null;
|
|
23
|
+
this.outputMedia = null;
|
|
24
|
+
}
|
|
25
|
+
get tag() {
|
|
26
|
+
return this.constructor.name;
|
|
27
|
+
}
|
|
28
|
+
clone() {
|
|
29
|
+
throw new Error("Not implemented");
|
|
30
|
+
}
|
|
31
|
+
cleanInput() {
|
|
32
|
+
this.inputMedia = null;
|
|
33
|
+
}
|
|
34
|
+
setOutputDirty() {
|
|
35
|
+
this.outputMedia = null;
|
|
36
|
+
}
|
|
37
|
+
async apply(inputMedia) {
|
|
38
|
+
throw new Error("Not implemented");
|
|
39
|
+
}
|
|
40
|
+
decompile() {
|
|
41
|
+
throw new Error("Not implemented");
|
|
42
|
+
}
|
|
43
|
+
static compile(markUp) {
|
|
44
|
+
switch (markUp.tag) {
|
|
45
|
+
case "OutlineEffect":
|
|
46
|
+
const p = markUp.properties;
|
|
47
|
+
return new OutlineEffect(p.color, p.width, p.sharp);
|
|
48
|
+
default:
|
|
49
|
+
throw new Error("Unknown effect tag: " + markUp.tag);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export class OutlineEffect extends Effect {
|
|
54
|
+
color;
|
|
55
|
+
width;
|
|
56
|
+
sharp;
|
|
57
|
+
rawDistanceField = null;
|
|
58
|
+
constructor(color, width, sharp) {
|
|
59
|
+
super();
|
|
60
|
+
this.color = color;
|
|
61
|
+
this.width = width;
|
|
62
|
+
this.sharp = sharp;
|
|
63
|
+
}
|
|
64
|
+
clone() {
|
|
65
|
+
return new OutlineEffect(this.color, this.width, this.sharp);
|
|
66
|
+
}
|
|
67
|
+
async apply(inputMedia) {
|
|
68
|
+
if (this.inputMedia != inputMedia) {
|
|
69
|
+
const inputCanvas = inputMedia.canvas;
|
|
70
|
+
const plainImage = FloatField.createFromImageOrCanvas(inputCanvas);
|
|
71
|
+
const seedMap = JFACompute.createJFASeedMap(plainImage, 0.5, false);
|
|
72
|
+
this.rawDistanceField = await jfa.compute(seedMap);
|
|
73
|
+
this.inputMedia = inputMedia;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
}
|
|
77
|
+
const inputCanvas = inputMedia.canvas;
|
|
78
|
+
// 入力自体へんかしている
|
|
79
|
+
const baseWidth = Math.max(inputMedia.naturalWidth, inputMedia.naturalHeight);
|
|
80
|
+
const width = this.width * baseWidth;
|
|
81
|
+
const c = parseColor(this.color);
|
|
82
|
+
const color = { r: c.values[0] / 255, g: c.values[1] / 255, b: c.values[2] / 255 };
|
|
83
|
+
const dull = 1.0 - this.sharp;
|
|
84
|
+
const f = (t) => dull <= t ? 1 : t * (1.0 / dull);
|
|
85
|
+
const distanceField = JFACompute.generateDistanceField(this.rawDistanceField, color, width, f);
|
|
86
|
+
const targetCanvas = document.createElement('canvas');
|
|
87
|
+
targetCanvas.width = inputCanvas.width;
|
|
88
|
+
targetCanvas.height = inputCanvas.height;
|
|
89
|
+
const ctx = targetCanvas.getContext('2d');
|
|
90
|
+
ctx.drawImage(inputCanvas, 0, 0);
|
|
91
|
+
ctx.globalCompositeOperation = 'destination-over';
|
|
92
|
+
ctx.drawImage(distanceField.toCanvas(), 0, 0);
|
|
93
|
+
this.outputMedia = new ImageMedia(targetCanvas);
|
|
94
|
+
return this.outputMedia;
|
|
95
|
+
}
|
|
96
|
+
decompile() {
|
|
97
|
+
return {
|
|
98
|
+
color: this.color,
|
|
99
|
+
width: this.width,
|
|
100
|
+
sharp: this.sharp,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=effect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect.js","sourceRoot":"","sources":["../../../../src/lib/layeredCanvas/dataModels/effect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type Vector, type Rect } from "../tools/geometry/geometry";
|
|
2
|
+
import type { Media } from './media';
|
|
3
|
+
import type { Effect } from './effect';
|
|
4
|
+
export declare class Film {
|
|
5
|
+
ulid: string;
|
|
6
|
+
media: Media;
|
|
7
|
+
n_scale: number;
|
|
8
|
+
n_translation: Vector;
|
|
9
|
+
rotation: number;
|
|
10
|
+
reverse: [number, number];
|
|
11
|
+
visible: boolean;
|
|
12
|
+
prompt: string | null;
|
|
13
|
+
effects: Effect[];
|
|
14
|
+
selected: boolean;
|
|
15
|
+
matrix: DOMMatrix | undefined;
|
|
16
|
+
index: number | undefined;
|
|
17
|
+
constructor(media: Media);
|
|
18
|
+
clone(): Film;
|
|
19
|
+
getPlainRect(): Rect;
|
|
20
|
+
static getShiftedScale(paperSize: Vector, media: Media, n_scale: number): number;
|
|
21
|
+
getShiftedScale(paperSize: Vector): number;
|
|
22
|
+
setShiftedScale(paperSize: Vector, scale: number): void;
|
|
23
|
+
static getShiftedTranslation(paperSize: Vector, media: Media, n_translation: Vector): Vector;
|
|
24
|
+
getShiftedTranslation(paperSize: Vector): Vector;
|
|
25
|
+
setShiftedTranslation(paperSize: Vector, translation: Vector): void;
|
|
26
|
+
static getShiftedRect(paperSize: Vector, media: Media, n_scale: number, n_translation: Vector, rotation: number): Rect;
|
|
27
|
+
getShiftedRect(paperSize: Vector): Rect;
|
|
28
|
+
makeMatrix(paperSize: Vector): DOMMatrix;
|
|
29
|
+
}
|
|
30
|
+
export declare class FilmStack {
|
|
31
|
+
films: Film[];
|
|
32
|
+
constructor();
|
|
33
|
+
getSelectedFilms(): Film[];
|
|
34
|
+
getOperationTargetFilms(): Film[];
|
|
35
|
+
}
|
|
36
|
+
export declare class FilmStackTransformer {
|
|
37
|
+
paperSize: Vector;
|
|
38
|
+
films: Film[];
|
|
39
|
+
pivot: Vector;
|
|
40
|
+
constructor(paperSize: Vector, films: Film[]);
|
|
41
|
+
scale(s: number): void;
|
|
42
|
+
rotate(q: number): void;
|
|
43
|
+
}
|
|
44
|
+
export declare function calculateMinimumBoundingRect(paperSize: Vector, films: Film[]): Rect | null;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { getRectCenter, rectToCorners, reverse2D } from "../tools/geometry/geometry";
|
|
2
|
+
import { ulid } from 'ulid';
|
|
3
|
+
export class Film {
|
|
4
|
+
ulid;
|
|
5
|
+
media;
|
|
6
|
+
n_scale;
|
|
7
|
+
n_translation;
|
|
8
|
+
rotation; // degree
|
|
9
|
+
reverse;
|
|
10
|
+
visible;
|
|
11
|
+
prompt;
|
|
12
|
+
effects;
|
|
13
|
+
selected; // 揮発性
|
|
14
|
+
matrix; // 揮発性
|
|
15
|
+
index; // 揮発性
|
|
16
|
+
constructor(media) {
|
|
17
|
+
this.ulid = ulid();
|
|
18
|
+
this.media = media;
|
|
19
|
+
this.n_scale = 1;
|
|
20
|
+
this.n_translation = [0, 0];
|
|
21
|
+
this.rotation = 0;
|
|
22
|
+
this.reverse = [1, 1];
|
|
23
|
+
this.visible = true;
|
|
24
|
+
this.prompt = ["1 dog", "1 cat", "1 rabbit", "1 elephant", "1 dolphin", "1 bird"][Math.floor(Math.random() * 6)];
|
|
25
|
+
this.effects = [];
|
|
26
|
+
this.selected = false;
|
|
27
|
+
}
|
|
28
|
+
clone() {
|
|
29
|
+
const f = new Film(this.media);
|
|
30
|
+
f.n_translation = [...this.n_translation];
|
|
31
|
+
f.n_scale = this.n_scale;
|
|
32
|
+
f.rotation = this.rotation;
|
|
33
|
+
f.reverse = [...this.reverse];
|
|
34
|
+
f.visible = this.visible;
|
|
35
|
+
f.prompt = this.prompt;
|
|
36
|
+
f.effects = this.effects.map(e => e.clone());
|
|
37
|
+
return f;
|
|
38
|
+
}
|
|
39
|
+
getPlainRect() {
|
|
40
|
+
const [w, h] = [this.media.naturalWidth, this.media.naturalHeight];
|
|
41
|
+
const rect = [-w / 2, -h / 2, w, h];
|
|
42
|
+
return rect;
|
|
43
|
+
}
|
|
44
|
+
// Shifted = Physicalとscaleは一緒だが、translationはコマの中心から相対
|
|
45
|
+
static getShiftedScale(paperSize, media, n_scale) {
|
|
46
|
+
const imageSize = Math.min(media.naturalWidth, media.naturalHeight);
|
|
47
|
+
const pageSize = Math.min(paperSize[0], paperSize[1]);
|
|
48
|
+
const scale = pageSize / imageSize;
|
|
49
|
+
return n_scale * scale;
|
|
50
|
+
}
|
|
51
|
+
getShiftedScale(paperSize) {
|
|
52
|
+
return Film.getShiftedScale(paperSize, this.media, this.n_scale);
|
|
53
|
+
}
|
|
54
|
+
setShiftedScale(paperSize, scale) {
|
|
55
|
+
const image = this.media;
|
|
56
|
+
const imageSize = Math.min(image.naturalWidth, image.naturalHeight);
|
|
57
|
+
const pageSize = Math.min(paperSize[0], paperSize[1]);
|
|
58
|
+
this.n_scale = scale / (pageSize / imageSize);
|
|
59
|
+
}
|
|
60
|
+
static getShiftedTranslation(paperSize, media, n_translation) {
|
|
61
|
+
const imageSize = Math.min(media.naturalWidth, media.naturalHeight);
|
|
62
|
+
const pageSize = Math.min(paperSize[0], paperSize[1]);
|
|
63
|
+
const scale = pageSize / imageSize;
|
|
64
|
+
const translation = [n_translation[0] * scale, n_translation[1] * scale];
|
|
65
|
+
return translation;
|
|
66
|
+
}
|
|
67
|
+
getShiftedTranslation(paperSize) {
|
|
68
|
+
return Film.getShiftedTranslation(paperSize, this.media, this.n_translation);
|
|
69
|
+
}
|
|
70
|
+
setShiftedTranslation(paperSize, translation) {
|
|
71
|
+
const image = this.media;
|
|
72
|
+
const imageSize = Math.min(image.naturalWidth, image.naturalHeight);
|
|
73
|
+
const pageSize = Math.min(paperSize[0], paperSize[1]);
|
|
74
|
+
const scale = pageSize / imageSize;
|
|
75
|
+
this.n_translation = [translation[0] / scale, translation[1] / scale];
|
|
76
|
+
}
|
|
77
|
+
static getShiftedRect(paperSize, media, n_scale, n_translation, rotation) {
|
|
78
|
+
const scale = Film.getShiftedScale(paperSize, media, n_scale);
|
|
79
|
+
const translation = Film.getShiftedTranslation(paperSize, media, n_translation);
|
|
80
|
+
const [w, h] = [media.naturalWidth * scale, media.naturalHeight * scale];
|
|
81
|
+
const [x, y] = translation;
|
|
82
|
+
const rect = [x - w / 2, y - h / 2, w, h];
|
|
83
|
+
return rect;
|
|
84
|
+
}
|
|
85
|
+
getShiftedRect(paperSize) {
|
|
86
|
+
return Film.getShiftedRect(paperSize, this.media, this.n_scale, this.n_translation, this.rotation);
|
|
87
|
+
}
|
|
88
|
+
makeMatrix(paperSize) {
|
|
89
|
+
const scale = this.getShiftedScale(paperSize);
|
|
90
|
+
const translation = this.getShiftedTranslation(paperSize);
|
|
91
|
+
const matrix = new DOMMatrix();
|
|
92
|
+
matrix.translateSelf(translation[0], translation[1]);
|
|
93
|
+
matrix.rotateSelf(-this.rotation);
|
|
94
|
+
matrix.scaleSelf(scale, scale);
|
|
95
|
+
return matrix;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export class FilmStack {
|
|
99
|
+
films;
|
|
100
|
+
constructor() {
|
|
101
|
+
this.films = [];
|
|
102
|
+
}
|
|
103
|
+
getSelectedFilms() {
|
|
104
|
+
return this.films.filter(film => film.selected);
|
|
105
|
+
}
|
|
106
|
+
getOperationTargetFilms() {
|
|
107
|
+
const films = this.getSelectedFilms();
|
|
108
|
+
return 0 < films.length ? films : this.films;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
export class FilmStackTransformer {
|
|
112
|
+
paperSize;
|
|
113
|
+
films;
|
|
114
|
+
pivot;
|
|
115
|
+
constructor(paperSize, films) {
|
|
116
|
+
this.paperSize = paperSize;
|
|
117
|
+
this.films = films;
|
|
118
|
+
films.forEach((film, i) => {
|
|
119
|
+
film.matrix = film.makeMatrix(paperSize);
|
|
120
|
+
});
|
|
121
|
+
this.pivot = [paperSize[0] / 2, paperSize[1] / 2];
|
|
122
|
+
const r = calculateMinimumBoundingRect(paperSize, films);
|
|
123
|
+
if (r != null) {
|
|
124
|
+
this.pivot = getRectCenter(r);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
scale(s) {
|
|
128
|
+
const rootMatrix = new DOMMatrix();
|
|
129
|
+
rootMatrix.scaleSelf(s);
|
|
130
|
+
this.films.forEach((film) => {
|
|
131
|
+
const m = rootMatrix.multiply(film.matrix);
|
|
132
|
+
film.setShiftedTranslation(this.paperSize, [m.e, m.f]);
|
|
133
|
+
film.setShiftedScale(this.paperSize, Math.sqrt(m.a * m.a + m.b * m.b));
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
rotate(q) {
|
|
137
|
+
const rotation = Math.max(-180, Math.min(180, q));
|
|
138
|
+
const rootMatrix = new DOMMatrix();
|
|
139
|
+
rootMatrix.translateSelf(...this.pivot);
|
|
140
|
+
rootMatrix.rotateSelf(-rotation);
|
|
141
|
+
rootMatrix.translateSelf(...reverse2D(this.pivot));
|
|
142
|
+
this.films.forEach((film) => {
|
|
143
|
+
const m = rootMatrix.multiply(film.matrix);
|
|
144
|
+
film.rotation = -Math.atan2(m.b, m.a) * 180 / Math.PI;
|
|
145
|
+
film.setShiftedTranslation(this.paperSize, [m.e, m.f]);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
export function calculateMinimumBoundingRect(paperSize, films) {
|
|
150
|
+
if (films.length === 0) {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
|
|
154
|
+
films.forEach(film => {
|
|
155
|
+
const transformedCorners = transformFilm(paperSize, film);
|
|
156
|
+
transformedCorners.forEach(corner => {
|
|
157
|
+
const [x, y] = corner;
|
|
158
|
+
minX = Math.min(minX, x);
|
|
159
|
+
minY = Math.min(minY, y);
|
|
160
|
+
maxX = Math.max(maxX, x);
|
|
161
|
+
maxY = Math.max(maxY, y);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
return [minX, minY, maxX - minX, maxY - minY];
|
|
165
|
+
}
|
|
166
|
+
function transformFilm(paperSize, film) {
|
|
167
|
+
const rect = film.getPlainRect();
|
|
168
|
+
const corners = rectToCorners(rect);
|
|
169
|
+
const matrix = film.makeMatrix(paperSize);
|
|
170
|
+
return corners.map(corner => matrix.transformPoint({ x: corner[0], y: corner[1] })).map(p => [p.x, p.y]);
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=film.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"film.js","sourceRoot":"","sources":["../../../../src/lib/layeredCanvas/dataModels/film.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { type Vector } from "../tools/geometry/geometry";
|
|
2
|
+
import { type Trapezoid } from "../tools/geometry/trapezoid";
|
|
3
|
+
import { type RectHandle } from "../tools/rectHandle";
|
|
4
|
+
import { type Film, FilmStack } from "./film";
|
|
5
|
+
export type CornerOffsets = {
|
|
6
|
+
topLeft: Vector;
|
|
7
|
+
topRight: Vector;
|
|
8
|
+
bottomLeft: Vector;
|
|
9
|
+
bottomRight: Vector;
|
|
10
|
+
};
|
|
11
|
+
export type Border = {
|
|
12
|
+
layout: Layout;
|
|
13
|
+
index: number;
|
|
14
|
+
corners: Trapezoid;
|
|
15
|
+
formalCorners: Trapezoid;
|
|
16
|
+
};
|
|
17
|
+
export type PaddingHandle = {
|
|
18
|
+
layout: Layout;
|
|
19
|
+
handle: RectHandle;
|
|
20
|
+
corners: Trapezoid;
|
|
21
|
+
};
|
|
22
|
+
export type Layout = {
|
|
23
|
+
size: Vector;
|
|
24
|
+
origin: Vector;
|
|
25
|
+
rawSize: Vector;
|
|
26
|
+
rawOrigin: Vector;
|
|
27
|
+
children?: Layout[];
|
|
28
|
+
element: FrameElement;
|
|
29
|
+
dir: 'h' | 'v' | null;
|
|
30
|
+
corners: Trapezoid;
|
|
31
|
+
formalCorners: Trapezoid;
|
|
32
|
+
};
|
|
33
|
+
export declare class FrameElement {
|
|
34
|
+
rawSize: number;
|
|
35
|
+
direction: 'h' | 'v' | null;
|
|
36
|
+
children: FrameElement[];
|
|
37
|
+
localLength: number;
|
|
38
|
+
localBreadth: number;
|
|
39
|
+
divider: {
|
|
40
|
+
spacing: number;
|
|
41
|
+
slant: number;
|
|
42
|
+
};
|
|
43
|
+
cornerOffsets: CornerOffsets;
|
|
44
|
+
bgColor: string | null;
|
|
45
|
+
borderColor: string | null;
|
|
46
|
+
borderWidth: number | null;
|
|
47
|
+
z: number;
|
|
48
|
+
visibility: number;
|
|
49
|
+
semantics: string | null;
|
|
50
|
+
prompt: string | null;
|
|
51
|
+
pseudo: boolean;
|
|
52
|
+
filmStack: FilmStack;
|
|
53
|
+
gallery: HTMLCanvasElement[];
|
|
54
|
+
focused: boolean;
|
|
55
|
+
residenceTime: number;
|
|
56
|
+
constructor(size: number);
|
|
57
|
+
clone(): FrameElement;
|
|
58
|
+
static compile(markUp: any): FrameElement;
|
|
59
|
+
static compileNode(markUp: any): FrameElement;
|
|
60
|
+
static decompile(element: FrameElement): any;
|
|
61
|
+
static decompileAux(element: FrameElement, parentDir: 'h' | 'v'): any;
|
|
62
|
+
static decompileNode(element: FrameElement, parentDir: 'h' | 'v'): any;
|
|
63
|
+
static findElement(root: FrameElement, f: (e: FrameElement) => boolean): FrameElement | null;
|
|
64
|
+
static findParent(root: FrameElement, target: FrameElement): FrameElement | null;
|
|
65
|
+
static eraseElement(root: FrameElement, target: FrameElement): void;
|
|
66
|
+
static duplicateElement(root: FrameElement, target: FrameElement): void;
|
|
67
|
+
static splitElementHorizontal(root: FrameElement, target: FrameElement): void;
|
|
68
|
+
static splitElementVertical(root: FrameElement, target: FrameElement): void;
|
|
69
|
+
static splitElement(root: FrameElement, target: FrameElement, splitDirection: 'h' | 'v'): void;
|
|
70
|
+
static transposeDivider(root: FrameElement, target: FrameElement): void;
|
|
71
|
+
calculateLengthAndBreadth(): void;
|
|
72
|
+
getLogicalSize(): Vector;
|
|
73
|
+
isLeaf(): boolean;
|
|
74
|
+
isAuthentic(): boolean;
|
|
75
|
+
insertElement(index: number): void;
|
|
76
|
+
}
|
|
77
|
+
export declare function calculatePhysicalLayout(element: FrameElement, rawSize: Vector, rawOrigin: Vector): Layout;
|
|
78
|
+
export declare function calculateOffsettedCorners(rawSize: Vector, corners: Trapezoid, offsets: CornerOffsets): Trapezoid;
|
|
79
|
+
export declare function findLayoutAt(layout: Layout, point: Vector, margin: number, current?: Layout | null): Layout | null;
|
|
80
|
+
export declare function listLayoutsAt(layout: Layout, point: Vector, margin: number): Layout[];
|
|
81
|
+
export declare function findLayoutOf(layout: Layout, element: FrameElement): Layout | null;
|
|
82
|
+
export declare function findBorderAt(layout: Layout, point: Vector, margin: number): Border | null;
|
|
83
|
+
export declare function findPaddingAt(layout: Layout, position: Vector, innerWidth: number, outerWidth: number): PaddingHandle | null;
|
|
84
|
+
export declare function findPaddingOn(layout: Layout, position: Vector, innerWidth: number, outerWidth: number): PaddingHandle | null;
|
|
85
|
+
export declare function findPaddingOf(layout: Layout, handle: RectHandle, innerWidth: number, outerWidth: number): {
|
|
86
|
+
layout: Layout;
|
|
87
|
+
handle: RectHandle;
|
|
88
|
+
corners: Trapezoid;
|
|
89
|
+
};
|
|
90
|
+
export declare function makePaddingTrapezoid(layout: Layout, handle: RectHandle, innerWidth: number, outerWidth: number): Trapezoid;
|
|
91
|
+
export declare function makeBorderFormalCorners(layout: Layout, index: number): Trapezoid;
|
|
92
|
+
export declare function makeBorderCorners(layout: Layout, index: number, margin: number): Trapezoid;
|
|
93
|
+
export declare function collectImages(frameTree: FrameElement): FilmStack[];
|
|
94
|
+
export declare function dealImages(frameTree: FrameElement, filmStacks: FilmStack[], insertElement: FrameElement, spliceElement: FrameElement): void;
|
|
95
|
+
export declare function collectLeaves(frameTree: FrameElement): FrameElement[];
|
|
96
|
+
export declare function constraintTree(paperSize: Vector, layout: Layout): void;
|
|
97
|
+
export declare function constraintRecursive(paperSize: Vector, layout: Layout): void;
|
|
98
|
+
export declare function constraintLeaf(paperSize: Vector, layout: Layout): void;
|
|
99
|
+
export declare function constraintFilms(paperSize: Vector, layout: Layout, films: Film[]): void;
|