@twick/core 0.14.21 → 0.15.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/index.cjs +6465 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3919 -0
- package/dist/index.d.ts +3919 -0
- package/dist/index.js +6225 -0
- package/dist/index.js.map +1 -0
- package/package.json +28 -18
- package/tsconfig.project.json +1 -0
- package/lib/app/Logger.d.ts +0 -105
- package/lib/app/Logger.d.ts.map +0 -1
- package/lib/app/Logger.js +0 -77
- package/lib/app/PlaybackManager.d.ts +0 -55
- package/lib/app/PlaybackManager.d.ts.map +0 -1
- package/lib/app/PlaybackManager.js +0 -179
- package/lib/app/PlaybackStatus.d.ts +0 -30
- package/lib/app/PlaybackStatus.d.ts.map +0 -1
- package/lib/app/PlaybackStatus.js +0 -46
- package/lib/app/Player.d.ts +0 -130
- package/lib/app/Player.d.ts.map +0 -1
- package/lib/app/Player.js +0 -375
- package/lib/app/Project.d.ts +0 -145
- package/lib/app/Project.d.ts.map +0 -1
- package/lib/app/Project.js +0 -10
- package/lib/app/Renderer.d.ts +0 -90
- package/lib/app/Renderer.d.ts.map +0 -1
- package/lib/app/Renderer.js +0 -318
- package/lib/app/SharedWebGLContext.d.ts +0 -24
- package/lib/app/SharedWebGLContext.d.ts.map +0 -1
- package/lib/app/SharedWebGLContext.js +0 -200
- package/lib/app/Stage.d.ts +0 -30
- package/lib/app/Stage.d.ts.map +0 -1
- package/lib/app/Stage.js +0 -75
- package/lib/app/TimeEstimator.d.ts +0 -53
- package/lib/app/TimeEstimator.d.ts.map +0 -1
- package/lib/app/TimeEstimator.js +0 -70
- package/lib/app/index.d.ts +0 -16
- package/lib/app/index.d.ts.map +0 -1
- package/lib/app/index.js +0 -16
- package/lib/app/makeProject.d.ts +0 -15
- package/lib/app/makeProject.d.ts.map +0 -1
- package/lib/app/makeProject.js +0 -72
- package/lib/app/project-settings.d.ts +0 -8
- package/lib/app/project-settings.d.ts.map +0 -1
- package/lib/app/project-settings.js +0 -13
- package/lib/decorators/decorate.d.ts +0 -2
- package/lib/decorators/decorate.d.ts.map +0 -1
- package/lib/decorators/decorate.js +0 -10
- package/lib/decorators/deprecated.d.ts +0 -5
- package/lib/decorators/deprecated.d.ts.map +0 -1
- package/lib/decorators/deprecated.js +0 -23
- package/lib/decorators/index.d.ts +0 -9
- package/lib/decorators/index.d.ts.map +0 -1
- package/lib/decorators/index.js +0 -9
- package/lib/decorators/lazy.d.ts +0 -14
- package/lib/decorators/lazy.d.ts.map +0 -1
- package/lib/decorators/lazy.js +0 -27
- package/lib/decorators/threadable.d.ts +0 -2
- package/lib/decorators/threadable.d.ts.map +0 -1
- package/lib/decorators/threadable.js +0 -9
- package/lib/events/AsyncEventDispatcher.d.ts +0 -45
- package/lib/events/AsyncEventDispatcher.d.ts.map +0 -1
- package/lib/events/AsyncEventDispatcher.js +0 -33
- package/lib/events/EventDispatcher.d.ts +0 -38
- package/lib/events/EventDispatcher.d.ts.map +0 -1
- package/lib/events/EventDispatcher.js +0 -29
- package/lib/events/EventDispatcherBase.d.ts +0 -55
- package/lib/events/EventDispatcherBase.d.ts.map +0 -1
- package/lib/events/EventDispatcherBase.js +0 -68
- package/lib/events/FlagDispatcher.d.ts +0 -54
- package/lib/events/FlagDispatcher.d.ts.map +0 -1
- package/lib/events/FlagDispatcher.js +0 -63
- package/lib/events/ValueDispatcher.d.ts +0 -81
- package/lib/events/ValueDispatcher.d.ts.map +0 -1
- package/lib/events/ValueDispatcher.js +0 -97
- package/lib/events/index.d.ts +0 -11
- package/lib/events/index.d.ts.map +0 -1
- package/lib/events/index.js +0 -11
- package/lib/exporter/Exporter.d.ts +0 -101
- package/lib/exporter/Exporter.d.ts.map +0 -1
- package/lib/exporter/Exporter.js +0 -2
- package/lib/exporter/FFmpegExporter.d.ts +0 -50
- package/lib/exporter/FFmpegExporter.d.ts.map +0 -1
- package/lib/exporter/FFmpegExporter.js +0 -140
- package/lib/exporter/ImageExporter.d.ts +0 -34
- package/lib/exporter/ImageExporter.d.ts.map +0 -1
- package/lib/exporter/ImageExporter.js +0 -80
- package/lib/exporter/WasmExporter.d.ts +0 -19
- package/lib/exporter/WasmExporter.d.ts.map +0 -1
- package/lib/exporter/WasmExporter.js +0 -78
- package/lib/exporter/download-videos.d.ts +0 -3
- package/lib/exporter/download-videos.d.ts.map +0 -1
- package/lib/exporter/download-videos.js +0 -45
- package/lib/exporter/index.d.ts +0 -5
- package/lib/exporter/index.d.ts.map +0 -1
- package/lib/exporter/index.js +0 -5
- package/lib/flow/all.d.ts +0 -18
- package/lib/flow/all.d.ts.map +0 -1
- package/lib/flow/all.js +0 -25
- package/lib/flow/any.d.ts +0 -18
- package/lib/flow/any.d.ts.map +0 -1
- package/lib/flow/any.js +0 -25
- package/lib/flow/chain.d.ts +0 -36
- package/lib/flow/chain.d.ts.map +0 -1
- package/lib/flow/chain.js +0 -46
- package/lib/flow/delay.d.ts +0 -29
- package/lib/flow/delay.d.ts.map +0 -1
- package/lib/flow/delay.js +0 -39
- package/lib/flow/every.d.ts +0 -41
- package/lib/flow/every.d.ts.map +0 -1
- package/lib/flow/every.js +0 -61
- package/lib/flow/index.d.ts +0 -17
- package/lib/flow/index.d.ts.map +0 -1
- package/lib/flow/index.js +0 -17
- package/lib/flow/join.d.ts +0 -35
- package/lib/flow/join.d.ts.map +0 -1
- package/lib/flow/join.js +0 -33
- package/lib/flow/loop.d.ts +0 -58
- package/lib/flow/loop.d.ts.map +0 -1
- package/lib/flow/loop.js +0 -51
- package/lib/flow/loopFor.d.ts +0 -25
- package/lib/flow/loopFor.d.ts.map +0 -1
- package/lib/flow/loopFor.js +0 -42
- package/lib/flow/names.d.ts +0 -3
- package/lib/flow/names.d.ts.map +0 -1
- package/lib/flow/names.js +0 -11
- package/lib/flow/run.d.ts +0 -45
- package/lib/flow/run.d.ts.map +0 -1
- package/lib/flow/run.js +0 -14
- package/lib/flow/scheduling.d.ts +0 -18
- package/lib/flow/scheduling.d.ts.map +0 -1
- package/lib/flow/scheduling.js +0 -33
- package/lib/flow/sequence.d.ts +0 -22
- package/lib/flow/sequence.d.ts.map +0 -1
- package/lib/flow/sequence.js +0 -31
- package/lib/index.d.ts +0 -16
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -16
- package/lib/media/index.d.ts +0 -7
- package/lib/media/index.d.ts.map +0 -1
- package/lib/media/index.js +0 -7
- package/lib/media/loadImage.d.ts +0 -8
- package/lib/media/loadImage.d.ts.map +0 -1
- package/lib/media/loadImage.js +0 -29
- package/lib/plugin/DefaultPlugin.d.ts +0 -10
- package/lib/plugin/DefaultPlugin.d.ts.map +0 -1
- package/lib/plugin/DefaultPlugin.js +0 -17
- package/lib/plugin/Plugin.d.ts +0 -53
- package/lib/plugin/Plugin.d.ts.map +0 -1
- package/lib/plugin/Plugin.js +0 -2
- package/lib/plugin/index.d.ts +0 -3
- package/lib/plugin/index.d.ts.map +0 -1
- package/lib/plugin/index.js +0 -3
- package/lib/plugin/makePlugin.d.ts +0 -15
- package/lib/plugin/makePlugin.d.ts.map +0 -1
- package/lib/plugin/makePlugin.js +0 -16
- package/lib/scenes/GeneratorScene.d.ts +0 -95
- package/lib/scenes/GeneratorScene.d.ts.map +0 -1
- package/lib/scenes/GeneratorScene.js +0 -273
- package/lib/scenes/Inspectable.d.ts +0 -71
- package/lib/scenes/Inspectable.d.ts.map +0 -1
- package/lib/scenes/Inspectable.js +0 -4
- package/lib/scenes/LifecycleEvents.d.ts +0 -18
- package/lib/scenes/LifecycleEvents.d.ts.map +0 -1
- package/lib/scenes/LifecycleEvents.js +0 -45
- package/lib/scenes/Random.d.ts +0 -66
- package/lib/scenes/Random.d.ts.map +0 -1
- package/lib/scenes/Random.js +0 -101
- package/lib/scenes/Scene.d.ts +0 -298
- package/lib/scenes/Scene.d.ts.map +0 -1
- package/lib/scenes/Scene.js +0 -25
- package/lib/scenes/SceneState.d.ts +0 -34
- package/lib/scenes/SceneState.d.ts.map +0 -1
- package/lib/scenes/SceneState.js +0 -35
- package/lib/scenes/Shaders.d.ts +0 -63
- package/lib/scenes/Shaders.d.ts.map +0 -1
- package/lib/scenes/Shaders.js +0 -158
- package/lib/scenes/Slides.d.ts +0 -33
- package/lib/scenes/Slides.d.ts.map +0 -1
- package/lib/scenes/Slides.js +0 -115
- package/lib/scenes/Threadable.d.ts +0 -19
- package/lib/scenes/Threadable.d.ts.map +0 -1
- package/lib/scenes/Threadable.js +0 -4
- package/lib/scenes/Variables.d.ts +0 -24
- package/lib/scenes/Variables.d.ts.map +0 -1
- package/lib/scenes/Variables.js +0 -39
- package/lib/scenes/index.d.ts +0 -16
- package/lib/scenes/index.d.ts.map +0 -1
- package/lib/scenes/index.js +0 -16
- package/lib/signals/CompoundSignalContext.d.ts +0 -21
- package/lib/signals/CompoundSignalContext.d.ts.map +0 -1
- package/lib/signals/CompoundSignalContext.js +0 -73
- package/lib/signals/ComputedContext.d.ts +0 -14
- package/lib/signals/ComputedContext.d.ts.map +0 -1
- package/lib/signals/ComputedContext.js +0 -36
- package/lib/signals/DependencyContext.d.ts +0 -32
- package/lib/signals/DependencyContext.d.ts.map +0 -1
- package/lib/signals/DependencyContext.js +0 -87
- package/lib/signals/SignalContext.d.ts +0 -120
- package/lib/signals/SignalContext.d.ts.map +0 -1
- package/lib/signals/SignalContext.js +0 -245
- package/lib/signals/createComputed.d.ts +0 -3
- package/lib/signals/createComputed.d.ts.map +0 -1
- package/lib/signals/createComputed.js +0 -5
- package/lib/signals/createComputedAsync.d.ts +0 -4
- package/lib/signals/createComputedAsync.d.ts.map +0 -1
- package/lib/signals/createComputedAsync.js +0 -15
- package/lib/signals/createSignal.d.ts +0 -5
- package/lib/signals/createSignal.d.ts.map +0 -1
- package/lib/signals/createSignal.js +0 -6
- package/lib/signals/index.d.ts +0 -16
- package/lib/signals/index.d.ts.map +0 -1
- package/lib/signals/index.js +0 -16
- package/lib/signals/symbols.d.ts +0 -2
- package/lib/signals/symbols.d.ts.map +0 -1
- package/lib/signals/symbols.js +0 -2
- package/lib/signals/types.d.ts +0 -51
- package/lib/signals/types.d.ts.map +0 -1
- package/lib/signals/types.js +0 -2
- package/lib/signals/utils.d.ts +0 -5
- package/lib/signals/utils.d.ts.map +0 -1
- package/lib/signals/utils.js +0 -10
- package/lib/threading/Thread.d.ts +0 -77
- package/lib/threading/Thread.d.ts.map +0 -1
- package/lib/threading/Thread.js +0 -169
- package/lib/threading/ThreadGenerator.d.ts +0 -39
- package/lib/threading/ThreadGenerator.d.ts.map +0 -1
- package/lib/threading/ThreadGenerator.js +0 -17
- package/lib/threading/cancel.d.ts +0 -17
- package/lib/threading/cancel.d.ts.map +0 -1
- package/lib/threading/cancel.js +0 -26
- package/lib/threading/index.d.ts +0 -11
- package/lib/threading/index.d.ts.map +0 -1
- package/lib/threading/index.js +0 -11
- package/lib/threading/spawn.d.ts +0 -28
- package/lib/threading/spawn.d.ts.map +0 -1
- package/lib/threading/spawn.js +0 -30
- package/lib/threading/threads.d.ts +0 -46
- package/lib/threading/threads.d.ts.map +0 -1
- package/lib/threading/threads.js +0 -89
- package/lib/transitions/fadeTransition.d.ts +0 -8
- package/lib/transitions/fadeTransition.d.ts.map +0 -1
- package/lib/transitions/fadeTransition.js +0 -16
- package/lib/transitions/index.d.ts +0 -11
- package/lib/transitions/index.d.ts.map +0 -1
- package/lib/transitions/index.js +0 -11
- package/lib/transitions/slideTransition.d.ts +0 -18
- package/lib/transitions/slideTransition.d.ts.map +0 -1
- package/lib/transitions/slideTransition.js +0 -14
- package/lib/transitions/useTransition.d.ts +0 -10
- package/lib/transitions/useTransition.d.ts.map +0 -1
- package/lib/transitions/useTransition.js +0 -27
- package/lib/transitions/zoomInTransition.d.ts +0 -10
- package/lib/transitions/zoomInTransition.d.ts.map +0 -1
- package/lib/transitions/zoomInTransition.js +0 -33
- package/lib/transitions/zoomOutTransition.d.ts +0 -10
- package/lib/transitions/zoomOutTransition.d.ts.map +0 -1
- package/lib/transitions/zoomOutTransition.js +0 -33
- package/lib/tsconfig.build.tsbuildinfo +0 -1
- package/lib/tweening/helpers.d.ts +0 -5
- package/lib/tweening/helpers.d.ts.map +0 -1
- package/lib/tweening/helpers.js +0 -16
- package/lib/tweening/index.d.ts +0 -11
- package/lib/tweening/index.d.ts.map +0 -1
- package/lib/tweening/index.js +0 -11
- package/lib/tweening/interpolationFunctions.d.ts +0 -38
- package/lib/tweening/interpolationFunctions.d.ts.map +0 -1
- package/lib/tweening/interpolationFunctions.js +0 -107
- package/lib/tweening/spring.d.ts +0 -20
- package/lib/tweening/spring.d.ts.map +0 -1
- package/lib/tweening/spring.js +0 -103
- package/lib/tweening/timingFunctions.d.ts +0 -46
- package/lib/tweening/timingFunctions.d.ts.map +0 -1
- package/lib/tweening/timingFunctions.js +0 -233
- package/lib/tweening/tween.d.ts +0 -3
- package/lib/tweening/tween.d.ts.map +0 -1
- package/lib/tweening/tween.js +0 -21
- package/lib/types/BBox.d.ts +0 -73
- package/lib/types/BBox.d.ts.map +0 -1
- package/lib/types/BBox.js +0 -249
- package/lib/types/Canvas.d.ts +0 -3
- package/lib/types/Canvas.d.ts.map +0 -1
- package/lib/types/Canvas.js +0 -2
- package/lib/types/Color.d.ts +0 -65
- package/lib/types/Color.d.ts.map +0 -1
- package/lib/types/Color.js +0 -185
- package/lib/types/Matrix.d.ts +0 -3
- package/lib/types/Matrix.d.ts.map +0 -1
- package/lib/types/Matrix.js +0 -10
- package/lib/types/Matrix2D.d.ts +0 -363
- package/lib/types/Matrix2D.d.ts.map +0 -1
- package/lib/types/Matrix2D.js +0 -554
- package/lib/types/Origin.d.ts +0 -17
- package/lib/types/Origin.d.ts.map +0 -1
- package/lib/types/Origin.js +0 -53
- package/lib/types/Spacing.d.ts +0 -36
- package/lib/types/Spacing.d.ts.map +0 -1
- package/lib/types/Spacing.js +0 -70
- package/lib/types/Type.d.ts +0 -9
- package/lib/types/Type.d.ts.map +0 -1
- package/lib/types/Type.js +0 -5
- package/lib/types/Vector.d.ts +0 -203
- package/lib/types/Vector.d.ts.map +0 -1
- package/lib/types/Vector.js +0 -355
- package/lib/types/alignment-enums.d.ts +0 -22
- package/lib/types/alignment-enums.d.ts.map +0 -1
- package/lib/types/alignment-enums.js +0 -25
- package/lib/types/index.d.ts +0 -17
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/index.js +0 -17
- package/lib/types/vector-transformations.d.ts +0 -20
- package/lib/types/vector-transformations.d.ts.map +0 -1
- package/lib/types/vector-transformations.js +0 -31
- package/lib/utils/DetailedError.d.ts +0 -24
- package/lib/utils/DetailedError.d.ts.map +0 -1
- package/lib/utils/DetailedError.js +0 -16
- package/lib/utils/ExperimentalError.d.ts +0 -10
- package/lib/utils/ExperimentalError.d.ts.map +0 -1
- package/lib/utils/ExperimentalError.js +0 -32
- package/lib/utils/Semaphore.d.ts +0 -12
- package/lib/utils/Semaphore.d.ts.map +0 -1
- package/lib/utils/Semaphore.js +0 -25
- package/lib/utils/beginSlide.d.ts +0 -3
- package/lib/utils/beginSlide.d.ts.map +0 -1
- package/lib/utils/beginSlide.js +0 -12
- package/lib/utils/capitalize.d.ts +0 -2
- package/lib/utils/capitalize.d.ts.map +0 -1
- package/lib/utils/capitalize.js +0 -4
- package/lib/utils/createRef.d.ts +0 -15
- package/lib/utils/createRef.d.ts.map +0 -1
- package/lib/utils/createRef.js +0 -21
- package/lib/utils/createRefArray.d.ts +0 -27
- package/lib/utils/createRefArray.d.ts.map +0 -1
- package/lib/utils/createRefArray.js +0 -49
- package/lib/utils/createRefMap.d.ts +0 -50
- package/lib/utils/createRefMap.d.ts.map +0 -1
- package/lib/utils/createRefMap.js +0 -77
- package/lib/utils/debug.d.ts +0 -24
- package/lib/utils/debug.d.ts.map +0 -1
- package/lib/utils/debug.js +0 -47
- package/lib/utils/deprecate.d.ts +0 -9
- package/lib/utils/deprecate.d.ts.map +0 -1
- package/lib/utils/deprecate.js +0 -15
- package/lib/utils/errorToLog.d.ts +0 -3
- package/lib/utils/errorToLog.d.ts.map +0 -1
- package/lib/utils/errorToLog.js +0 -8
- package/lib/utils/experimentalLog.d.ts +0 -3
- package/lib/utils/experimentalLog.d.ts.map +0 -1
- package/lib/utils/experimentalLog.js +0 -10
- package/lib/utils/getContext.d.ts +0 -2
- package/lib/utils/getContext.d.ts.map +0 -1
- package/lib/utils/getContext.js +0 -8
- package/lib/utils/index.d.ts +0 -26
- package/lib/utils/index.d.ts.map +0 -1
- package/lib/utils/index.js +0 -26
- package/lib/utils/math.d.ts +0 -15
- package/lib/utils/math.d.ts.map +0 -1
- package/lib/utils/math.js +0 -15
- package/lib/utils/range.d.ts +0 -40
- package/lib/utils/range.d.ts.map +0 -1
- package/lib/utils/range.js +0 -18
- package/lib/utils/useContext.d.ts +0 -13
- package/lib/utils/useContext.d.ts.map +0 -1
- package/lib/utils/useContext.js +0 -18
- package/lib/utils/usePlayback.d.ts +0 -8
- package/lib/utils/usePlayback.d.ts.map +0 -1
- package/lib/utils/usePlayback.js +0 -20
- package/lib/utils/useScene.d.ts +0 -17
- package/lib/utils/useScene.d.ts.map +0 -1
- package/lib/utils/useScene.js +0 -33
- package/lib/utils/useThread.d.ts +0 -8
- package/lib/utils/useThread.d.ts.map +0 -1
- package/lib/utils/useThread.js +0 -24
- package/lib/utils/useTime.d.ts +0 -19
- package/lib/utils/useTime.d.ts.map +0 -1
- package/lib/utils/useTime.js +0 -22
- package/project.d.ts +0 -24
package/lib/types/BBox.js
DELETED
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
import { CompoundSignalContext } from '../signals';
|
|
2
|
-
import { arcLerp, map } from '../tweening';
|
|
3
|
-
import { Spacing } from './Spacing';
|
|
4
|
-
import { Vector2 } from './Vector';
|
|
5
|
-
import { transformVector, transformVectorAsPoint, } from './vector-transformations';
|
|
6
|
-
export class BBox {
|
|
7
|
-
static createSignal(initial, interpolation = BBox.lerp) {
|
|
8
|
-
return new CompoundSignalContext(['x', 'y', 'width', 'height'], (value) => new BBox(value), initial, interpolation).toSignal();
|
|
9
|
-
}
|
|
10
|
-
static lerp(from, to, value) {
|
|
11
|
-
let valueX;
|
|
12
|
-
let valueY;
|
|
13
|
-
let valueWidth;
|
|
14
|
-
let valueHeight;
|
|
15
|
-
if (typeof value === 'number') {
|
|
16
|
-
valueX = valueY = valueWidth = valueHeight = value;
|
|
17
|
-
}
|
|
18
|
-
else if (value instanceof Vector2) {
|
|
19
|
-
valueX = valueWidth = value.x;
|
|
20
|
-
valueY = valueHeight = value.y;
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
valueX = value.x;
|
|
24
|
-
valueY = value.y;
|
|
25
|
-
valueWidth = value.width;
|
|
26
|
-
valueHeight = value.height;
|
|
27
|
-
}
|
|
28
|
-
return new BBox(map(from.x, to.x, valueX), map(from.y, to.y, valueY), map(from.width, to.width, valueWidth), map(from.height, to.height, valueHeight));
|
|
29
|
-
}
|
|
30
|
-
static arcLerp(from, to, value, reverse = false, ratio) {
|
|
31
|
-
ratio ?? (ratio = (from.position.sub(to.position).ctg + from.size.sub(to.size).ctg) / 2);
|
|
32
|
-
return BBox.lerp(from, to, new Vector2(arcLerp(value, reverse, ratio)));
|
|
33
|
-
}
|
|
34
|
-
static fromSizeCentered(size) {
|
|
35
|
-
return new BBox(-size.width / 2, -size.height / 2, size.width, size.height);
|
|
36
|
-
}
|
|
37
|
-
static fromPoints(...points) {
|
|
38
|
-
let minX = Infinity;
|
|
39
|
-
let minY = Infinity;
|
|
40
|
-
let maxX = -Infinity;
|
|
41
|
-
let maxY = -Infinity;
|
|
42
|
-
for (const point of points) {
|
|
43
|
-
if (point.x > maxX) {
|
|
44
|
-
maxX = point.x;
|
|
45
|
-
}
|
|
46
|
-
if (point.x < minX) {
|
|
47
|
-
minX = point.x;
|
|
48
|
-
}
|
|
49
|
-
if (point.y > maxY) {
|
|
50
|
-
maxY = point.y;
|
|
51
|
-
}
|
|
52
|
-
if (point.y < minY) {
|
|
53
|
-
minY = point.y;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return new BBox(minX, minY, maxX - minX, maxY - minY);
|
|
57
|
-
}
|
|
58
|
-
static fromBBoxes(...boxes) {
|
|
59
|
-
let minX = Infinity;
|
|
60
|
-
let minY = Infinity;
|
|
61
|
-
let maxX = -Infinity;
|
|
62
|
-
let maxY = -Infinity;
|
|
63
|
-
for (const box of boxes) {
|
|
64
|
-
const right = box.x + box.width;
|
|
65
|
-
if (right > maxX) {
|
|
66
|
-
maxX = right;
|
|
67
|
-
}
|
|
68
|
-
if (box.x < minX) {
|
|
69
|
-
minX = box.x;
|
|
70
|
-
}
|
|
71
|
-
const bottom = box.y + box.height;
|
|
72
|
-
if (bottom > maxY) {
|
|
73
|
-
maxY = bottom;
|
|
74
|
-
}
|
|
75
|
-
if (box.y < minY) {
|
|
76
|
-
minY = box.y;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return new BBox(minX, minY, maxX - minX, maxY - minY);
|
|
80
|
-
}
|
|
81
|
-
lerp(to, value) {
|
|
82
|
-
return BBox.lerp(this, to, value);
|
|
83
|
-
}
|
|
84
|
-
get position() {
|
|
85
|
-
return new Vector2(this.x, this.y);
|
|
86
|
-
}
|
|
87
|
-
set position(value) {
|
|
88
|
-
this.x = value.x;
|
|
89
|
-
this.y = value.y;
|
|
90
|
-
}
|
|
91
|
-
get size() {
|
|
92
|
-
return new Vector2(this.width, this.height);
|
|
93
|
-
}
|
|
94
|
-
get center() {
|
|
95
|
-
return new Vector2(this.x + this.width / 2, this.y + this.height / 2);
|
|
96
|
-
}
|
|
97
|
-
get left() {
|
|
98
|
-
return this.x;
|
|
99
|
-
}
|
|
100
|
-
set left(value) {
|
|
101
|
-
this.width += this.x - value;
|
|
102
|
-
this.x = value;
|
|
103
|
-
}
|
|
104
|
-
get right() {
|
|
105
|
-
return this.x + this.width;
|
|
106
|
-
}
|
|
107
|
-
set right(value) {
|
|
108
|
-
this.width = value - this.x;
|
|
109
|
-
}
|
|
110
|
-
get top() {
|
|
111
|
-
return this.y;
|
|
112
|
-
}
|
|
113
|
-
set top(value) {
|
|
114
|
-
this.height += this.y - value;
|
|
115
|
-
this.y = value;
|
|
116
|
-
}
|
|
117
|
-
get bottom() {
|
|
118
|
-
return this.y + this.height;
|
|
119
|
-
}
|
|
120
|
-
set bottom(value) {
|
|
121
|
-
this.height = value - this.y;
|
|
122
|
-
}
|
|
123
|
-
get topLeft() {
|
|
124
|
-
return this.position;
|
|
125
|
-
}
|
|
126
|
-
get topRight() {
|
|
127
|
-
return new Vector2(this.x + this.width, this.y);
|
|
128
|
-
}
|
|
129
|
-
get bottomLeft() {
|
|
130
|
-
return new Vector2(this.x, this.y + this.height);
|
|
131
|
-
}
|
|
132
|
-
get bottomRight() {
|
|
133
|
-
return new Vector2(this.x + this.width, this.y + this.height);
|
|
134
|
-
}
|
|
135
|
-
get corners() {
|
|
136
|
-
return [this.topLeft, this.topRight, this.bottomRight, this.bottomLeft];
|
|
137
|
-
}
|
|
138
|
-
get pixelPerfect() {
|
|
139
|
-
return new BBox(Math.floor(this.x), Math.floor(this.y), Math.ceil(this.width + 1), Math.ceil(this.height + 1));
|
|
140
|
-
}
|
|
141
|
-
constructor(one, two = 0, three = 0, four = 0) {
|
|
142
|
-
this.x = 0;
|
|
143
|
-
this.y = 0;
|
|
144
|
-
this.width = 0;
|
|
145
|
-
this.height = 0;
|
|
146
|
-
if (one === undefined || one === null) {
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
if (typeof one === 'number') {
|
|
150
|
-
this.x = one;
|
|
151
|
-
this.y = two;
|
|
152
|
-
this.width = three;
|
|
153
|
-
this.height = four;
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
if (one instanceof Vector2) {
|
|
157
|
-
this.x = one.x;
|
|
158
|
-
this.y = one.y;
|
|
159
|
-
if (two instanceof Vector2) {
|
|
160
|
-
this.width = two.x;
|
|
161
|
-
this.height = two.y;
|
|
162
|
-
}
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
if (Array.isArray(one)) {
|
|
166
|
-
this.x = one[0];
|
|
167
|
-
this.y = one[1];
|
|
168
|
-
this.width = one[2];
|
|
169
|
-
this.height = one[3];
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
this.x = one.x;
|
|
173
|
-
this.y = one.y;
|
|
174
|
-
this.width = one.width;
|
|
175
|
-
this.height = one.height;
|
|
176
|
-
}
|
|
177
|
-
transform(matrix) {
|
|
178
|
-
return new BBox(transformVectorAsPoint(this.position, matrix), transformVector(this.size, matrix));
|
|
179
|
-
}
|
|
180
|
-
transformCorners(matrix) {
|
|
181
|
-
return this.corners.map(corner => transformVectorAsPoint(corner, matrix));
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Expand the bounding box to accommodate the given spacing.
|
|
185
|
-
*
|
|
186
|
-
* @param value - The value to expand the bounding box by.
|
|
187
|
-
*/
|
|
188
|
-
expand(value) {
|
|
189
|
-
const spacing = new Spacing(value);
|
|
190
|
-
const result = new BBox(this);
|
|
191
|
-
result.left -= spacing.left;
|
|
192
|
-
result.top -= spacing.top;
|
|
193
|
-
result.right += spacing.right;
|
|
194
|
-
result.bottom += spacing.bottom;
|
|
195
|
-
return result;
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* {@inheritDoc expand}
|
|
199
|
-
*
|
|
200
|
-
* @deprecated Use {@link expand} instead.
|
|
201
|
-
*/
|
|
202
|
-
addSpacing(value) {
|
|
203
|
-
return this.expand(value);
|
|
204
|
-
}
|
|
205
|
-
includes(point) {
|
|
206
|
-
return (point.x >= this.x &&
|
|
207
|
-
point.x <= this.x + this.width &&
|
|
208
|
-
point.y >= this.y &&
|
|
209
|
-
point.y <= this.y + this.height);
|
|
210
|
-
}
|
|
211
|
-
intersects(other) {
|
|
212
|
-
return (this.left < other.right &&
|
|
213
|
-
this.right > other.left &&
|
|
214
|
-
this.top < other.bottom &&
|
|
215
|
-
this.bottom > other.top);
|
|
216
|
-
}
|
|
217
|
-
intersection(other) {
|
|
218
|
-
const bbox = new BBox();
|
|
219
|
-
if (this.intersects(other)) {
|
|
220
|
-
bbox.left = Math.max(this.left, other.left);
|
|
221
|
-
bbox.top = Math.max(this.top, other.top);
|
|
222
|
-
bbox.right = Math.min(this.right, other.right);
|
|
223
|
-
bbox.bottom = Math.min(this.bottom, other.bottom);
|
|
224
|
-
}
|
|
225
|
-
return bbox;
|
|
226
|
-
}
|
|
227
|
-
union(other) {
|
|
228
|
-
const bbox = new BBox();
|
|
229
|
-
bbox.left = Math.min(this.left, other.left);
|
|
230
|
-
bbox.top = Math.min(this.top, other.top);
|
|
231
|
-
bbox.right = Math.max(this.right, other.right);
|
|
232
|
-
bbox.bottom = Math.max(this.bottom, other.bottom);
|
|
233
|
-
return bbox;
|
|
234
|
-
}
|
|
235
|
-
toSymbol() {
|
|
236
|
-
return BBox.symbol;
|
|
237
|
-
}
|
|
238
|
-
toString() {
|
|
239
|
-
return `BBox(${this.x}, ${this.y}, ${this.width}, ${this.height})`;
|
|
240
|
-
}
|
|
241
|
-
toUniform(gl, location) {
|
|
242
|
-
gl.uniform4f(location, this.x, this.y, this.width, this.height);
|
|
243
|
-
}
|
|
244
|
-
serialize() {
|
|
245
|
-
return { x: this.x, y: this.y, width: this.width, height: this.height };
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
BBox.symbol = Symbol.for('@twick/core/types/Rect');
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQkJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9CQm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUVqRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUd6QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRWxDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUNMLGVBQWUsRUFDZixzQkFBc0IsR0FDdkIsTUFBTSwwQkFBMEIsQ0FBQztBQXNCbEMsTUFBTSxPQUFPLElBQUk7SUFRUixNQUFNLENBQUMsWUFBWSxDQUN4QixPQUFtQyxFQUNuQyxnQkFBNkMsSUFBSSxDQUFDLElBQUk7UUFFdEQsT0FBTyxJQUFJLHFCQUFxQixDQUM5QixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUM3QixDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUN4QyxPQUFPLEVBQ1AsYUFBYSxDQUNkLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDZixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FDaEIsSUFBVSxFQUNWLEVBQVEsRUFDUixLQUE4QjtRQUU5QixJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sR0FBRyxNQUFNLEdBQUcsVUFBVSxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDckQsQ0FBQzthQUFNLElBQUksS0FBSyxZQUFZLE9BQU8sRUFBRSxDQUFDO1lBQ3BDLE1BQU0sR0FBRyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLEdBQUcsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNqQixNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNqQixVQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUN6QixXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUM3QixDQUFDO1FBRUQsT0FBTyxJQUFJLElBQUksQ0FDYixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUN6QixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUN6QixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUN6QyxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQ25CLElBQVUsRUFDVixFQUFRLEVBQ1IsS0FBYSxFQUNiLE9BQU8sR0FBRyxLQUFLLEVBQ2YsS0FBYztRQUVkLEtBQUssS0FBTCxLQUFLLEdBQ0gsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUM7UUFFeEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBYTtRQUMxQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLE1BQWlCO1FBQzNDLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUNwQixJQUFJLElBQUksR0FBRyxRQUFRLENBQUM7UUFDcEIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDckIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFFckIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMzQixJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7Z0JBQ25CLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7Z0JBQ25CLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7Z0JBQ25CLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7Z0JBQ25CLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUks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
|
package/lib/types/Canvas.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../src/types/Canvas.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,YAAY,CAAC;AACrD,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC"}
|
package/lib/types/Canvas.js
DELETED
package/lib/types/Color.d.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import type { Signal, SignalValue } from '../signals';
|
|
2
|
-
import type { InterpolationFunction } from '../tweening';
|
|
3
|
-
import type { Type, WebGLConvertible } from './Type';
|
|
4
|
-
export type SerializedColor = string;
|
|
5
|
-
export interface ColorObject {
|
|
6
|
-
r: number;
|
|
7
|
-
g: number;
|
|
8
|
-
b: number;
|
|
9
|
-
a: number;
|
|
10
|
-
}
|
|
11
|
-
export type PossibleColor = SerializedColor | number | Color | ColorObject;
|
|
12
|
-
type CuloriInterpolatorMode = 'a98' | 'cubehelix' | 'dlab' | 'dlch' | 'hsi' | 'hsl' | 'hsv' | 'hwb' | 'jab' | 'jch' | 'lab' | 'lab65' | 'lch' | 'lch65' | 'lchuv' | 'lrgb' | 'luv' | 'okhsl' | 'okhsv' | 'oklab' | 'oklch' | 'p3' | 'prophoto' | 'rec2020' | 'rgb' | 'xyz' | 'xyz50' | 'xyz65' | 'yiq';
|
|
13
|
-
export type ColorSignal<T> = Signal<PossibleColor, Color, T>;
|
|
14
|
-
/**
|
|
15
|
-
* Represents a color using RGBA values (0-1 range).
|
|
16
|
-
*/
|
|
17
|
-
export declare class Color implements Type, WebGLConvertible {
|
|
18
|
-
static symbol: symbol;
|
|
19
|
-
readonly symbol: symbol;
|
|
20
|
-
readonly r: number;
|
|
21
|
-
readonly g: number;
|
|
22
|
-
readonly b: number;
|
|
23
|
-
readonly a: number;
|
|
24
|
-
constructor(value?: PossibleColor);
|
|
25
|
-
/**
|
|
26
|
-
* Interpolates between two colors using LCH color space.
|
|
27
|
-
*/
|
|
28
|
-
static lerp(from: PossibleColor | null, to: PossibleColor | null, value: number, mode?: CuloriInterpolatorMode): Color;
|
|
29
|
-
/**
|
|
30
|
-
* Creates an interpolation function for colors (uses LCH space via culori).
|
|
31
|
-
*/
|
|
32
|
-
static createLerp(mode?: CuloriInterpolatorMode): InterpolationFunction<Color, any[]>;
|
|
33
|
-
/**
|
|
34
|
-
* Creates a signal for the Color type.
|
|
35
|
-
*/
|
|
36
|
-
static createSignal(initial?: SignalValue<PossibleColor>, interpolation?: InterpolationFunction<Color>): ColorSignal<void>;
|
|
37
|
-
toSymbol(): symbol;
|
|
38
|
-
/**
|
|
39
|
-
* Returns the color components as a [r, g, b, a] array (0-1 range).
|
|
40
|
-
*/
|
|
41
|
-
private gl;
|
|
42
|
-
toUniform(gl: WebGL2RenderingContext, location: WebGLUniformLocation): void;
|
|
43
|
-
/**
|
|
44
|
-
* Serializes the color to an `rgba()` CSS string.
|
|
45
|
-
*/
|
|
46
|
-
serialize(): SerializedColor;
|
|
47
|
-
/**
|
|
48
|
-
* Serializes the color to an `rgb()` CSS string (omitting alpha).
|
|
49
|
-
*/
|
|
50
|
-
css(): SerializedColor;
|
|
51
|
-
/**
|
|
52
|
-
* Returns the alpha value of the color (0-1 range).
|
|
53
|
-
*/
|
|
54
|
-
alpha(): number;
|
|
55
|
-
/**
|
|
56
|
-
* Serializes the color to an RRGGBBAA hex string using culori.
|
|
57
|
-
*/
|
|
58
|
-
hex(): string;
|
|
59
|
-
/**
|
|
60
|
-
* Linearly interpolates from this color to another using LCH space.
|
|
61
|
-
*/
|
|
62
|
-
lerp(to: PossibleColor, value: number, mode?: CuloriInterpolatorMode): Color;
|
|
63
|
-
}
|
|
64
|
-
export {};
|
|
65
|
-
//# sourceMappingURL=Color.d.ts.map
|
package/lib/types/Color.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Color.d.ts","sourceRoot":"","sources":["../../src/types/Color.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AAEpD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,EAAC,IAAI,EAAE,gBAAgB,EAAC,MAAM,QAAQ,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AASrC,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC;AAE3E,KAAK,sBAAsB,GACvB,KAAK,GACL,WAAW,GACX,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,OAAO,GACP,KAAK,GACL,OAAO,GACP,OAAO,GACP,MAAM,GACN,KAAK,GACL,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,IAAI,GACJ,UAAU,GACV,SAAS,GACT,KAAK,GACL,KAAK,GACL,OAAO,GACP,OAAO,GACP,KAAK,CAAC;AAEV,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAE7D;;GAEG;AACH,qBAAa,KAAM,YAAW,IAAI,EAAE,gBAAgB;IAClD,OAAc,MAAM,SAAyC;IAC7D,SAAgB,MAAM,SAAgB;IAEtC,SAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAgB,CAAC,EAAE,MAAM,CAAC;gBAEP,KAAK,CAAC,EAAE,aAAa;IAmExC;;OAEG;WACW,IAAI,CAChB,IAAI,EAAE,aAAa,GAAG,IAAI,EAC1B,EAAE,EAAE,aAAa,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,sBAA8B,GACnC,KAAK;IAkDR;;OAEG;WACW,UAAU,CACtB,IAAI,GAAE,sBAA8B,GACnC,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;IAKtC;;OAEG;WACW,YAAY,CACxB,OAAO,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,EACpC,aAAa,GAAE,qBAAqB,CAAC,KAAK,CAAc,GACvD,WAAW,CAAC,IAAI,CAAC;IASb,QAAQ,IAAI,MAAM;IAIzB;;OAEG;IACH,OAAO,CAAC,EAAE;IAIH,SAAS,CACd,EAAE,EAAE,sBAAsB,EAC1B,QAAQ,EAAE,oBAAoB,GAC7B,IAAI;IAIP;;OAEG;IACI,SAAS,IAAI,eAAe;IASnC;;OAEG;IACI,GAAG,IAAI,eAAe;IAO7B;;OAEG;IACI,KAAK,IAAI,MAAM;IAItB;;OAEG;IACI,GAAG,IAAI,MAAM;IAWpB;;OAEG;IACI,IAAI,CACT,EAAE,EAAE,aAAa,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,sBAA8B,GACnC,KAAK;CAGT"}
|
package/lib/types/Color.js
DELETED
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { converter, formatHex8, interpolate, parse } from 'culori';
|
|
2
|
-
import { SignalContext } from '../signals';
|
|
3
|
-
import { clamp } from '../tweening';
|
|
4
|
-
function parseNumber(num) {
|
|
5
|
-
const r = (num >> 16) & 255;
|
|
6
|
-
const g = (num >> 8) & 255;
|
|
7
|
-
const b = num & 255;
|
|
8
|
-
return [r / 255, g / 255, b / 255, 1];
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Represents a color using RGBA values (0-1 range).
|
|
12
|
-
*/
|
|
13
|
-
export class Color {
|
|
14
|
-
constructor(value) {
|
|
15
|
-
this.symbol = Color.symbol;
|
|
16
|
-
// Handle undefined/null case
|
|
17
|
-
if (value === undefined || value === null) {
|
|
18
|
-
this.r = 0;
|
|
19
|
-
this.g = 0;
|
|
20
|
-
this.b = 0;
|
|
21
|
-
this.a = 1; // Default alpha for undefined is 1 (fully opaque black)
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
// Handle Color instance
|
|
25
|
-
if (value instanceof Color) {
|
|
26
|
-
this.r = value.r;
|
|
27
|
-
this.g = value.g;
|
|
28
|
-
this.b = value.b;
|
|
29
|
-
this.a = value.a;
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
// Handle string parsing using culori
|
|
33
|
-
if (typeof value === 'string') {
|
|
34
|
-
const parsedColor = parse(value);
|
|
35
|
-
if (!parsedColor) {
|
|
36
|
-
throw new Error(`Invalid color string value provided: ${value}`);
|
|
37
|
-
}
|
|
38
|
-
// Convert parsed color to RGB if it's not already
|
|
39
|
-
const rgbColor = parsedColor.mode === 'rgb'
|
|
40
|
-
? parsedColor
|
|
41
|
-
: converter('rgb')(parsedColor);
|
|
42
|
-
if (rgbColor) {
|
|
43
|
-
this.r = clamp(0, 1, rgbColor.r);
|
|
44
|
-
this.g = clamp(0, 1, rgbColor.g);
|
|
45
|
-
this.b = clamp(0, 1, rgbColor.b);
|
|
46
|
-
this.a = clamp(0, 1, rgbColor.alpha ?? 1);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// Handle number parsing
|
|
51
|
-
if (typeof value === 'number') {
|
|
52
|
-
const [r, g, b, a] = parseNumber(value);
|
|
53
|
-
this.r = clamp(0, 1, r);
|
|
54
|
-
this.g = clamp(0, 1, g);
|
|
55
|
-
this.b = clamp(0, 1, b);
|
|
56
|
-
this.a = clamp(0, 1, a);
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
// Handle object parsing
|
|
60
|
-
if (typeof value === 'object') {
|
|
61
|
-
// Check for r, g, b properties to be reasonably sure it's a ColorObject
|
|
62
|
-
if ('r' in value && 'g' in value && 'b' in value) {
|
|
63
|
-
const obj = value; // Assume it matches the interface
|
|
64
|
-
this.r = clamp(0, 1, obj.r / 255);
|
|
65
|
-
this.g = clamp(0, 1, obj.g / 255);
|
|
66
|
-
this.b = clamp(0, 1, obj.b / 255);
|
|
67
|
-
this.a = clamp(0, 1, obj.a ?? 1);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
throw new Error(`Invalid color value provided: ${value}`);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Interpolates between two colors using LCH color space.
|
|
75
|
-
*/
|
|
76
|
-
static lerp(from, to, value, mode = 'lch') {
|
|
77
|
-
const fromColor = from instanceof Color ? from : new Color(from ?? undefined);
|
|
78
|
-
const toColor = to instanceof Color ? to : new Color(to ?? undefined);
|
|
79
|
-
// Define culori colors in {r, g, b} format (0-1 range)
|
|
80
|
-
const startColorCulori = {
|
|
81
|
-
mode: 'rgb',
|
|
82
|
-
r: fromColor.r,
|
|
83
|
-
g: fromColor.g,
|
|
84
|
-
b: fromColor.b,
|
|
85
|
-
};
|
|
86
|
-
const endColorCulori = {
|
|
87
|
-
mode: 'rgb',
|
|
88
|
-
r: toColor.r,
|
|
89
|
-
g: toColor.g,
|
|
90
|
-
b: toColor.b,
|
|
91
|
-
};
|
|
92
|
-
// Create LCH interpolator using culori
|
|
93
|
-
const interpolationMode = mode ?? 'lch'; // Ensure mode is not undefined
|
|
94
|
-
const interpolator = interpolate([startColorCulori, endColorCulori], interpolationMode);
|
|
95
|
-
// Get the interpolated color in LCH mode from culori
|
|
96
|
-
const interpolatedLch = interpolator(value);
|
|
97
|
-
// Convert the interpolated LCH color back to RGB
|
|
98
|
-
const rgbConverter = converter('rgb');
|
|
99
|
-
const interpolatedRgb = rgbConverter(interpolatedLch);
|
|
100
|
-
// Interpolate alpha linearly
|
|
101
|
-
const a = fromColor.a + (toColor.a - fromColor.a) * value;
|
|
102
|
-
// Create a new Color instance, clamping RGB values from culori
|
|
103
|
-
// Check if interpolatedRgb is valid before accessing properties
|
|
104
|
-
const finalR = interpolatedRgb ? clamp(0, 1, interpolatedRgb.r) : 0;
|
|
105
|
-
const finalG = interpolatedRgb ? clamp(0, 1, interpolatedRgb.g) : 0;
|
|
106
|
-
const finalB = interpolatedRgb ? clamp(0, 1, interpolatedRgb.b) : 0;
|
|
107
|
-
return new Color({
|
|
108
|
-
r: finalR * 255,
|
|
109
|
-
g: finalG * 255,
|
|
110
|
-
b: finalB * 255,
|
|
111
|
-
a: clamp(0, 1, a), // Also clamp alpha just in case
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Creates an interpolation function for colors (uses LCH space via culori).
|
|
116
|
-
*/
|
|
117
|
-
static createLerp(mode = 'lch') {
|
|
118
|
-
return (from, to, value) => Color.lerp(from, to, value, mode);
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Creates a signal for the Color type.
|
|
122
|
-
*/
|
|
123
|
-
static createSignal(initial, interpolation = Color.lerp) {
|
|
124
|
-
return new SignalContext(initial, interpolation, undefined, value => (value instanceof Color ? value : new Color(value))).toSignal();
|
|
125
|
-
}
|
|
126
|
-
toSymbol() {
|
|
127
|
-
return this.symbol;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Returns the color components as a [r, g, b, a] array (0-1 range).
|
|
131
|
-
*/
|
|
132
|
-
gl() {
|
|
133
|
-
return [this.r, this.g, this.b, this.a];
|
|
134
|
-
}
|
|
135
|
-
toUniform(gl, location) {
|
|
136
|
-
gl.uniform4fv(location, this.gl());
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Serializes the color to an `rgba()` CSS string.
|
|
140
|
-
*/
|
|
141
|
-
serialize() {
|
|
142
|
-
const r = Math.round(this.r * 255);
|
|
143
|
-
const g = Math.round(this.g * 255);
|
|
144
|
-
const b = Math.round(this.b * 255);
|
|
145
|
-
// Use toFixed(3) for alpha like before, clamp to avoid -0
|
|
146
|
-
const alphaStr = clamp(0, 1, this.a).toFixed(3);
|
|
147
|
-
return `rgba(${r}, ${g}, ${b}, ${alphaStr})`;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Serializes the color to an `rgb()` CSS string (omitting alpha).
|
|
151
|
-
*/
|
|
152
|
-
css() {
|
|
153
|
-
const r = Math.round(this.r * 255);
|
|
154
|
-
const g = Math.round(this.g * 255);
|
|
155
|
-
const b = Math.round(this.b * 255);
|
|
156
|
-
return `rgb(${r},${g},${b})`;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Returns the alpha value of the color (0-1 range).
|
|
160
|
-
*/
|
|
161
|
-
alpha() {
|
|
162
|
-
return this.a;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Serializes the color to an RRGGBBAA hex string using culori.
|
|
166
|
-
*/
|
|
167
|
-
hex() {
|
|
168
|
-
// Use culori's formatter for consistency
|
|
169
|
-
return formatHex8({
|
|
170
|
-
mode: 'rgb',
|
|
171
|
-
r: this.r,
|
|
172
|
-
g: this.g,
|
|
173
|
-
b: this.b,
|
|
174
|
-
alpha: this.a,
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Linearly interpolates from this color to another using LCH space.
|
|
179
|
-
*/
|
|
180
|
-
lerp(to, value, mode = 'lch') {
|
|
181
|
-
return Color.lerp(this, to, value, mode);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
Color.symbol = Symbol.for('@twick/core/types/Color');
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQ29sb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUVqRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFLbEMsU0FBUyxXQUFXLENBQUMsR0FBVztJQUM5QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzNCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDcEIsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUE0Q0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sS0FBSztJQVNoQixZQUFtQixLQUFxQjtRQVB4QixXQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQVFwQyw2QkFBNkI7UUFDN0IsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNYLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ1gsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDWCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLHdEQUF3RDtZQUNwRSxPQUFPO1FBQ1QsQ0FBQztRQUVELHdCQUF3QjtRQUN4QixJ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
|
package/lib/types/Matrix.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Matrix.d.ts","sourceRoot":"","sources":["../../src/types/Matrix.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAG9D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAEhE"}
|
package/lib/types/Matrix.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Vector2 } from './Vector';
|
|
2
|
-
import { transformVector } from './vector-transformations';
|
|
3
|
-
export function transformAngle(angle, matrix) {
|
|
4
|
-
const degreeVector = Vector2.fromDegrees(angle);
|
|
5
|
-
return transformVector(degreeVector, matrix).degrees;
|
|
6
|
-
}
|
|
7
|
-
export function transformScalar(scalar, matrix) {
|
|
8
|
-
return Vector2.magnitude(matrix.m11, matrix.m12) * scalar;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0cml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL01hdHJpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWEsRUFBRSxNQUFpQjtJQUM3RCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELE9BQU8sZUFBZSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBYyxFQUFFLE1BQWlCO0lBQy9ELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDNUQsQ0FBQyJ9
|