samcan 0.0.2 → 0.1.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 → LICENSE} +3 -1
- package/README.md +3 -0
- package/dist/camera/index.cjs +370 -0
- package/dist/camera/index.d.cts +54 -0
- package/dist/camera/index.d.ts +54 -0
- package/dist/camera/index.js +70 -0
- package/dist/document/index.cjs +735 -0
- package/dist/document/index.d.cts +174 -0
- package/dist/document/index.d.ts +174 -0
- package/dist/document/index.js +161 -0
- package/dist/editor/index.cjs +5007 -0
- package/dist/editor/index.d.cts +374 -0
- package/dist/editor/index.d.ts +374 -0
- package/dist/editor/index.js +2401 -0
- package/dist/engine/index.cjs +3752 -0
- package/dist/engine/index.d.cts +183 -0
- package/dist/engine/index.d.ts +183 -0
- package/dist/engine/index.js +111 -0
- package/dist/index.cjs +8899 -0
- package/dist/index.d.cts +962 -0
- package/dist/index.d.ts +962 -46
- package/dist/index.js +1008 -49
- package/dist/math/index.cjs +2230 -0
- package/dist/math/index.d.cts +302 -0
- package/dist/math/index.d.ts +302 -0
- package/dist/math/index.js +1109 -0
- package/dist/renderer/index.cjs +1865 -0
- package/dist/renderer/index.d.cts +91 -0
- package/dist/renderer/index.d.ts +91 -0
- package/dist/renderer/index.js +89 -0
- package/dist/shared/chunk-35pkr0zs.js +110 -0
- package/dist/shared/chunk-7sr7q84y.js +80 -0
- package/dist/shared/chunk-87399bz7.js +89 -0
- package/dist/shared/chunk-8ynnz57m.js +129 -0
- package/dist/shared/chunk-d6gxvapt.js +500 -0
- package/dist/shared/chunk-hewznwbd.js +305 -0
- package/dist/shared/chunk-jdvrd5tv.js +623 -0
- package/dist/shared/chunk-rvag1j46.js +461 -0
- package/dist/shared/chunk-rzxyjwk8.js +397 -0
- package/dist/shared/chunk-s3qdcmcq.js +1392 -0
- package/dist/shared/chunk-v53jprrn.js +68 -0
- package/dist/shared/chunk-wa3772hp.js +117 -0
- package/dist/spatial/index.cjs +954 -0
- package/dist/spatial/index.d.cts +136 -0
- package/dist/spatial/index.d.ts +136 -0
- package/dist/spatial/index.js +301 -0
- package/dist/stroke/index.cjs +1010 -0
- package/dist/stroke/index.d.cts +143 -0
- package/dist/stroke/index.d.ts +143 -0
- package/dist/stroke/index.js +343 -0
- package/package.json +122 -58
- package/dist/bundle.js +0 -5888
- package/dist/core/animation/animationruntime.d.ts +0 -238
- package/dist/core/animation/animationruntime.d.ts.map +0 -1
- package/dist/core/animation/animationruntime.js +0 -530
- package/dist/core/animation/animationruntime.js.map +0 -1
- package/dist/core/animation/animationstate.d.ts +0 -85
- package/dist/core/animation/animationstate.d.ts.map +0 -1
- package/dist/core/animation/animationstate.js +0 -119
- package/dist/core/animation/animationstate.js.map +0 -1
- package/dist/core/animation/animationtrack.d.ts +0 -55
- package/dist/core/animation/animationtrack.d.ts.map +0 -1
- package/dist/core/animation/animationtrack.js +0 -185
- package/dist/core/animation/animationtrack.js.map +0 -1
- package/dist/core/animation/easing.d.ts +0 -80
- package/dist/core/animation/easing.d.ts.map +0 -1
- package/dist/core/animation/easing.js +0 -126
- package/dist/core/animation/easing.js.map +0 -1
- package/dist/core/animation/index.d.ts +0 -11
- package/dist/core/animation/index.d.ts.map +0 -1
- package/dist/core/animation/index.js +0 -10
- package/dist/core/animation/index.js.map +0 -1
- package/dist/core/animation/interpolator.d.ts +0 -82
- package/dist/core/animation/interpolator.d.ts.map +0 -1
- package/dist/core/animation/interpolator.js +0 -108
- package/dist/core/animation/interpolator.js.map +0 -1
- package/dist/core/animation/keyframe.d.ts +0 -52
- package/dist/core/animation/keyframe.d.ts.map +0 -1
- package/dist/core/animation/keyframe.js +0 -65
- package/dist/core/animation/keyframe.js.map +0 -1
- package/dist/core/animation/logger.d.ts +0 -8
- package/dist/core/animation/logger.d.ts.map +0 -1
- package/dist/core/animation/logger.js +0 -20
- package/dist/core/animation/logger.js.map +0 -1
- package/dist/core/animation/statemachine.d.ts +0 -178
- package/dist/core/animation/statemachine.d.ts.map +0 -1
- package/dist/core/animation/statemachine.js +0 -378
- package/dist/core/animation/statemachine.js.map +0 -1
- package/dist/core/animation/statetransition.d.ts +0 -142
- package/dist/core/animation/statetransition.d.ts.map +0 -1
- package/dist/core/animation/statetransition.js +0 -189
- package/dist/core/animation/statetransition.js.map +0 -1
- package/dist/core/animation/timeline.d.ts +0 -62
- package/dist/core/animation/timeline.d.ts.map +0 -1
- package/dist/core/animation/timeline.js +0 -102
- package/dist/core/animation/timeline.js.map +0 -1
- package/dist/core/api.d.ts +0 -245
- package/dist/core/api.d.ts.map +0 -1
- package/dist/core/api.js +0 -369
- package/dist/core/api.js.map +0 -1
- package/dist/core/asset/assetmanager.d.ts +0 -196
- package/dist/core/asset/assetmanager.d.ts.map +0 -1
- package/dist/core/asset/assetmanager.js +0 -502
- package/dist/core/asset/assetmanager.js.map +0 -1
- package/dist/core/asset/index.d.ts +0 -3
- package/dist/core/asset/index.d.ts.map +0 -1
- package/dist/core/asset/index.js +0 -3
- package/dist/core/asset/index.js.map +0 -1
- package/dist/core/asset/types.d.ts +0 -36
- package/dist/core/asset/types.d.ts.map +0 -1
- package/dist/core/asset/types.js +0 -1
- package/dist/core/asset/types.js.map +0 -1
- package/dist/core/command/basecommand.d.ts +0 -29
- package/dist/core/command/basecommand.d.ts.map +0 -1
- package/dist/core/command/basecommand.js +0 -36
- package/dist/core/command/basecommand.js.map +0 -1
- package/dist/core/command/command.d.ts +0 -55
- package/dist/core/command/command.d.ts.map +0 -1
- package/dist/core/command/command.js +0 -1
- package/dist/core/command/command.js.map +0 -1
- package/dist/core/command/commandhistory.d.ts +0 -76
- package/dist/core/command/commandhistory.d.ts.map +0 -1
- package/dist/core/command/commandhistory.js +0 -122
- package/dist/core/command/commandhistory.js.map +0 -1
- package/dist/core/command/editorcommands.d.ts +0 -108
- package/dist/core/command/editorcommands.d.ts.map +0 -1
- package/dist/core/command/editorcommands.js +0 -274
- package/dist/core/command/editorcommands.js.map +0 -1
- package/dist/core/command/index.d.ts +0 -5
- package/dist/core/command/index.d.ts.map +0 -1
- package/dist/core/command/index.js +0 -5
- package/dist/core/command/index.js.map +0 -1
- package/dist/core/editor/events/emitter.d.ts +0 -45
- package/dist/core/editor/events/emitter.d.ts.map +0 -1
- package/dist/core/editor/events/emitter.js +0 -88
- package/dist/core/editor/events/emitter.js.map +0 -1
- package/dist/core/error/animationerror.d.ts +0 -27
- package/dist/core/error/animationerror.d.ts.map +0 -1
- package/dist/core/error/animationerror.js +0 -41
- package/dist/core/error/animationerror.js.map +0 -1
- package/dist/core/error/asseterror.d.ts +0 -32
- package/dist/core/error/asseterror.d.ts.map +0 -1
- package/dist/core/error/asseterror.js +0 -48
- package/dist/core/error/asseterror.js.map +0 -1
- package/dist/core/error/index.d.ts +0 -7
- package/dist/core/error/index.d.ts.map +0 -1
- package/dist/core/error/index.js +0 -7
- package/dist/core/error/index.js.map +0 -1
- package/dist/core/error/pluginerror.d.ts +0 -22
- package/dist/core/error/pluginerror.d.ts.map +0 -1
- package/dist/core/error/pluginerror.js +0 -33
- package/dist/core/error/pluginerror.js.map +0 -1
- package/dist/core/error/renderererror.d.ts +0 -26
- package/dist/core/error/renderererror.d.ts.map +0 -1
- package/dist/core/error/renderererror.js +0 -40
- package/dist/core/error/renderererror.js.map +0 -1
- package/dist/core/error/samcanerror.d.ts +0 -72
- package/dist/core/error/samcanerror.d.ts.map +0 -1
- package/dist/core/error/samcanerror.js +0 -108
- package/dist/core/error/samcanerror.js.map +0 -1
- package/dist/core/error/serializationerror.d.ts +0 -31
- package/dist/core/error/serializationerror.d.ts.map +0 -1
- package/dist/core/error/serializationerror.js +0 -46
- package/dist/core/error/serializationerror.js.map +0 -1
- package/dist/core/index.d.ts +0 -12
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -12
- package/dist/core/index.js.map +0 -1
- package/dist/core/math/color.d.ts +0 -56
- package/dist/core/math/color.d.ts.map +0 -1
- package/dist/core/math/color.js +0 -125
- package/dist/core/math/color.js.map +0 -1
- package/dist/core/math/index.d.ts +0 -14
- package/dist/core/math/index.d.ts.map +0 -1
- package/dist/core/math/index.js +0 -14
- package/dist/core/math/index.js.map +0 -1
- package/dist/core/math/matrix.d.ts +0 -101
- package/dist/core/math/matrix.d.ts.map +0 -1
- package/dist/core/math/matrix.js +0 -177
- package/dist/core/math/matrix.js.map +0 -1
- package/dist/core/math/paint.d.ts +0 -104
- package/dist/core/math/paint.d.ts.map +0 -1
- package/dist/core/math/paint.js +0 -204
- package/dist/core/math/paint.js.map +0 -1
- package/dist/core/math/path/index.d.ts +0 -94
- package/dist/core/math/path/index.d.ts.map +0 -1
- package/dist/core/math/path/index.js +0 -180
- package/dist/core/math/path/index.js.map +0 -1
- package/dist/core/math/path/operations.d.ts +0 -38
- package/dist/core/math/path/operations.d.ts.map +0 -1
- package/dist/core/math/path/operations.js +0 -149
- package/dist/core/math/path/operations.js.map +0 -1
- package/dist/core/math/pool.d.ts +0 -54
- package/dist/core/math/pool.d.ts.map +0 -1
- package/dist/core/math/pool.js +0 -97
- package/dist/core/math/pool.js.map +0 -1
- package/dist/core/math/pools.d.ts +0 -29
- package/dist/core/math/pools.d.ts.map +0 -1
- package/dist/core/math/pools.js +0 -50
- package/dist/core/math/pools.js.map +0 -1
- package/dist/core/math/rectangle.d.ts +0 -68
- package/dist/core/math/rectangle.d.ts.map +0 -1
- package/dist/core/math/rectangle.js +0 -124
- package/dist/core/math/rectangle.js.map +0 -1
- package/dist/core/math/utils.d.ts +0 -68
- package/dist/core/math/utils.d.ts.map +0 -1
- package/dist/core/math/utils.js +0 -110
- package/dist/core/math/utils.js.map +0 -1
- package/dist/core/math/vector2.d.ts +0 -85
- package/dist/core/math/vector2.d.ts.map +0 -1
- package/dist/core/math/vector2.js +0 -134
- package/dist/core/math/vector2.js.map +0 -1
- package/dist/core/plugin/animationcontroller.d.ts +0 -43
- package/dist/core/plugin/animationcontroller.d.ts.map +0 -1
- package/dist/core/plugin/animationcontroller.js +0 -11
- package/dist/core/plugin/animationcontroller.js.map +0 -1
- package/dist/core/plugin/index.d.ts +0 -6
- package/dist/core/plugin/index.d.ts.map +0 -1
- package/dist/core/plugin/index.js +0 -4
- package/dist/core/plugin/index.js.map +0 -1
- package/dist/core/plugin/plugin.d.ts +0 -53
- package/dist/core/plugin/plugin.d.ts.map +0 -1
- package/dist/core/plugin/plugin.js +0 -29
- package/dist/core/plugin/plugin.js.map +0 -1
- package/dist/core/plugin/pluginregistry.d.ts +0 -71
- package/dist/core/plugin/pluginregistry.d.ts.map +0 -1
- package/dist/core/plugin/pluginregistry.js +0 -143
- package/dist/core/plugin/pluginregistry.js.map +0 -1
- package/dist/core/renderer/batchmanager.d.ts +0 -68
- package/dist/core/renderer/batchmanager.d.ts.map +0 -1
- package/dist/core/renderer/batchmanager.js +0 -82
- package/dist/core/renderer/batchmanager.js.map +0 -1
- package/dist/core/renderer/canvas2drenderer.d.ts +0 -139
- package/dist/core/renderer/canvas2drenderer.d.ts.map +0 -1
- package/dist/core/renderer/canvas2drenderer.js +0 -499
- package/dist/core/renderer/canvas2drenderer.js.map +0 -1
- package/dist/core/renderer/dirtyregionmanager.d.ts +0 -54
- package/dist/core/renderer/dirtyregionmanager.d.ts.map +0 -1
- package/dist/core/renderer/dirtyregionmanager.js +0 -129
- package/dist/core/renderer/dirtyregionmanager.js.map +0 -1
- package/dist/core/renderer/index.d.ts +0 -8
- package/dist/core/renderer/index.d.ts.map +0 -1
- package/dist/core/renderer/index.js +0 -6
- package/dist/core/renderer/index.js.map +0 -1
- package/dist/core/renderer/renderer.d.ts +0 -154
- package/dist/core/renderer/renderer.d.ts.map +0 -1
- package/dist/core/renderer/renderer.js +0 -1
- package/dist/core/renderer/renderer.js.map +0 -1
- package/dist/core/renderer/rendererfactory.d.ts +0 -66
- package/dist/core/renderer/rendererfactory.d.ts.map +0 -1
- package/dist/core/renderer/rendererfactory.js +0 -219
- package/dist/core/renderer/rendererfactory.js.map +0 -1
- package/dist/core/renderer/webglrenderer.d.ts +0 -185
- package/dist/core/renderer/webglrenderer.d.ts.map +0 -1
- package/dist/core/renderer/webglrenderer.js +0 -1007
- package/dist/core/renderer/webglrenderer.js.map +0 -1
- package/dist/core/scene/index.d.ts +0 -4
- package/dist/core/scene/index.d.ts.map +0 -1
- package/dist/core/scene/index.js +0 -4
- package/dist/core/scene/index.js.map +0 -1
- package/dist/core/scene/node.d.ts +0 -162
- package/dist/core/scene/node.d.ts.map +0 -1
- package/dist/core/scene/node.js +0 -402
- package/dist/core/scene/node.js.map +0 -1
- package/dist/core/scene/nodes/artboard.d.ts +0 -42
- package/dist/core/scene/nodes/artboard.d.ts.map +0 -1
- package/dist/core/scene/nodes/artboard.js +0 -64
- package/dist/core/scene/nodes/artboard.js.map +0 -1
- package/dist/core/scene/nodes/groupnode.d.ts +0 -10
- package/dist/core/scene/nodes/groupnode.d.ts.map +0 -1
- package/dist/core/scene/nodes/groupnode.js +0 -12
- package/dist/core/scene/nodes/groupnode.js.map +0 -1
- package/dist/core/scene/nodes/imagenode.d.ts +0 -38
- package/dist/core/scene/nodes/imagenode.d.ts.map +0 -1
- package/dist/core/scene/nodes/imagenode.js +0 -77
- package/dist/core/scene/nodes/imagenode.js.map +0 -1
- package/dist/core/scene/nodes/index.d.ts +0 -5
- package/dist/core/scene/nodes/index.d.ts.map +0 -1
- package/dist/core/scene/nodes/index.js +0 -5
- package/dist/core/scene/nodes/index.js.map +0 -1
- package/dist/core/scene/nodes/shapenode.d.ts +0 -76
- package/dist/core/scene/nodes/shapenode.d.ts.map +0 -1
- package/dist/core/scene/nodes/shapenode.js +0 -212
- package/dist/core/scene/nodes/shapenode.js.map +0 -1
- package/dist/core/scene/transform.d.ts +0 -27
- package/dist/core/scene/transform.d.ts.map +0 -1
- package/dist/core/scene/transform.js +0 -52
- package/dist/core/scene/transform.js.map +0 -1
- package/dist/core/serialization/index.d.ts +0 -3
- package/dist/core/serialization/index.d.ts.map +0 -1
- package/dist/core/serialization/index.js +0 -2
- package/dist/core/serialization/index.js.map +0 -1
- package/dist/core/serialization/serializer.d.ts +0 -323
- package/dist/core/serialization/serializer.d.ts.map +0 -1
- package/dist/core/serialization/serializer.js +0 -1173
- package/dist/core/serialization/serializer.js.map +0 -1
- package/dist/core/serialization/types.d.ts +0 -242
- package/dist/core/serialization/types.d.ts.map +0 -1
- package/dist/core/serialization/types.js +0 -1
- package/dist/core/serialization/types.js.map +0 -1
- package/dist/core/timing/clock.d.ts +0 -43
- package/dist/core/timing/clock.d.ts.map +0 -1
- package/dist/core/timing/clock.js +0 -78
- package/dist/core/timing/clock.js.map +0 -1
- package/dist/core/timing/index.d.ts +0 -3
- package/dist/core/timing/index.d.ts.map +0 -1
- package/dist/core/timing/index.js +0 -3
- package/dist/core/timing/index.js.map +0 -1
- package/dist/core/timing/scheduler.d.ts +0 -72
- package/dist/core/timing/scheduler.d.ts.map +0 -1
- package/dist/core/timing/scheduler.js +0 -163
- package/dist/core/timing/scheduler.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/wrapper/react/index.d.ts +0 -5
- package/dist/wrapper/react/index.d.ts.map +0 -1
- package/dist/wrapper/react/index.js +0 -3
- package/dist/wrapper/react/index.js.map +0 -1
- package/dist/wrapper/react/samcan-player.d.ts +0 -26
- package/dist/wrapper/react/samcan-player.d.ts.map +0 -1
- package/dist/wrapper/react/samcan-player.js +0 -19
- package/dist/wrapper/react/samcan-player.js.map +0 -1
- package/dist/wrapper/react/use-samcan-player.d.ts +0 -33
- package/dist/wrapper/react/use-samcan-player.d.ts.map +0 -1
- package/dist/wrapper/react/use-samcan-player.js +0 -65
- package/dist/wrapper/react/use-samcan-player.js.map +0 -1
- package/readme.md +0 -96
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
type camera = [number, number, number, number];
|
|
2
|
+
type vector2 = [number, number];
|
|
3
|
+
type rectangle = [number, number, number, number];
|
|
4
|
+
type transform = [number, number, number, number, number, number];
|
|
5
|
+
type viewport = [number, number, number];
|
|
6
|
+
type color = [number, number, number, number];
|
|
7
|
+
type circle = [number, number, number];
|
|
8
|
+
declare const path_move = 0;
|
|
9
|
+
declare const path_line = 1;
|
|
10
|
+
declare const path_cubic = 2;
|
|
11
|
+
declare const path_close = 3;
|
|
12
|
+
type path_command_move = [typeof path_move, number, number];
|
|
13
|
+
type path_command_line = [typeof path_line, number, number];
|
|
14
|
+
type path_command_cubic = [typeof path_cubic, number, number, number, number, number, number];
|
|
15
|
+
type path_command_close = [typeof path_close];
|
|
16
|
+
type path_command = path_command_move | path_command_line | path_command_cubic | path_command_close;
|
|
17
|
+
type path = {
|
|
18
|
+
readonly commands: readonly path_command[];
|
|
19
|
+
readonly bounds: rectangle;
|
|
20
|
+
};
|
|
21
|
+
type draw_style = {
|
|
22
|
+
readonly fill: color | null;
|
|
23
|
+
readonly stroke: color | null;
|
|
24
|
+
readonly stroke_width: number;
|
|
25
|
+
readonly line_cap: number;
|
|
26
|
+
readonly line_join: number;
|
|
27
|
+
readonly miter_limit: number;
|
|
28
|
+
readonly alpha: number;
|
|
29
|
+
};
|
|
30
|
+
type image_source = HTMLImageElement | HTMLCanvasElement | ImageBitmap;
|
|
31
|
+
type renderer = {
|
|
32
|
+
readonly kind: number;
|
|
33
|
+
readonly width: number;
|
|
34
|
+
readonly height: number;
|
|
35
|
+
readonly pixel_ratio: number;
|
|
36
|
+
begin_frame: () => void;
|
|
37
|
+
end_frame: () => void;
|
|
38
|
+
set_transform: (t: transform) => void;
|
|
39
|
+
reset_transform: () => void;
|
|
40
|
+
save: () => void;
|
|
41
|
+
restore: () => void;
|
|
42
|
+
draw_path: (p: path, s: draw_style) => void;
|
|
43
|
+
draw_rectangle: (r: rectangle, s: draw_style) => void;
|
|
44
|
+
draw_circle: (c: circle, s: draw_style) => void;
|
|
45
|
+
draw_line: (a: vector2, b: vector2, s: draw_style) => void;
|
|
46
|
+
draw_polyline: (points: readonly vector2[], s: draw_style) => void;
|
|
47
|
+
draw_image: (image: image_source, r: rectangle, opacity: number, version?: number) => void;
|
|
48
|
+
clip_rectangle: (r: rectangle) => void;
|
|
49
|
+
clear: (c: color) => void;
|
|
50
|
+
resize: (width: number, height: number, pixel_ratio: number) => void;
|
|
51
|
+
dispose: () => void;
|
|
52
|
+
};
|
|
53
|
+
type image_asset = {
|
|
54
|
+
id: string;
|
|
55
|
+
src: string;
|
|
56
|
+
width: number;
|
|
57
|
+
height: number;
|
|
58
|
+
};
|
|
59
|
+
type spline_segment = {
|
|
60
|
+
a: number;
|
|
61
|
+
b: number;
|
|
62
|
+
c: number;
|
|
63
|
+
d: number;
|
|
64
|
+
x_start: number;
|
|
65
|
+
x_end: number;
|
|
66
|
+
};
|
|
67
|
+
type spline = {
|
|
68
|
+
segments_x: spline_segment[];
|
|
69
|
+
segments_y: spline_segment[];
|
|
70
|
+
point_count: number;
|
|
71
|
+
};
|
|
72
|
+
declare const element_type_stroke = 0;
|
|
73
|
+
declare const element_type_shape = 1;
|
|
74
|
+
declare const element_type_image = 2;
|
|
75
|
+
declare const element_type_text = 3;
|
|
76
|
+
type stroke_element = {
|
|
77
|
+
type: typeof element_type_stroke;
|
|
78
|
+
id: string;
|
|
79
|
+
bounds: rectangle;
|
|
80
|
+
z_index: number;
|
|
81
|
+
layer_id: string;
|
|
82
|
+
group_id: string | null;
|
|
83
|
+
points: vector2[];
|
|
84
|
+
pressure: number[] | null;
|
|
85
|
+
color: color;
|
|
86
|
+
width: number;
|
|
87
|
+
simplified_points: vector2[] | null;
|
|
88
|
+
spline: spline | null;
|
|
89
|
+
};
|
|
90
|
+
type shape_element = {
|
|
91
|
+
type: typeof element_type_shape;
|
|
92
|
+
id: string;
|
|
93
|
+
bounds: rectangle;
|
|
94
|
+
z_index: number;
|
|
95
|
+
layer_id: string;
|
|
96
|
+
group_id: string | null;
|
|
97
|
+
shape_type: number;
|
|
98
|
+
fill_color: color | null;
|
|
99
|
+
stroke_color: color | null;
|
|
100
|
+
stroke_width: number;
|
|
101
|
+
start_point: vector2 | null;
|
|
102
|
+
end_point: vector2 | null;
|
|
103
|
+
};
|
|
104
|
+
type image_element = {
|
|
105
|
+
type: typeof element_type_image;
|
|
106
|
+
id: string;
|
|
107
|
+
bounds: rectangle;
|
|
108
|
+
z_index: number;
|
|
109
|
+
layer_id: string;
|
|
110
|
+
group_id: string | null;
|
|
111
|
+
asset_id: string | null;
|
|
112
|
+
src: string;
|
|
113
|
+
original_width: number;
|
|
114
|
+
original_height: number;
|
|
115
|
+
opacity: number;
|
|
116
|
+
loaded: boolean;
|
|
117
|
+
load_error: boolean;
|
|
118
|
+
bitmap: ImageBitmap | HTMLImageElement | null;
|
|
119
|
+
};
|
|
120
|
+
type text_element = {
|
|
121
|
+
type: typeof element_type_text;
|
|
122
|
+
id: string;
|
|
123
|
+
bounds: rectangle;
|
|
124
|
+
z_index: number;
|
|
125
|
+
layer_id: string;
|
|
126
|
+
group_id: string | null;
|
|
127
|
+
content: string;
|
|
128
|
+
font_family: string;
|
|
129
|
+
font_size: number;
|
|
130
|
+
color: color;
|
|
131
|
+
align: number;
|
|
132
|
+
};
|
|
133
|
+
type element = stroke_element | shape_element | image_element | text_element;
|
|
134
|
+
type layer = {
|
|
135
|
+
id: string;
|
|
136
|
+
name: string;
|
|
137
|
+
visible: boolean;
|
|
138
|
+
locked: boolean;
|
|
139
|
+
opacity: number;
|
|
140
|
+
element_ids: string[];
|
|
141
|
+
};
|
|
142
|
+
type document = {
|
|
143
|
+
id: string;
|
|
144
|
+
elements: Map<string, element>;
|
|
145
|
+
layers: layer[];
|
|
146
|
+
active_layer_id: string;
|
|
147
|
+
assets: Map<string, image_asset>;
|
|
148
|
+
bounds: rectangle;
|
|
149
|
+
element_count: number;
|
|
150
|
+
};
|
|
151
|
+
type engine_options = {
|
|
152
|
+
readonly prefer_webgl?: boolean;
|
|
153
|
+
readonly path_cache_size?: number;
|
|
154
|
+
readonly document?: document;
|
|
155
|
+
readonly camera?: camera;
|
|
156
|
+
readonly background?: color;
|
|
157
|
+
readonly background_image?: image_source;
|
|
158
|
+
};
|
|
159
|
+
type engine = {
|
|
160
|
+
renderer: renderer;
|
|
161
|
+
document: document;
|
|
162
|
+
camera: camera;
|
|
163
|
+
viewport: viewport;
|
|
164
|
+
background: color;
|
|
165
|
+
background_image: image_source | null;
|
|
166
|
+
};
|
|
167
|
+
type overlay_draw = (drawer: renderer) => void;
|
|
168
|
+
declare function create_engine(canvas: HTMLCanvasElement, options?: engine_options): engine | null;
|
|
169
|
+
declare function dispose_engine(state: engine): void;
|
|
170
|
+
declare function set_document_engine(state: engine, doc: document): engine;
|
|
171
|
+
declare function set_background_engine(state: engine, value: color): engine;
|
|
172
|
+
declare function set_background_image_engine(state: engine, value: image_source | null): engine;
|
|
173
|
+
declare function set_camera_engine(state: engine, x: number, y: number, zoom: number, rotation?: number): engine;
|
|
174
|
+
declare function pan_engine(state: engine, dx: number, dy: number): engine;
|
|
175
|
+
declare function zoom_engine(state: engine, factor: number): engine;
|
|
176
|
+
declare function zoom_at_engine(state: engine, factor: number, screen_x: number, screen_y: number): engine;
|
|
177
|
+
declare function resize_engine(state: engine, width: number, height: number, pixel_ratio?: number): engine;
|
|
178
|
+
declare function world_to_screen_engine(state: engine, world: vector2, out: vector2): vector2;
|
|
179
|
+
declare function screen_to_world_engine(state: engine, screen: vector2, out: vector2): vector2;
|
|
180
|
+
declare function visible_bounds_world_engine(state: engine): rectangle;
|
|
181
|
+
declare function render_engine(state: engine): void;
|
|
182
|
+
declare function render_engine_with_overlay(state: engine, overlay: overlay_draw | null): void;
|
|
183
|
+
export { zoom_engine, zoom_at_engine, world_to_screen_engine, visible_bounds_world_engine, set_document_engine, set_camera_engine, set_background_image_engine, set_background_engine, screen_to_world_engine, resize_engine, render_engine_with_overlay, render_engine, pan_engine, overlay_draw, engine_options, engine, dispose_engine, create_engine };
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
type camera = [number, number, number, number];
|
|
2
|
+
type vector2 = [number, number];
|
|
3
|
+
type rectangle = [number, number, number, number];
|
|
4
|
+
type transform = [number, number, number, number, number, number];
|
|
5
|
+
type viewport = [number, number, number];
|
|
6
|
+
type color = [number, number, number, number];
|
|
7
|
+
type circle = [number, number, number];
|
|
8
|
+
declare const path_move = 0;
|
|
9
|
+
declare const path_line = 1;
|
|
10
|
+
declare const path_cubic = 2;
|
|
11
|
+
declare const path_close = 3;
|
|
12
|
+
type path_command_move = [typeof path_move, number, number];
|
|
13
|
+
type path_command_line = [typeof path_line, number, number];
|
|
14
|
+
type path_command_cubic = [typeof path_cubic, number, number, number, number, number, number];
|
|
15
|
+
type path_command_close = [typeof path_close];
|
|
16
|
+
type path_command = path_command_move | path_command_line | path_command_cubic | path_command_close;
|
|
17
|
+
type path = {
|
|
18
|
+
readonly commands: readonly path_command[];
|
|
19
|
+
readonly bounds: rectangle;
|
|
20
|
+
};
|
|
21
|
+
type draw_style = {
|
|
22
|
+
readonly fill: color | null;
|
|
23
|
+
readonly stroke: color | null;
|
|
24
|
+
readonly stroke_width: number;
|
|
25
|
+
readonly line_cap: number;
|
|
26
|
+
readonly line_join: number;
|
|
27
|
+
readonly miter_limit: number;
|
|
28
|
+
readonly alpha: number;
|
|
29
|
+
};
|
|
30
|
+
type image_source = HTMLImageElement | HTMLCanvasElement | ImageBitmap;
|
|
31
|
+
type renderer = {
|
|
32
|
+
readonly kind: number;
|
|
33
|
+
readonly width: number;
|
|
34
|
+
readonly height: number;
|
|
35
|
+
readonly pixel_ratio: number;
|
|
36
|
+
begin_frame: () => void;
|
|
37
|
+
end_frame: () => void;
|
|
38
|
+
set_transform: (t: transform) => void;
|
|
39
|
+
reset_transform: () => void;
|
|
40
|
+
save: () => void;
|
|
41
|
+
restore: () => void;
|
|
42
|
+
draw_path: (p: path, s: draw_style) => void;
|
|
43
|
+
draw_rectangle: (r: rectangle, s: draw_style) => void;
|
|
44
|
+
draw_circle: (c: circle, s: draw_style) => void;
|
|
45
|
+
draw_line: (a: vector2, b: vector2, s: draw_style) => void;
|
|
46
|
+
draw_polyline: (points: readonly vector2[], s: draw_style) => void;
|
|
47
|
+
draw_image: (image: image_source, r: rectangle, opacity: number, version?: number) => void;
|
|
48
|
+
clip_rectangle: (r: rectangle) => void;
|
|
49
|
+
clear: (c: color) => void;
|
|
50
|
+
resize: (width: number, height: number, pixel_ratio: number) => void;
|
|
51
|
+
dispose: () => void;
|
|
52
|
+
};
|
|
53
|
+
type image_asset = {
|
|
54
|
+
id: string;
|
|
55
|
+
src: string;
|
|
56
|
+
width: number;
|
|
57
|
+
height: number;
|
|
58
|
+
};
|
|
59
|
+
type spline_segment = {
|
|
60
|
+
a: number;
|
|
61
|
+
b: number;
|
|
62
|
+
c: number;
|
|
63
|
+
d: number;
|
|
64
|
+
x_start: number;
|
|
65
|
+
x_end: number;
|
|
66
|
+
};
|
|
67
|
+
type spline = {
|
|
68
|
+
segments_x: spline_segment[];
|
|
69
|
+
segments_y: spline_segment[];
|
|
70
|
+
point_count: number;
|
|
71
|
+
};
|
|
72
|
+
declare const element_type_stroke = 0;
|
|
73
|
+
declare const element_type_shape = 1;
|
|
74
|
+
declare const element_type_image = 2;
|
|
75
|
+
declare const element_type_text = 3;
|
|
76
|
+
type stroke_element = {
|
|
77
|
+
type: typeof element_type_stroke;
|
|
78
|
+
id: string;
|
|
79
|
+
bounds: rectangle;
|
|
80
|
+
z_index: number;
|
|
81
|
+
layer_id: string;
|
|
82
|
+
group_id: string | null;
|
|
83
|
+
points: vector2[];
|
|
84
|
+
pressure: number[] | null;
|
|
85
|
+
color: color;
|
|
86
|
+
width: number;
|
|
87
|
+
simplified_points: vector2[] | null;
|
|
88
|
+
spline: spline | null;
|
|
89
|
+
};
|
|
90
|
+
type shape_element = {
|
|
91
|
+
type: typeof element_type_shape;
|
|
92
|
+
id: string;
|
|
93
|
+
bounds: rectangle;
|
|
94
|
+
z_index: number;
|
|
95
|
+
layer_id: string;
|
|
96
|
+
group_id: string | null;
|
|
97
|
+
shape_type: number;
|
|
98
|
+
fill_color: color | null;
|
|
99
|
+
stroke_color: color | null;
|
|
100
|
+
stroke_width: number;
|
|
101
|
+
start_point: vector2 | null;
|
|
102
|
+
end_point: vector2 | null;
|
|
103
|
+
};
|
|
104
|
+
type image_element = {
|
|
105
|
+
type: typeof element_type_image;
|
|
106
|
+
id: string;
|
|
107
|
+
bounds: rectangle;
|
|
108
|
+
z_index: number;
|
|
109
|
+
layer_id: string;
|
|
110
|
+
group_id: string | null;
|
|
111
|
+
asset_id: string | null;
|
|
112
|
+
src: string;
|
|
113
|
+
original_width: number;
|
|
114
|
+
original_height: number;
|
|
115
|
+
opacity: number;
|
|
116
|
+
loaded: boolean;
|
|
117
|
+
load_error: boolean;
|
|
118
|
+
bitmap: ImageBitmap | HTMLImageElement | null;
|
|
119
|
+
};
|
|
120
|
+
type text_element = {
|
|
121
|
+
type: typeof element_type_text;
|
|
122
|
+
id: string;
|
|
123
|
+
bounds: rectangle;
|
|
124
|
+
z_index: number;
|
|
125
|
+
layer_id: string;
|
|
126
|
+
group_id: string | null;
|
|
127
|
+
content: string;
|
|
128
|
+
font_family: string;
|
|
129
|
+
font_size: number;
|
|
130
|
+
color: color;
|
|
131
|
+
align: number;
|
|
132
|
+
};
|
|
133
|
+
type element = stroke_element | shape_element | image_element | text_element;
|
|
134
|
+
type layer = {
|
|
135
|
+
id: string;
|
|
136
|
+
name: string;
|
|
137
|
+
visible: boolean;
|
|
138
|
+
locked: boolean;
|
|
139
|
+
opacity: number;
|
|
140
|
+
element_ids: string[];
|
|
141
|
+
};
|
|
142
|
+
type document = {
|
|
143
|
+
id: string;
|
|
144
|
+
elements: Map<string, element>;
|
|
145
|
+
layers: layer[];
|
|
146
|
+
active_layer_id: string;
|
|
147
|
+
assets: Map<string, image_asset>;
|
|
148
|
+
bounds: rectangle;
|
|
149
|
+
element_count: number;
|
|
150
|
+
};
|
|
151
|
+
type engine_options = {
|
|
152
|
+
readonly prefer_webgl?: boolean;
|
|
153
|
+
readonly path_cache_size?: number;
|
|
154
|
+
readonly document?: document;
|
|
155
|
+
readonly camera?: camera;
|
|
156
|
+
readonly background?: color;
|
|
157
|
+
readonly background_image?: image_source;
|
|
158
|
+
};
|
|
159
|
+
type engine = {
|
|
160
|
+
renderer: renderer;
|
|
161
|
+
document: document;
|
|
162
|
+
camera: camera;
|
|
163
|
+
viewport: viewport;
|
|
164
|
+
background: color;
|
|
165
|
+
background_image: image_source | null;
|
|
166
|
+
};
|
|
167
|
+
type overlay_draw = (drawer: renderer) => void;
|
|
168
|
+
declare function create_engine(canvas: HTMLCanvasElement, options?: engine_options): engine | null;
|
|
169
|
+
declare function dispose_engine(state: engine): void;
|
|
170
|
+
declare function set_document_engine(state: engine, doc: document): engine;
|
|
171
|
+
declare function set_background_engine(state: engine, value: color): engine;
|
|
172
|
+
declare function set_background_image_engine(state: engine, value: image_source | null): engine;
|
|
173
|
+
declare function set_camera_engine(state: engine, x: number, y: number, zoom: number, rotation?: number): engine;
|
|
174
|
+
declare function pan_engine(state: engine, dx: number, dy: number): engine;
|
|
175
|
+
declare function zoom_engine(state: engine, factor: number): engine;
|
|
176
|
+
declare function zoom_at_engine(state: engine, factor: number, screen_x: number, screen_y: number): engine;
|
|
177
|
+
declare function resize_engine(state: engine, width: number, height: number, pixel_ratio?: number): engine;
|
|
178
|
+
declare function world_to_screen_engine(state: engine, world: vector2, out: vector2): vector2;
|
|
179
|
+
declare function screen_to_world_engine(state: engine, screen: vector2, out: vector2): vector2;
|
|
180
|
+
declare function visible_bounds_world_engine(state: engine): rectangle;
|
|
181
|
+
declare function render_engine(state: engine): void;
|
|
182
|
+
declare function render_engine_with_overlay(state: engine, overlay: overlay_draw | null): void;
|
|
183
|
+
export { zoom_engine, zoom_at_engine, world_to_screen_engine, visible_bounds_world_engine, set_document_engine, set_camera_engine, set_background_image_engine, set_background_engine, screen_to_world_engine, resize_engine, render_engine_with_overlay, render_engine, pan_engine, overlay_draw, engine_options, engine, dispose_engine, create_engine };
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import {
|
|
2
|
+
default_background,
|
|
3
|
+
pan_engine,
|
|
4
|
+
render_engine,
|
|
5
|
+
render_engine_with_overlay,
|
|
6
|
+
resize_engine,
|
|
7
|
+
sanitize_number_engine,
|
|
8
|
+
sanitize_zoom_engine,
|
|
9
|
+
screen_to_world_engine,
|
|
10
|
+
set_camera_engine,
|
|
11
|
+
visible_bounds_world_engine,
|
|
12
|
+
world_to_screen_engine,
|
|
13
|
+
zoom_at_engine,
|
|
14
|
+
zoom_engine
|
|
15
|
+
} from "../shared/chunk-d6gxvapt.js";
|
|
16
|
+
import {
|
|
17
|
+
create_camera
|
|
18
|
+
} from "../shared/chunk-hewznwbd.js";
|
|
19
|
+
import {
|
|
20
|
+
add_layer_document,
|
|
21
|
+
create_document,
|
|
22
|
+
create_layer
|
|
23
|
+
} from "../shared/chunk-jdvrd5tv.js";
|
|
24
|
+
import {
|
|
25
|
+
create_renderer,
|
|
26
|
+
create_renderer_config
|
|
27
|
+
} from "../shared/chunk-s3qdcmcq.js";
|
|
28
|
+
import"../shared/chunk-8ynnz57m.js";
|
|
29
|
+
import"../shared/chunk-rvag1j46.js";
|
|
30
|
+
import"../shared/chunk-35pkr0zs.js";
|
|
31
|
+
import"../shared/chunk-wa3772hp.js";
|
|
32
|
+
import"../shared/chunk-v53jprrn.js";
|
|
33
|
+
|
|
34
|
+
// engine/create.ts
|
|
35
|
+
function create_engine(canvas, options = {}) {
|
|
36
|
+
const defaults = create_renderer_config();
|
|
37
|
+
const renderer_config = {
|
|
38
|
+
prefer_webgl: options.prefer_webgl ?? defaults.prefer_webgl,
|
|
39
|
+
path_cache_size: options.path_cache_size ?? defaults.path_cache_size
|
|
40
|
+
};
|
|
41
|
+
const render_backend = create_renderer(canvas, renderer_config);
|
|
42
|
+
if (render_backend === null) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
const initial_width = Math.max(1, canvas.clientWidth || canvas.width || 1);
|
|
46
|
+
const initial_height = Math.max(1, canvas.clientHeight || canvas.height || 1);
|
|
47
|
+
const initial_pixel_ratio = Math.max(1, globalThis.devicePixelRatio || 1);
|
|
48
|
+
const initial_viewport = [initial_width, initial_height, initial_pixel_ratio];
|
|
49
|
+
render_backend.resize(initial_width, initial_height, initial_pixel_ratio);
|
|
50
|
+
let doc = options.document;
|
|
51
|
+
if (doc === undefined) {
|
|
52
|
+
const created = create_document("doc_0", "layer_0");
|
|
53
|
+
doc = add_layer_document(created, create_layer("layer_0", "Layer 1"));
|
|
54
|
+
}
|
|
55
|
+
const initial_camera = create_camera(0, 0, 1, 0);
|
|
56
|
+
if (options.camera !== undefined) {
|
|
57
|
+
initial_camera[0] = sanitize_number_engine(options.camera[0], 0);
|
|
58
|
+
initial_camera[1] = sanitize_number_engine(options.camera[1], 0);
|
|
59
|
+
initial_camera[2] = sanitize_zoom_engine(options.camera[2], 1);
|
|
60
|
+
initial_camera[3] = sanitize_number_engine(options.camera[3], 0);
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
renderer: render_backend,
|
|
64
|
+
document: doc,
|
|
65
|
+
camera: initial_camera,
|
|
66
|
+
viewport: [initial_viewport[0], initial_viewport[1], initial_viewport[2]],
|
|
67
|
+
background: options.background ? [options.background[0], options.background[1], options.background[2], options.background[3]] : [
|
|
68
|
+
default_background[0],
|
|
69
|
+
default_background[1],
|
|
70
|
+
default_background[2],
|
|
71
|
+
default_background[3]
|
|
72
|
+
],
|
|
73
|
+
background_image: options.background_image ?? null
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function dispose_engine(state) {
|
|
77
|
+
state.renderer.dispose();
|
|
78
|
+
}
|
|
79
|
+
function set_document_engine(state, doc) {
|
|
80
|
+
state.document = doc;
|
|
81
|
+
return state;
|
|
82
|
+
}
|
|
83
|
+
function set_background_engine(state, value) {
|
|
84
|
+
state.background[0] = value[0];
|
|
85
|
+
state.background[1] = value[1];
|
|
86
|
+
state.background[2] = value[2];
|
|
87
|
+
state.background[3] = value[3];
|
|
88
|
+
return state;
|
|
89
|
+
}
|
|
90
|
+
function set_background_image_engine(state, value) {
|
|
91
|
+
state.background_image = value;
|
|
92
|
+
return state;
|
|
93
|
+
}
|
|
94
|
+
export {
|
|
95
|
+
zoom_engine,
|
|
96
|
+
zoom_at_engine,
|
|
97
|
+
world_to_screen_engine,
|
|
98
|
+
visible_bounds_world_engine,
|
|
99
|
+
set_document_engine,
|
|
100
|
+
set_camera_engine,
|
|
101
|
+
set_background_image_engine,
|
|
102
|
+
set_background_engine,
|
|
103
|
+
screen_to_world_engine,
|
|
104
|
+
resize_engine,
|
|
105
|
+
render_engine_with_overlay,
|
|
106
|
+
render_engine,
|
|
107
|
+
pan_engine,
|
|
108
|
+
dispose_engine,
|
|
109
|
+
create_engine
|
|
110
|
+
};
|
|
111
|
+
export { create_engine, dispose_engine, set_document_engine, set_background_engine, set_background_image_engine };
|