@pixerate/editor 0.267.0 → 0.268.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/animation-editor/index.cjs +62 -62
- package/dist/animation-editor/index.js +6 -6
- package/dist/brushes/index.cjs +198 -72
- package/dist/brushes/index.d.cts +4 -3
- package/dist/brushes/index.d.ts +4 -3
- package/dist/brushes/index.js +136 -10
- package/dist/brushes/library.d.cts +27 -1
- package/dist/brushes/library.d.ts +27 -1
- package/dist/brushes/profiles.d.cts +4 -0
- package/dist/brushes/profiles.d.ts +4 -0
- package/dist/brushes/schema.d.cts +4 -0
- package/dist/brushes/schema.d.ts +4 -0
- package/dist/brushes/sources.d.cts +114 -0
- package/dist/brushes/sources.d.ts +114 -0
- package/dist/brushes/types.d.cts +37 -5
- package/dist/brushes/types.d.ts +37 -5
- package/dist/brushes/ui.d.cts +40 -4
- package/dist/brushes/ui.d.ts +40 -4
- package/dist/{brushstrokeRender-NLFPEBGI.js → brushstrokeRender-A727TTNQ.js} +6 -6
- package/dist/{brushstrokeRender-L7JYRR2R.cjs → brushstrokeRender-WR2N5HHY.cjs} +22 -22
- package/dist/canvas/index.cjs +13 -13
- package/dist/canvas/index.js +1 -1
- package/dist/{chunk-J2TNIZ55.cjs → chunk-2WOGXEDX.cjs} +1 -1
- package/dist/{chunk-JGWVZPT6.js → chunk-3XDSNIGF.js} +72 -5
- package/dist/{chunk-EXB2EGBE.cjs → chunk-62MFUHSI.cjs} +16 -16
- package/dist/{chunk-FGJHJIMN.js → chunk-74ODPZLX.js} +10 -10
- package/dist/{chunk-GCVFEPJG.js → chunk-ACTHSQOI.js} +182 -0
- package/dist/{chunk-LHPEG5AU.cjs → chunk-B3G7BKUV.cjs} +90 -90
- package/dist/{chunk-EF7LZAXQ.js → chunk-BAZMCFVL.js} +1 -1
- package/dist/{chunk-HIO6E7LC.cjs → chunk-BPJSI4NT.cjs} +2 -2
- package/dist/{chunk-XVOP3CGQ.cjs → chunk-EU2ZZA6L.cjs} +393 -62
- package/dist/{chunk-YIC6MAJ2.js → chunk-HFY5LG5J.js} +1 -1
- package/dist/{chunk-7UKFXXWL.js → chunk-HVO6XCI4.js} +1 -1
- package/dist/{chunk-OKHKA43L.cjs → chunk-JBB3GDBB.cjs} +330 -216
- package/dist/{chunk-AGNUD5BI.js → chunk-KZI3YWKW.js} +351 -20
- package/dist/{chunk-EYSHTYLG.js → chunk-LETF75CA.js} +1 -1
- package/dist/{chunk-FQPUF2W2.cjs → chunk-NIBFKXMD.cjs} +217 -35
- package/dist/{chunk-G7NHE2VD.cjs → chunk-NPWWSCWT.cjs} +35 -35
- package/dist/{chunk-OSEXT7JL.js → chunk-QNY7BDFP.js} +1 -1
- package/dist/{chunk-PXDIAYB6.cjs → chunk-STLTOISW.cjs} +34 -214
- package/dist/{chunk-4IDUYB45.js → chunk-UVTO3D4E.js} +130 -16
- package/dist/{chunk-TXFWZ5ZJ.js → chunk-W6JDUXP3.js} +4 -184
- package/dist/{chunk-LA5Y4ETA.cjs → chunk-YOVXQHA3.cjs} +23 -23
- package/dist/{chunk-DT4YQUGT.cjs → chunk-YXP6X3SY.cjs} +101 -34
- package/dist/image-editor/index.cjs +851 -851
- package/dist/image-editor/index.js +23 -23
- package/dist/paint/index.cjs +5 -5
- package/dist/paint/index.js +11 -11
- package/dist/paint-editor/brush-library-tools.d.cts +12 -2
- package/dist/paint-editor/brush-library-tools.d.ts +12 -2
- package/dist/paint-editor/brush-model.d.cts +29 -1
- package/dist/paint-editor/brush-model.d.ts +29 -1
- package/dist/paint-editor/brush-source-art.d.cts +32 -0
- package/dist/paint-editor/brush-source-art.d.ts +32 -0
- package/dist/paint-editor/controller.d.cts +6 -1
- package/dist/paint-editor/controller.d.ts +6 -1
- package/dist/paint-editor/dab-stroke.d.cts +2 -0
- package/dist/paint-editor/dab-stroke.d.ts +2 -0
- package/dist/paint-editor/engine.d.cts +11 -2
- package/dist/paint-editor/engine.d.ts +11 -2
- package/dist/paint-editor/index.cjs +576 -481
- package/dist/paint-editor/index.d.cts +3 -1
- package/dist/paint-editor/index.d.ts +3 -1
- package/dist/paint-editor/index.js +127 -32
- package/dist/paint-editor/stamp-tip.d.cts +8 -5
- package/dist/paint-editor/stamp-tip.d.ts +8 -5
- package/dist/paint-editor/thumbnails.d.cts +6 -0
- package/dist/paint-editor/thumbnails.d.ts +6 -0
- package/dist/paint-editor/tip-grain.d.cts +34 -0
- package/dist/paint-editor/tip-grain.d.ts +34 -0
- package/dist/raster/index.cjs +2 -2
- package/dist/raster/index.js +9 -9
- package/dist/vector/index.cjs +1002 -1002
- package/dist/vector/index.js +7 -7
- package/package.json +1 -1
- package/skills/pixerate-brushes/SKILL.md +35 -8
- package/skills/pixerate-brushes-design/SKILL.md +8 -1
- package/skills/pixerate-paint-editor/SKILL.md +6 -0
- package/skills/pixerate-paint-editor/references/brush-facets.md +3 -1
- package/skills/pixerate-paint-sketch-to-finish/SKILL.md +1 -0
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
parseOpenTypeFont,
|
|
9
9
|
removeAnchorsKeepingShape,
|
|
10
10
|
traceField
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-HFY5LG5J.js";
|
|
12
12
|
import {
|
|
13
13
|
ADJUSTMENT_KEYS,
|
|
14
14
|
ADJUSTMENT_KINDS,
|
|
@@ -408,7 +408,7 @@ import {
|
|
|
408
408
|
writePsd,
|
|
409
409
|
xyToTempTint,
|
|
410
410
|
xyToUv
|
|
411
|
-
} from "../chunk-
|
|
411
|
+
} from "../chunk-74ODPZLX.js";
|
|
412
412
|
import {
|
|
413
413
|
flattenPath,
|
|
414
414
|
rasterizeCoverage
|
|
@@ -604,7 +604,7 @@ import {
|
|
|
604
604
|
spotHealPixels,
|
|
605
605
|
spotHealWindow,
|
|
606
606
|
toneOf
|
|
607
|
-
} from "../chunk-
|
|
607
|
+
} from "../chunk-HVO6XCI4.js";
|
|
608
608
|
import {
|
|
609
609
|
bestOffset,
|
|
610
610
|
contentAwareFill,
|
|
@@ -682,14 +682,14 @@ import {
|
|
|
682
682
|
warpMeshParamAt,
|
|
683
683
|
warpMeshRows,
|
|
684
684
|
warpPresetMesh
|
|
685
|
-
} from "../chunk-
|
|
685
|
+
} from "../chunk-UVTO3D4E.js";
|
|
686
686
|
import {
|
|
687
687
|
IMAGE_PROFILE,
|
|
688
688
|
checkBrush,
|
|
689
689
|
closest,
|
|
690
690
|
createBrushLibrary,
|
|
691
691
|
resolveBrush
|
|
692
|
-
} from "../chunk-
|
|
692
|
+
} from "../chunk-KZI3YWKW.js";
|
|
693
693
|
import "../chunk-JL6YH5WD.js";
|
|
694
694
|
import "../chunk-M6DNZNVY.js";
|
|
695
695
|
import {
|
|
@@ -810,23 +810,17 @@ import {
|
|
|
810
810
|
} from "../chunk-GSTSZPSR.js";
|
|
811
811
|
import {
|
|
812
812
|
BrushstrokeCache,
|
|
813
|
-
GRAIN_PATTERNS,
|
|
814
|
-
GRAIN_TILE,
|
|
815
|
-
PaperGrain,
|
|
816
813
|
brushstrokeDataUrl,
|
|
817
814
|
brushstrokeKey,
|
|
818
815
|
brushstrokeSamples,
|
|
819
816
|
brushstrokeStrokeOptions,
|
|
820
817
|
brushstrokeToCanvas,
|
|
821
|
-
grainCatch,
|
|
822
|
-
grainHeights,
|
|
823
818
|
isBrushstrokeBrush,
|
|
824
819
|
paintPathStroke,
|
|
825
820
|
pathStrokeCoverage,
|
|
826
821
|
pathStrokeDabs,
|
|
827
|
-
renderBrushstroke
|
|
828
|
-
|
|
829
|
-
} from "../chunk-TXFWZ5ZJ.js";
|
|
822
|
+
renderBrushstroke
|
|
823
|
+
} from "../chunk-W6JDUXP3.js";
|
|
830
824
|
import {
|
|
831
825
|
CoverageMap,
|
|
832
826
|
DEFAULT_BLENDER,
|
|
@@ -837,6 +831,8 @@ import {
|
|
|
837
831
|
DEFAULT_SMUDGE,
|
|
838
832
|
DabWalker,
|
|
839
833
|
EMPTY_MIXER_LOAD,
|
|
834
|
+
GRAIN_PATTERNS,
|
|
835
|
+
GRAIN_TILE,
|
|
840
836
|
MAX_BRUSH_SIZE,
|
|
841
837
|
MIXER_DRAIN,
|
|
842
838
|
MIXER_PICKUP_RATE,
|
|
@@ -857,6 +853,7 @@ import {
|
|
|
857
853
|
PaintExchange,
|
|
858
854
|
PaintGradientSampler,
|
|
859
855
|
PaintSourceError,
|
|
856
|
+
PaperGrain,
|
|
860
857
|
SmudgeTip,
|
|
861
858
|
StrokeCoverage,
|
|
862
859
|
TIP_GRADIENT_STEPS,
|
|
@@ -873,6 +870,8 @@ import {
|
|
|
873
870
|
dabRect,
|
|
874
871
|
exchangeRates,
|
|
875
872
|
gradientDabColor,
|
|
873
|
+
grainCatch,
|
|
874
|
+
grainHeights,
|
|
876
875
|
hexToPaintRgb,
|
|
877
876
|
isGradientPaint,
|
|
878
877
|
loadMixer,
|
|
@@ -895,12 +894,13 @@ import {
|
|
|
895
894
|
scalePaintGradient,
|
|
896
895
|
smoothPoints,
|
|
897
896
|
solidPaint,
|
|
897
|
+
strokeGrainCatch,
|
|
898
898
|
tipFalloff,
|
|
899
899
|
tipReach,
|
|
900
900
|
tipShape,
|
|
901
901
|
updatePaintGradientStop,
|
|
902
902
|
walkDabs
|
|
903
|
-
} from "../chunk-
|
|
903
|
+
} from "../chunk-ACTHSQOI.js";
|
|
904
904
|
import {
|
|
905
905
|
TileableNoise,
|
|
906
906
|
hash2,
|
|
@@ -914,15 +914,6 @@ import {
|
|
|
914
914
|
BRUSHSTROKE_MIN_SCALE,
|
|
915
915
|
brushstrokeScaleBucket
|
|
916
916
|
} from "../chunk-ODBT55Q7.js";
|
|
917
|
-
import {
|
|
918
|
-
base64ToBytes,
|
|
919
|
-
bytesToBase64,
|
|
920
|
-
decodePng,
|
|
921
|
-
encodePng,
|
|
922
|
-
isPng,
|
|
923
|
-
parseDataUrl,
|
|
924
|
-
pngDataUrl
|
|
925
|
-
} from "../chunk-OTTT5N3K.js";
|
|
926
917
|
import {
|
|
927
918
|
BIT_DEPTHS,
|
|
928
919
|
BLEND_MODES,
|
|
@@ -977,6 +968,15 @@ import {
|
|
|
977
968
|
to8From32,
|
|
978
969
|
writeDeepRegion
|
|
979
970
|
} from "../chunk-IRSTHLQQ.js";
|
|
971
|
+
import {
|
|
972
|
+
base64ToBytes,
|
|
973
|
+
bytesToBase64,
|
|
974
|
+
decodePng,
|
|
975
|
+
encodePng,
|
|
976
|
+
isPng,
|
|
977
|
+
parseDataUrl,
|
|
978
|
+
pngDataUrl
|
|
979
|
+
} from "../chunk-OTTT5N3K.js";
|
|
980
980
|
import {
|
|
981
981
|
SurfaceDraft,
|
|
982
982
|
TILE,
|
package/dist/paint/index.cjs
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _chunk62MFUHSIcjs = require('../chunk-62MFUHSI.cjs');
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
|
|
@@ -147,13 +147,13 @@ var _chunkJ5VQYK7Tcjs = require('../chunk-J5VQYK7T.cjs');
|
|
|
147
147
|
|
|
148
148
|
|
|
149
149
|
|
|
150
|
+
var _chunkSTLTOISWcjs = require('../chunk-STLTOISW.cjs');
|
|
150
151
|
|
|
151
152
|
|
|
152
153
|
|
|
153
154
|
|
|
154
155
|
|
|
155
156
|
|
|
156
|
-
var _chunkPXDIAYB6cjs = require('../chunk-PXDIAYB6.cjs');
|
|
157
157
|
|
|
158
158
|
|
|
159
159
|
|
|
@@ -227,7 +227,7 @@ var _chunkPXDIAYB6cjs = require('../chunk-PXDIAYB6.cjs');
|
|
|
227
227
|
|
|
228
228
|
|
|
229
229
|
|
|
230
|
-
var
|
|
230
|
+
var _chunkNIBFKXMDcjs = require('../chunk-NIBFKXMD.cjs');
|
|
231
231
|
|
|
232
232
|
|
|
233
233
|
|
|
@@ -241,7 +241,6 @@ var _chunk3K6HWEXZcjs = require('../chunk-3K6HWEXZ.cjs');
|
|
|
241
241
|
|
|
242
242
|
|
|
243
243
|
var _chunkYQGCPL5Xcjs = require('../chunk-YQGCPL5X.cjs');
|
|
244
|
-
require('../chunk-W5M3J7PV.cjs');
|
|
245
244
|
|
|
246
245
|
|
|
247
246
|
|
|
@@ -255,6 +254,7 @@ require('../chunk-W5M3J7PV.cjs');
|
|
|
255
254
|
|
|
256
255
|
|
|
257
256
|
var _chunk2VX55NFMcjs = require('../chunk-2VX55NFM.cjs');
|
|
257
|
+
require('../chunk-W5M3J7PV.cjs');
|
|
258
258
|
require('../chunk-474IQG74.cjs');
|
|
259
259
|
require('../chunk-XFM3OCHU.cjs');
|
|
260
260
|
|
|
@@ -498,4 +498,4 @@ require('../chunk-XFM3OCHU.cjs');
|
|
|
498
498
|
|
|
499
499
|
|
|
500
500
|
|
|
501
|
-
exports.BODY_SCATTER = _chunkJ5VQYK7Tcjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BrushstrokeCache = _chunkPXDIAYB6cjs.BrushstrokeCache; exports.CoverageMap = _chunkFQPUF2W2cjs.CoverageMap; exports.DEFAULT_BLENDER = _chunkFQPUF2W2cjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkFQPUF2W2cjs.DEFAULT_BRUSH; exports.DEFAULT_FLOW = _chunkJ5VQYK7Tcjs.DEFAULT_FLOW; exports.DEFAULT_MIXER = _chunkFQPUF2W2cjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkFQPUF2W2cjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_RETOUCH = _chunkEXB2EGBEcjs.DEFAULT_RETOUCH; exports.DEFAULT_SMUDGE = _chunkFQPUF2W2cjs.DEFAULT_SMUDGE; exports.DEFAULT_WET_PAPER = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PARAMS; exports.DRY_EPS = _chunkJ5VQYK7Tcjs.DRY_EPS; exports.DabWalker = _chunkFQPUF2W2cjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkFQPUF2W2cjs.EMPTY_MIXER_LOAD; exports.EX = _chunkJ5VQYK7Tcjs.EX; exports.EY = _chunkJ5VQYK7Tcjs.EY; exports.FLAG_ALIVE = _chunkJ5VQYK7Tcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkJ5VQYK7Tcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkJ5VQYK7Tcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkJ5VQYK7Tcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkJ5VQYK7Tcjs.FLAG_TOP; exports.FLAG_WET = _chunkJ5VQYK7Tcjs.FLAG_WET; exports.FLAT = _chunkJ5VQYK7Tcjs.FLAT; exports.FREE_INTERVAL = _chunkJ5VQYK7Tcjs.FREE_INTERVAL; exports.GRAIN_PATTERNS = _chunkPXDIAYB6cjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkPXDIAYB6cjs.GRAIN_TILE; exports.HIDE = _chunkJ5VQYK7Tcjs.HIDE; exports.IDENTITY_CLONE_TRANSFORM = _chunkEXB2EGBEcjs.IDENTITY_CLONE_TRANSFORM; exports.MASS_CHANNELS = _chunkJ5VQYK7Tcjs.MASS_CHANNELS; exports.MAX_BATCH = _chunkJ5VQYK7Tcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkFQPUF2W2cjs.MAX_BRUSH_SIZE; exports.MAX_TILT_ACCEL = _chunkJ5VQYK7Tcjs.MAX_TILT_ACCEL; exports.MAX_WET_LANES = _chunkJ5VQYK7Tcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkJ5VQYK7Tcjs.MAX_WET_SLOTS; exports.MIXER_DRAIN = _chunkFQPUF2W2cjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkFQPUF2W2cjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkFQPUF2W2cjs.MIXING_MODELS; exports.MixerStroke = _chunkFQPUF2W2cjs.MixerStroke; exports.OPP = _chunkJ5VQYK7Tcjs.OPP; exports.PAINT_COLOR_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkFQPUF2W2cjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkFQPUF2W2cjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkFQPUF2W2cjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkFQPUF2W2cjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAPER_CAPACITY = _chunkJ5VQYK7Tcjs.PAPER_CAPACITY; exports.PARAM = _chunkJ5VQYK7Tcjs.PARAM; exports.PARAM_FLOATS = _chunkJ5VQYK7Tcjs.PARAM_FLOATS; exports.PIGMENT_BANDS = _chunk2VX55NFMcjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkJ5VQYK7Tcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkJ5VQYK7Tcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunk2VX55NFMcjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkJ5VQYK7Tcjs.PLANE; exports.PLANE_BYTES = _chunkJ5VQYK7Tcjs.PLANE_BYTES; exports.P_D0 = _chunkJ5VQYK7Tcjs.P_D0; exports.P_DL = _chunkJ5VQYK7Tcjs.P_DL; exports.P_EDGE = _chunkJ5VQYK7Tcjs.P_EDGE; exports.P_FX = _chunkJ5VQYK7Tcjs.P_FX; exports.P_FY = _chunkJ5VQYK7Tcjs.P_FY; exports.P_H = _chunkJ5VQYK7Tcjs.P_H; exports.P_L = _chunkJ5VQYK7Tcjs.P_L; exports.P_P0 = _chunkJ5VQYK7Tcjs.P_P0; exports.P_RHO = _chunkJ5VQYK7Tcjs.P_RHO; exports.P_SW = _chunkJ5VQYK7Tcjs.P_SW; exports.P_UX = _chunkJ5VQYK7Tcjs.P_UX; exports.P_UY = _chunkJ5VQYK7Tcjs.P_UY; exports.PaintExchange = _chunkFQPUF2W2cjs.PaintExchange; exports.PaintGradientSampler = _chunkFQPUF2W2cjs.PaintGradientSampler; exports.PaintSourceError = _chunkFQPUF2W2cjs.PaintSourceError; exports.PaperGrain = _chunkPXDIAYB6cjs.PaperGrain; exports.RETOUCH_SAMPLES = _chunkEXB2EGBEcjs.RETOUCH_SAMPLES; exports.RegionPixelSource = _chunkEXB2EGBEcjs.RegionPixelSource; exports.RetouchDabStroke = _chunkEXB2EGBEcjs.RetouchDabStroke; exports.SET_PLANES = _chunkJ5VQYK7Tcjs.SET_PLANES; exports.SLOT_BYTES = _chunkJ5VQYK7Tcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkJ5VQYK7Tcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkJ5VQYK7Tcjs.SLOT_SIDE; exports.SPOT_HEAL_TYPES = _chunkEXB2EGBEcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkJ5VQYK7Tcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkJ5VQYK7Tcjs.STRIP; exports.SmudgeTip = _chunkFQPUF2W2cjs.SmudgeTip; exports.StrokeCoverage = _chunkFQPUF2W2cjs.StrokeCoverage; exports.TIP_GRADIENT_STEPS = _chunkFQPUF2W2cjs.TIP_GRADIENT_STEPS; exports.TONE_RANGES = _chunkEXB2EGBEcjs.TONE_RANGES; exports.TileMedium = _chunkFQPUF2W2cjs.TileMedium; exports.TilePixelSource = _chunkEXB2EGBEcjs.TilePixelSource; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.TransformedPixelSource = _chunkEXB2EGBEcjs.TransformedPixelSource; exports.U_MAX = _chunkJ5VQYK7Tcjs.U_MAX; exports.W9 = _chunkJ5VQYK7Tcjs.W9; exports.WET_FLOW_KINDS = _chunkJ5VQYK7Tcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkJ5VQYK7Tcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkJ5VQYK7Tcjs.WET_TILE; exports.WGSL_HALO = _chunkJ5VQYK7Tcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkJ5VQYK7Tcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkJ5VQYK7Tcjs.WGSL_STEP; exports.WetGpuEngine = _chunkJ5VQYK7Tcjs.WetGpuEngine; exports.WetMedium = _chunkJ5VQYK7Tcjs.WetMedium; exports.WetWorkerPool = _chunkJ5VQYK7Tcjs.WetWorkerPool; exports.WetWorld = _chunkJ5VQYK7Tcjs.WetWorld; exports.WetWorldError = _chunkJ5VQYK7Tcjs.WetWorldError; exports.addPaintGradientStop = _chunkFQPUF2W2cjs.addPaintGradientStop; exports.applyRetouchToTile = _chunkEXB2EGBEcjs.applyRetouchToTile; exports.applyStrokeToDeepTile = _chunkFQPUF2W2cjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkFQPUF2W2cjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunkEXB2EGBEcjs.applyToneToDeepTile; exports.bestOffset = _chunkBB6TR422cjs.bestOffset; exports.blendRadius = _chunkFQPUF2W2cjs.blendRadius; exports.blenderDab = _chunkFQPUF2W2cjs.blenderDab; exports.boxBlurPixels = _chunkEXB2EGBEcjs.boxBlurPixels; exports.brushstrokeDataUrl = _chunkPXDIAYB6cjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkPXDIAYB6cjs.brushstrokeKey; exports.brushstrokeSamples = _chunkPXDIAYB6cjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkPXDIAYB6cjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkPXDIAYB6cjs.brushstrokeToCanvas; exports.canShareMemory = _chunkJ5VQYK7Tcjs.canShareMemory; exports.cleanMixer = _chunkFQPUF2W2cjs.cleanMixer; exports.cloneSamplePoint = _chunkEXB2EGBEcjs.cloneSamplePoint; exports.contentAwareFill = _chunkBB6TR422cjs.contentAwareFill; exports.coverageTileCoord = _chunkFQPUF2W2cjs.coverageTileCoord; exports.createBlenderScratch = _chunkFQPUF2W2cjs.createBlenderScratch; exports.createPigment = _chunk2VX55NFMcjs.createPigment; exports.createPigmentTools = _chunkEXB2EGBEcjs.createPigmentTools; exports.createWetGpuEngine = _chunkJ5VQYK7Tcjs.createWetGpuEngine; exports.dabCoverage = _chunkFQPUF2W2cjs.dabCoverage; exports.dabRect = _chunkFQPUF2W2cjs.dabRect; exports.dexp = _chunkJ5VQYK7Tcjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.dlog = _chunkJ5VQYK7Tcjs.dlog; exports.dodgeBurn = _chunkEXB2EGBEcjs.dodgeBurn; exports.dodgeBurnCurve = _chunkEXB2EGBEcjs.dodgeBurnCurve; exports.dpow = _chunkJ5VQYK7Tcjs.dpow; exports.dsincos = _chunkJ5VQYK7Tcjs.dsincos; exports.edgeBits = _chunkJ5VQYK7Tcjs.edgeBits; exports.exchangeRates = _chunkFQPUF2W2cjs.exchangeRates; exports.expNeg = _chunkJ5VQYK7Tcjs.expNeg; exports.filmPixel = _chunkJ5VQYK7Tcjs.filmPixel; exports.filmReflectance = _chunkJ5VQYK7Tcjs.filmReflectance; exports.findWebGpu = _chunkJ5VQYK7Tcjs.findWebGpu; exports.flowField = _chunkJ5VQYK7Tcjs.flowField; exports.gradientDabColor = _chunkFQPUF2W2cjs.gradientDabColor; exports.grainCatch = _chunkPXDIAYB6cjs.grainCatch; exports.grainHeights = _chunkPXDIAYB6cjs.grainHeights; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.healPixels = _chunkEXB2EGBEcjs.healPixels; exports.hexToPaintRgb = _chunkFQPUF2W2cjs.hexToPaintRgb; exports.isBrushstrokeBrush = _chunkPXDIAYB6cjs.isBrushstrokeBrush; exports.isGradientPaint = _chunkFQPUF2W2cjs.isGradientPaint; exports.isIdentityCloneTransform = _chunkEXB2EGBEcjs.isIdentityCloneTransform; exports.latticeViscosity = _chunkJ5VQYK7Tcjs.latticeViscosity; exports.lerpPigment = _chunk2VX55NFMcjs.lerpPigment; exports.lerpPigmentInto = _chunk2VX55NFMcjs.lerpPigmentInto; exports.linearToSrgb8 = _chunkJ5VQYK7Tcjs.linearToSrgb8; exports.loadMixer = _chunkFQPUF2W2cjs.loadMixer; exports.loadWetKernel = _chunkJ5VQYK7Tcjs.loadWetKernel; exports.luma = _chunkEXB2EGBEcjs.luma; exports.maskBounds = _chunkBB6TR422cjs.maskBounds; exports.membraneFill = _chunkBB6TR422cjs.membraneFill; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPigments = _chunk2VX55NFMcjs.mixPigments; exports.mixerRates = _chunkFQPUF2W2cjs.mixerRates; exports.moveWetSnapshot = _chunkJ5VQYK7Tcjs.moveWetSnapshot; exports.normalizeBlender = _chunkFQPUF2W2cjs.normalizeBlender; exports.normalizeBrush = _chunkFQPUF2W2cjs.normalizeBrush; exports.normalizeFlow = _chunkJ5VQYK7Tcjs.normalizeFlow; exports.normalizeHexColor = _chunkFQPUF2W2cjs.normalizeHexColor; exports.normalizeMixer = _chunkFQPUF2W2cjs.normalizeMixer; exports.normalizeRetouch = _chunkEXB2EGBEcjs.normalizeRetouch; exports.normalizeSmudge = _chunkFQPUF2W2cjs.normalizeSmudge; exports.normalizeTilt = _chunkJ5VQYK7Tcjs.normalizeTilt; exports.normalizeWetParams = _chunkJ5VQYK7Tcjs.normalizeWetParams; exports.packWetParams = _chunkJ5VQYK7Tcjs.packWetParams; exports.paintGradientMappingFor = _chunkFQPUF2W2cjs.paintGradientMappingFor; exports.paintPathStroke = _chunkPXDIAYB6cjs.paintPathStroke; exports.paintSourceColor = _chunkFQPUF2W2cjs.paintSourceColor; exports.paintSourceCss = _chunkFQPUF2W2cjs.paintSourceCss; exports.parsePaintSource = _chunkFQPUF2W2cjs.parsePaintSource; exports.pathStrokeCoverage = _chunkPXDIAYB6cjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkPXDIAYB6cjs.pathStrokeDabs; exports.perDabStrength = _chunkEXB2EGBEcjs.perDabStrength; exports.pigmentColor = _chunkJ5VQYK7Tcjs.pigmentColor; exports.pigmentOf = _chunkJ5VQYK7Tcjs.pigmentOf; exports.pixelPigment = _chunkJ5VQYK7Tcjs.pixelPigment; exports.pointerPressure = _chunkEXB2EGBEcjs.pointerPressure; exports.pointerStrokeSample = _chunkEXB2EGBEcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunkEXB2EGBEcjs.pointerStrokeSamples; exports.put255 = _chunkFQPUF2W2cjs.put255; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.rasterizeDab = _chunkFQPUF2W2cjs.rasterizeDab; exports.readPaintSource = _chunkFQPUF2W2cjs.readPaintSource; exports.readSourceRegion = _chunkEXB2EGBEcjs.readSourceRegion; exports.reflectanceToRgb = _chunk2VX55NFMcjs.reflectanceToRgb; exports.removePaintGradientStop = _chunkFQPUF2W2cjs.removePaintGradientStop; exports.renderBrushstroke = _chunkPXDIAYB6cjs.renderBrushstroke; exports.resolvePaintGradient = _chunkFQPUF2W2cjs.resolvePaintGradient; exports.retouchFilter = _chunkEXB2EGBEcjs.retouchFilter; exports.reversePaintGradient = _chunkFQPUF2W2cjs.reversePaintGradient; exports.rgbToReflectance = _chunk2VX55NFMcjs.rgbToReflectance; exports.rgbaViewOfGrey = _chunkEXB2EGBEcjs.rgbaViewOfGrey; exports.saturationOf = _chunkEXB2EGBEcjs.saturationOf; exports.scalePaintGradient = _chunkFQPUF2W2cjs.scalePaintGradient; exports.seamlessClone = _chunkBB6TR422cjs.seamlessClone; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.setPigmentColor = _chunk2VX55NFMcjs.setPigmentColor; exports.shadeLightTile = _chunkJ5VQYK7Tcjs.shadeLightTile; exports.shadeTile = _chunkJ5VQYK7Tcjs.shadeTile; exports.smoothPoints = _chunkFQPUF2W2cjs.smoothPoints; exports.smudgeEffect = _chunkEXB2EGBEcjs.smudgeEffect; exports.solidPaint = _chunkFQPUF2W2cjs.solidPaint; exports.solveMembrane = _chunkBB6TR422cjs.solveMembrane; exports.sponge = _chunkEXB2EGBEcjs.sponge; exports.spongeEffect = _chunkEXB2EGBEcjs.spongeEffect; exports.spotHealPixels = _chunkEXB2EGBEcjs.spotHealPixels; exports.spotHealWindow = _chunkEXB2EGBEcjs.spotHealWindow; exports.srgbByteToLinear = _chunkJ5VQYK7Tcjs.srgbByteToLinear; exports.stepSlotTs = _chunkJ5VQYK7Tcjs.stepSlotTs; exports.strokeGrainCatch = _chunkPXDIAYB6cjs.strokeGrainCatch; exports.tipFalloff = _chunkFQPUF2W2cjs.tipFalloff; exports.tipReach = _chunkFQPUF2W2cjs.tipReach; exports.tipShape = _chunkFQPUF2W2cjs.tipShape; exports.toneOf = _chunkEXB2EGBEcjs.toneOf; exports.updatePaintGradientStop = _chunkFQPUF2W2cjs.updatePaintGradientStop; exports.walkDabs = _chunkFQPUF2W2cjs.walkDabs; exports.wetGpuSupport = _chunkJ5VQYK7Tcjs.wetGpuSupport; exports.wetSimdSupported = _chunkJ5VQYK7Tcjs.wetSimdSupported; exports.wetSupport = _chunkJ5VQYK7Tcjs.wetSupport;
|
|
501
|
+
exports.BODY_SCATTER = _chunkJ5VQYK7Tcjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BrushstrokeCache = _chunkSTLTOISWcjs.BrushstrokeCache; exports.CoverageMap = _chunkNIBFKXMDcjs.CoverageMap; exports.DEFAULT_BLENDER = _chunkNIBFKXMDcjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkNIBFKXMDcjs.DEFAULT_BRUSH; exports.DEFAULT_FLOW = _chunkJ5VQYK7Tcjs.DEFAULT_FLOW; exports.DEFAULT_MIXER = _chunkNIBFKXMDcjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkNIBFKXMDcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkNIBFKXMDcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_RETOUCH = _chunk62MFUHSIcjs.DEFAULT_RETOUCH; exports.DEFAULT_SMUDGE = _chunkNIBFKXMDcjs.DEFAULT_SMUDGE; exports.DEFAULT_WET_PAPER = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkJ5VQYK7Tcjs.DEFAULT_WET_PARAMS; exports.DRY_EPS = _chunkJ5VQYK7Tcjs.DRY_EPS; exports.DabWalker = _chunkNIBFKXMDcjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkNIBFKXMDcjs.EMPTY_MIXER_LOAD; exports.EX = _chunkJ5VQYK7Tcjs.EX; exports.EY = _chunkJ5VQYK7Tcjs.EY; exports.FLAG_ALIVE = _chunkJ5VQYK7Tcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkJ5VQYK7Tcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkJ5VQYK7Tcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkJ5VQYK7Tcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkJ5VQYK7Tcjs.FLAG_TOP; exports.FLAG_WET = _chunkJ5VQYK7Tcjs.FLAG_WET; exports.FLAT = _chunkJ5VQYK7Tcjs.FLAT; exports.FREE_INTERVAL = _chunkJ5VQYK7Tcjs.FREE_INTERVAL; exports.GRAIN_PATTERNS = _chunkNIBFKXMDcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkNIBFKXMDcjs.GRAIN_TILE; exports.HIDE = _chunkJ5VQYK7Tcjs.HIDE; exports.IDENTITY_CLONE_TRANSFORM = _chunk62MFUHSIcjs.IDENTITY_CLONE_TRANSFORM; exports.MASS_CHANNELS = _chunkJ5VQYK7Tcjs.MASS_CHANNELS; exports.MAX_BATCH = _chunkJ5VQYK7Tcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkNIBFKXMDcjs.MAX_BRUSH_SIZE; exports.MAX_TILT_ACCEL = _chunkJ5VQYK7Tcjs.MAX_TILT_ACCEL; exports.MAX_WET_LANES = _chunkJ5VQYK7Tcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkJ5VQYK7Tcjs.MAX_WET_SLOTS; exports.MIXER_DRAIN = _chunkNIBFKXMDcjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkNIBFKXMDcjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkNIBFKXMDcjs.MIXING_MODELS; exports.MixerStroke = _chunkNIBFKXMDcjs.MixerStroke; exports.OPP = _chunkJ5VQYK7Tcjs.OPP; exports.PAINT_COLOR_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkNIBFKXMDcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkNIBFKXMDcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkNIBFKXMDcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAPER_CAPACITY = _chunkJ5VQYK7Tcjs.PAPER_CAPACITY; exports.PARAM = _chunkJ5VQYK7Tcjs.PARAM; exports.PARAM_FLOATS = _chunkJ5VQYK7Tcjs.PARAM_FLOATS; exports.PIGMENT_BANDS = _chunk2VX55NFMcjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkJ5VQYK7Tcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkJ5VQYK7Tcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunk2VX55NFMcjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkJ5VQYK7Tcjs.PLANE; exports.PLANE_BYTES = _chunkJ5VQYK7Tcjs.PLANE_BYTES; exports.P_D0 = _chunkJ5VQYK7Tcjs.P_D0; exports.P_DL = _chunkJ5VQYK7Tcjs.P_DL; exports.P_EDGE = _chunkJ5VQYK7Tcjs.P_EDGE; exports.P_FX = _chunkJ5VQYK7Tcjs.P_FX; exports.P_FY = _chunkJ5VQYK7Tcjs.P_FY; exports.P_H = _chunkJ5VQYK7Tcjs.P_H; exports.P_L = _chunkJ5VQYK7Tcjs.P_L; exports.P_P0 = _chunkJ5VQYK7Tcjs.P_P0; exports.P_RHO = _chunkJ5VQYK7Tcjs.P_RHO; exports.P_SW = _chunkJ5VQYK7Tcjs.P_SW; exports.P_UX = _chunkJ5VQYK7Tcjs.P_UX; exports.P_UY = _chunkJ5VQYK7Tcjs.P_UY; exports.PaintExchange = _chunkNIBFKXMDcjs.PaintExchange; exports.PaintGradientSampler = _chunkNIBFKXMDcjs.PaintGradientSampler; exports.PaintSourceError = _chunkNIBFKXMDcjs.PaintSourceError; exports.PaperGrain = _chunkNIBFKXMDcjs.PaperGrain; exports.RETOUCH_SAMPLES = _chunk62MFUHSIcjs.RETOUCH_SAMPLES; exports.RegionPixelSource = _chunk62MFUHSIcjs.RegionPixelSource; exports.RetouchDabStroke = _chunk62MFUHSIcjs.RetouchDabStroke; exports.SET_PLANES = _chunkJ5VQYK7Tcjs.SET_PLANES; exports.SLOT_BYTES = _chunkJ5VQYK7Tcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkJ5VQYK7Tcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkJ5VQYK7Tcjs.SLOT_SIDE; exports.SPOT_HEAL_TYPES = _chunk62MFUHSIcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkJ5VQYK7Tcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkJ5VQYK7Tcjs.STRIP; exports.SmudgeTip = _chunkNIBFKXMDcjs.SmudgeTip; exports.StrokeCoverage = _chunkNIBFKXMDcjs.StrokeCoverage; exports.TIP_GRADIENT_STEPS = _chunkNIBFKXMDcjs.TIP_GRADIENT_STEPS; exports.TONE_RANGES = _chunk62MFUHSIcjs.TONE_RANGES; exports.TileMedium = _chunkNIBFKXMDcjs.TileMedium; exports.TilePixelSource = _chunk62MFUHSIcjs.TilePixelSource; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.TransformedPixelSource = _chunk62MFUHSIcjs.TransformedPixelSource; exports.U_MAX = _chunkJ5VQYK7Tcjs.U_MAX; exports.W9 = _chunkJ5VQYK7Tcjs.W9; exports.WET_FLOW_KINDS = _chunkJ5VQYK7Tcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkJ5VQYK7Tcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkJ5VQYK7Tcjs.WET_TILE; exports.WGSL_HALO = _chunkJ5VQYK7Tcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkJ5VQYK7Tcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkJ5VQYK7Tcjs.WGSL_STEP; exports.WetGpuEngine = _chunkJ5VQYK7Tcjs.WetGpuEngine; exports.WetMedium = _chunkJ5VQYK7Tcjs.WetMedium; exports.WetWorkerPool = _chunkJ5VQYK7Tcjs.WetWorkerPool; exports.WetWorld = _chunkJ5VQYK7Tcjs.WetWorld; exports.WetWorldError = _chunkJ5VQYK7Tcjs.WetWorldError; exports.addPaintGradientStop = _chunkNIBFKXMDcjs.addPaintGradientStop; exports.applyRetouchToTile = _chunk62MFUHSIcjs.applyRetouchToTile; exports.applyStrokeToDeepTile = _chunkNIBFKXMDcjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkNIBFKXMDcjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunk62MFUHSIcjs.applyToneToDeepTile; exports.bestOffset = _chunkBB6TR422cjs.bestOffset; exports.blendRadius = _chunkNIBFKXMDcjs.blendRadius; exports.blenderDab = _chunkNIBFKXMDcjs.blenderDab; exports.boxBlurPixels = _chunk62MFUHSIcjs.boxBlurPixels; exports.brushstrokeDataUrl = _chunkSTLTOISWcjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkSTLTOISWcjs.brushstrokeKey; exports.brushstrokeSamples = _chunkSTLTOISWcjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkSTLTOISWcjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkSTLTOISWcjs.brushstrokeToCanvas; exports.canShareMemory = _chunkJ5VQYK7Tcjs.canShareMemory; exports.cleanMixer = _chunkNIBFKXMDcjs.cleanMixer; exports.cloneSamplePoint = _chunk62MFUHSIcjs.cloneSamplePoint; exports.contentAwareFill = _chunkBB6TR422cjs.contentAwareFill; exports.coverageTileCoord = _chunkNIBFKXMDcjs.coverageTileCoord; exports.createBlenderScratch = _chunkNIBFKXMDcjs.createBlenderScratch; exports.createPigment = _chunk2VX55NFMcjs.createPigment; exports.createPigmentTools = _chunk62MFUHSIcjs.createPigmentTools; exports.createWetGpuEngine = _chunkJ5VQYK7Tcjs.createWetGpuEngine; exports.dabCoverage = _chunkNIBFKXMDcjs.dabCoverage; exports.dabRect = _chunkNIBFKXMDcjs.dabRect; exports.dexp = _chunkJ5VQYK7Tcjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.dlog = _chunkJ5VQYK7Tcjs.dlog; exports.dodgeBurn = _chunk62MFUHSIcjs.dodgeBurn; exports.dodgeBurnCurve = _chunk62MFUHSIcjs.dodgeBurnCurve; exports.dpow = _chunkJ5VQYK7Tcjs.dpow; exports.dsincos = _chunkJ5VQYK7Tcjs.dsincos; exports.edgeBits = _chunkJ5VQYK7Tcjs.edgeBits; exports.exchangeRates = _chunkNIBFKXMDcjs.exchangeRates; exports.expNeg = _chunkJ5VQYK7Tcjs.expNeg; exports.filmPixel = _chunkJ5VQYK7Tcjs.filmPixel; exports.filmReflectance = _chunkJ5VQYK7Tcjs.filmReflectance; exports.findWebGpu = _chunkJ5VQYK7Tcjs.findWebGpu; exports.flowField = _chunkJ5VQYK7Tcjs.flowField; exports.gradientDabColor = _chunkNIBFKXMDcjs.gradientDabColor; exports.grainCatch = _chunkNIBFKXMDcjs.grainCatch; exports.grainHeights = _chunkNIBFKXMDcjs.grainHeights; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.healPixels = _chunk62MFUHSIcjs.healPixels; exports.hexToPaintRgb = _chunkNIBFKXMDcjs.hexToPaintRgb; exports.isBrushstrokeBrush = _chunkSTLTOISWcjs.isBrushstrokeBrush; exports.isGradientPaint = _chunkNIBFKXMDcjs.isGradientPaint; exports.isIdentityCloneTransform = _chunk62MFUHSIcjs.isIdentityCloneTransform; exports.latticeViscosity = _chunkJ5VQYK7Tcjs.latticeViscosity; exports.lerpPigment = _chunk2VX55NFMcjs.lerpPigment; exports.lerpPigmentInto = _chunk2VX55NFMcjs.lerpPigmentInto; exports.linearToSrgb8 = _chunkJ5VQYK7Tcjs.linearToSrgb8; exports.loadMixer = _chunkNIBFKXMDcjs.loadMixer; exports.loadWetKernel = _chunkJ5VQYK7Tcjs.loadWetKernel; exports.luma = _chunk62MFUHSIcjs.luma; exports.maskBounds = _chunkBB6TR422cjs.maskBounds; exports.membraneFill = _chunkBB6TR422cjs.membraneFill; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPigments = _chunk2VX55NFMcjs.mixPigments; exports.mixerRates = _chunkNIBFKXMDcjs.mixerRates; exports.moveWetSnapshot = _chunkJ5VQYK7Tcjs.moveWetSnapshot; exports.normalizeBlender = _chunkNIBFKXMDcjs.normalizeBlender; exports.normalizeBrush = _chunkNIBFKXMDcjs.normalizeBrush; exports.normalizeFlow = _chunkJ5VQYK7Tcjs.normalizeFlow; exports.normalizeHexColor = _chunkNIBFKXMDcjs.normalizeHexColor; exports.normalizeMixer = _chunkNIBFKXMDcjs.normalizeMixer; exports.normalizeRetouch = _chunk62MFUHSIcjs.normalizeRetouch; exports.normalizeSmudge = _chunkNIBFKXMDcjs.normalizeSmudge; exports.normalizeTilt = _chunkJ5VQYK7Tcjs.normalizeTilt; exports.normalizeWetParams = _chunkJ5VQYK7Tcjs.normalizeWetParams; exports.packWetParams = _chunkJ5VQYK7Tcjs.packWetParams; exports.paintGradientMappingFor = _chunkNIBFKXMDcjs.paintGradientMappingFor; exports.paintPathStroke = _chunkSTLTOISWcjs.paintPathStroke; exports.paintSourceColor = _chunkNIBFKXMDcjs.paintSourceColor; exports.paintSourceCss = _chunkNIBFKXMDcjs.paintSourceCss; exports.parsePaintSource = _chunkNIBFKXMDcjs.parsePaintSource; exports.pathStrokeCoverage = _chunkSTLTOISWcjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkSTLTOISWcjs.pathStrokeDabs; exports.perDabStrength = _chunk62MFUHSIcjs.perDabStrength; exports.pigmentColor = _chunkJ5VQYK7Tcjs.pigmentColor; exports.pigmentOf = _chunkJ5VQYK7Tcjs.pigmentOf; exports.pixelPigment = _chunkJ5VQYK7Tcjs.pixelPigment; exports.pointerPressure = _chunk62MFUHSIcjs.pointerPressure; exports.pointerStrokeSample = _chunk62MFUHSIcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunk62MFUHSIcjs.pointerStrokeSamples; exports.put255 = _chunkNIBFKXMDcjs.put255; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.rasterizeDab = _chunkNIBFKXMDcjs.rasterizeDab; exports.readPaintSource = _chunkNIBFKXMDcjs.readPaintSource; exports.readSourceRegion = _chunk62MFUHSIcjs.readSourceRegion; exports.reflectanceToRgb = _chunk2VX55NFMcjs.reflectanceToRgb; exports.removePaintGradientStop = _chunkNIBFKXMDcjs.removePaintGradientStop; exports.renderBrushstroke = _chunkSTLTOISWcjs.renderBrushstroke; exports.resolvePaintGradient = _chunkNIBFKXMDcjs.resolvePaintGradient; exports.retouchFilter = _chunk62MFUHSIcjs.retouchFilter; exports.reversePaintGradient = _chunkNIBFKXMDcjs.reversePaintGradient; exports.rgbToReflectance = _chunk2VX55NFMcjs.rgbToReflectance; exports.rgbaViewOfGrey = _chunk62MFUHSIcjs.rgbaViewOfGrey; exports.saturationOf = _chunk62MFUHSIcjs.saturationOf; exports.scalePaintGradient = _chunkNIBFKXMDcjs.scalePaintGradient; exports.seamlessClone = _chunkBB6TR422cjs.seamlessClone; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.setPigmentColor = _chunk2VX55NFMcjs.setPigmentColor; exports.shadeLightTile = _chunkJ5VQYK7Tcjs.shadeLightTile; exports.shadeTile = _chunkJ5VQYK7Tcjs.shadeTile; exports.smoothPoints = _chunkNIBFKXMDcjs.smoothPoints; exports.smudgeEffect = _chunk62MFUHSIcjs.smudgeEffect; exports.solidPaint = _chunkNIBFKXMDcjs.solidPaint; exports.solveMembrane = _chunkBB6TR422cjs.solveMembrane; exports.sponge = _chunk62MFUHSIcjs.sponge; exports.spongeEffect = _chunk62MFUHSIcjs.spongeEffect; exports.spotHealPixels = _chunk62MFUHSIcjs.spotHealPixels; exports.spotHealWindow = _chunk62MFUHSIcjs.spotHealWindow; exports.srgbByteToLinear = _chunkJ5VQYK7Tcjs.srgbByteToLinear; exports.stepSlotTs = _chunkJ5VQYK7Tcjs.stepSlotTs; exports.strokeGrainCatch = _chunkNIBFKXMDcjs.strokeGrainCatch; exports.tipFalloff = _chunkNIBFKXMDcjs.tipFalloff; exports.tipReach = _chunkNIBFKXMDcjs.tipReach; exports.tipShape = _chunkNIBFKXMDcjs.tipShape; exports.toneOf = _chunk62MFUHSIcjs.toneOf; exports.updatePaintGradientStop = _chunkNIBFKXMDcjs.updatePaintGradientStop; exports.walkDabs = _chunkNIBFKXMDcjs.walkDabs; exports.wetGpuSupport = _chunkJ5VQYK7Tcjs.wetGpuSupport; exports.wetSimdSupported = _chunkJ5VQYK7Tcjs.wetSimdSupported; exports.wetSupport = _chunkJ5VQYK7Tcjs.wetSupport;
|
package/dist/paint/index.js
CHANGED
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
spotHealPixels,
|
|
34
34
|
spotHealWindow,
|
|
35
35
|
toneOf
|
|
36
|
-
} from "../chunk-
|
|
36
|
+
} from "../chunk-HVO6XCI4.js";
|
|
37
37
|
import {
|
|
38
38
|
bestOffset,
|
|
39
39
|
contentAwareFill,
|
|
@@ -137,23 +137,17 @@ import {
|
|
|
137
137
|
} from "../chunk-GSTSZPSR.js";
|
|
138
138
|
import {
|
|
139
139
|
BrushstrokeCache,
|
|
140
|
-
GRAIN_PATTERNS,
|
|
141
|
-
GRAIN_TILE,
|
|
142
|
-
PaperGrain,
|
|
143
140
|
brushstrokeDataUrl,
|
|
144
141
|
brushstrokeKey,
|
|
145
142
|
brushstrokeSamples,
|
|
146
143
|
brushstrokeStrokeOptions,
|
|
147
144
|
brushstrokeToCanvas,
|
|
148
|
-
grainCatch,
|
|
149
|
-
grainHeights,
|
|
150
145
|
isBrushstrokeBrush,
|
|
151
146
|
paintPathStroke,
|
|
152
147
|
pathStrokeCoverage,
|
|
153
148
|
pathStrokeDabs,
|
|
154
|
-
renderBrushstroke
|
|
155
|
-
|
|
156
|
-
} from "../chunk-TXFWZ5ZJ.js";
|
|
149
|
+
renderBrushstroke
|
|
150
|
+
} from "../chunk-W6JDUXP3.js";
|
|
157
151
|
import {
|
|
158
152
|
CoverageMap,
|
|
159
153
|
DEFAULT_BLENDER,
|
|
@@ -164,6 +158,8 @@ import {
|
|
|
164
158
|
DEFAULT_SMUDGE,
|
|
165
159
|
DabWalker,
|
|
166
160
|
EMPTY_MIXER_LOAD,
|
|
161
|
+
GRAIN_PATTERNS,
|
|
162
|
+
GRAIN_TILE,
|
|
167
163
|
MAX_BRUSH_SIZE,
|
|
168
164
|
MIXER_DRAIN,
|
|
169
165
|
MIXER_PICKUP_RATE,
|
|
@@ -184,6 +180,7 @@ import {
|
|
|
184
180
|
PaintExchange,
|
|
185
181
|
PaintGradientSampler,
|
|
186
182
|
PaintSourceError,
|
|
183
|
+
PaperGrain,
|
|
187
184
|
SmudgeTip,
|
|
188
185
|
StrokeCoverage,
|
|
189
186
|
TIP_GRADIENT_STEPS,
|
|
@@ -200,6 +197,8 @@ import {
|
|
|
200
197
|
dabRect,
|
|
201
198
|
exchangeRates,
|
|
202
199
|
gradientDabColor,
|
|
200
|
+
grainCatch,
|
|
201
|
+
grainHeights,
|
|
203
202
|
hexToPaintRgb,
|
|
204
203
|
isGradientPaint,
|
|
205
204
|
loadMixer,
|
|
@@ -222,12 +221,13 @@ import {
|
|
|
222
221
|
scalePaintGradient,
|
|
223
222
|
smoothPoints,
|
|
224
223
|
solidPaint,
|
|
224
|
+
strokeGrainCatch,
|
|
225
225
|
tipFalloff,
|
|
226
226
|
tipReach,
|
|
227
227
|
tipShape,
|
|
228
228
|
updatePaintGradientStop,
|
|
229
229
|
walkDabs
|
|
230
|
-
} from "../chunk-
|
|
230
|
+
} from "../chunk-ACTHSQOI.js";
|
|
231
231
|
import {
|
|
232
232
|
TileableNoise,
|
|
233
233
|
hash2,
|
|
@@ -241,7 +241,6 @@ import {
|
|
|
241
241
|
BRUSHSTROKE_MIN_SCALE,
|
|
242
242
|
brushstrokeScaleBucket
|
|
243
243
|
} from "../chunk-ODBT55Q7.js";
|
|
244
|
-
import "../chunk-OTTT5N3K.js";
|
|
245
244
|
import {
|
|
246
245
|
PIGMENT_BANDS,
|
|
247
246
|
PIGMENT_LAMBDA_MIN,
|
|
@@ -255,6 +254,7 @@ import {
|
|
|
255
254
|
rgbToReflectance,
|
|
256
255
|
setPigmentColor
|
|
257
256
|
} from "../chunk-IRSTHLQQ.js";
|
|
257
|
+
import "../chunk-OTTT5N3K.js";
|
|
258
258
|
import "../chunk-HVVR5PZW.js";
|
|
259
259
|
import "../chunk-QGHEDC7B.js";
|
|
260
260
|
export {
|
|
@@ -2,17 +2,27 @@
|
|
|
2
2
|
* The shared brush library's agent tools for a paint editor (`createPaintBrushLibraryToolProvider`),
|
|
3
3
|
* with `preview_brush` painted by this editor.
|
|
4
4
|
*/
|
|
5
|
+
import type { BrushLibrary } from '../brushes/library.cjs';
|
|
6
|
+
import type { StickerArtLookup } from './sticker-art.cjs';
|
|
5
7
|
import { type BrushLibraryToolProviderOptions, type BrushPreviewRenderer } from '../brushes/tools.cjs';
|
|
6
8
|
import type { AgentToolProvider } from '../tools/registry.cjs';
|
|
7
9
|
import type { PaintEditorController } from './controller.cjs';
|
|
8
10
|
import { type PaperSettings } from './paper.cjs';
|
|
9
11
|
export type PaintBrushLibraryToolProviderOptions = Omit<BrushLibraryToolProviderOptions, 'renderPreview'>;
|
|
12
|
+
/** Where a preview renderer finds a brush's image sources (and sticker art). */
|
|
13
|
+
export interface PaintBrushPreviewOptions {
|
|
14
|
+
/** Image sources are read from this library before each preview that needs them. */
|
|
15
|
+
library?: Pick<BrushLibrary, 'getSource'>;
|
|
16
|
+
/** Art for sticker stamp tips (and anything else not in the library), read on every call. */
|
|
17
|
+
stampArt?: () => StickerArtLookup | undefined;
|
|
18
|
+
}
|
|
10
19
|
/**
|
|
11
20
|
* A brush preview renderer (`BrushPreviewRenderer`, as `preview_brush` and `BrushLibraryEditor`
|
|
12
21
|
* take) that paints the test stroke with the paint engine on `paper` (read on every call; default
|
|
13
|
-
* the default paper). Any brush the paint editor renders, so also the image editor's.
|
|
22
|
+
* the default paper). Any brush the paint editor renders, so also the image editor's. With
|
|
23
|
+
* `options.library`, image tips and image grain are drawn from its sources.
|
|
14
24
|
*/
|
|
15
|
-
export declare function paintBrushPreviewRenderer(paper?: () => PaperSettings): BrushPreviewRenderer;
|
|
25
|
+
export declare function paintBrushPreviewRenderer(paper?: () => PaperSettings, options?: PaintBrushPreviewOptions): BrushPreviewRenderer;
|
|
16
26
|
/**
|
|
17
27
|
* The brush library tools for a paint editor (`@pixerate/editor/brushes`' provider on the
|
|
18
28
|
* editor's `brushLibrary`, `PAINT_PROFILE`), with `preview_brush` painting the test stroke on the
|
|
@@ -2,17 +2,27 @@
|
|
|
2
2
|
* The shared brush library's agent tools for a paint editor (`createPaintBrushLibraryToolProvider`),
|
|
3
3
|
* with `preview_brush` painted by this editor.
|
|
4
4
|
*/
|
|
5
|
+
import type { BrushLibrary } from '../brushes/library.js';
|
|
6
|
+
import type { StickerArtLookup } from './sticker-art.js';
|
|
5
7
|
import { type BrushLibraryToolProviderOptions, type BrushPreviewRenderer } from '../brushes/tools.js';
|
|
6
8
|
import type { AgentToolProvider } from '../tools/registry.js';
|
|
7
9
|
import type { PaintEditorController } from './controller.js';
|
|
8
10
|
import { type PaperSettings } from './paper.js';
|
|
9
11
|
export type PaintBrushLibraryToolProviderOptions = Omit<BrushLibraryToolProviderOptions, 'renderPreview'>;
|
|
12
|
+
/** Where a preview renderer finds a brush's image sources (and sticker art). */
|
|
13
|
+
export interface PaintBrushPreviewOptions {
|
|
14
|
+
/** Image sources are read from this library before each preview that needs them. */
|
|
15
|
+
library?: Pick<BrushLibrary, 'getSource'>;
|
|
16
|
+
/** Art for sticker stamp tips (and anything else not in the library), read on every call. */
|
|
17
|
+
stampArt?: () => StickerArtLookup | undefined;
|
|
18
|
+
}
|
|
10
19
|
/**
|
|
11
20
|
* A brush preview renderer (`BrushPreviewRenderer`, as `preview_brush` and `BrushLibraryEditor`
|
|
12
21
|
* take) that paints the test stroke with the paint engine on `paper` (read on every call; default
|
|
13
|
-
* the default paper). Any brush the paint editor renders, so also the image editor's.
|
|
22
|
+
* the default paper). Any brush the paint editor renders, so also the image editor's. With
|
|
23
|
+
* `options.library`, image tips and image grain are drawn from its sources.
|
|
14
24
|
*/
|
|
15
|
-
export declare function paintBrushPreviewRenderer(paper?: () => PaperSettings): BrushPreviewRenderer;
|
|
25
|
+
export declare function paintBrushPreviewRenderer(paper?: () => PaperSettings, options?: PaintBrushPreviewOptions): BrushPreviewRenderer;
|
|
16
26
|
/**
|
|
17
27
|
* The brush library tools for a paint editor (`@pixerate/editor/brushes`' provider on the
|
|
18
28
|
* editor's `brushLibrary`, `PAINT_PROFILE`), with `preview_brush` painting the test stroke on the
|
|
@@ -156,7 +156,31 @@ export interface BrushDynamics {
|
|
|
156
156
|
opacityJitter: number;
|
|
157
157
|
/** Random offset across the stroke in diameters, 0..4 (default 0). */
|
|
158
158
|
scatter: number;
|
|
159
|
+
/** Dabs laid at each spacing step, 1..16, each with its own jitter (missing: 1). */
|
|
160
|
+
count?: number;
|
|
161
|
+
/** Mirror each dab at random across these axes (missing: `none`). */
|
|
162
|
+
flip?: DabFlip;
|
|
159
163
|
}
|
|
164
|
+
/** Random mirroring of dabs. */
|
|
165
|
+
export type DabFlip = 'none' | 'x' | 'y' | 'xy';
|
|
166
|
+
export declare const DAB_FLIPS: readonly DabFlip[];
|
|
167
|
+
export type TipGrainMode = 'moving' | 'texturised';
|
|
168
|
+
export declare const TIP_GRAIN_MODES: readonly TipGrainMode[];
|
|
169
|
+
/** Texture inside the tip (dab engines): each dab's coverage is multiplied by it. */
|
|
170
|
+
export interface TipGrainSettings {
|
|
171
|
+
/** A grain pattern (`rough`, `canvas`…) or an image source `source:<id>`. */
|
|
172
|
+
source: string;
|
|
173
|
+
/** `texturised` (default): fixed to the canvas; `moving`: rolls along with the tip. */
|
|
174
|
+
mode: TipGrainMode;
|
|
175
|
+
/** 0.05..20: 1 the source's own size (default 1). */
|
|
176
|
+
scale: number;
|
|
177
|
+
/** 0..1: how much it takes out of the dab (default 0.6). */
|
|
178
|
+
depth: number;
|
|
179
|
+
/** 0..3 around the middle (default 1). */
|
|
180
|
+
contrast: number;
|
|
181
|
+
invert: boolean;
|
|
182
|
+
}
|
|
183
|
+
export declare const DEFAULT_TIP_GRAIN: Readonly<Omit<TipGrainSettings, 'source'>>;
|
|
160
184
|
export declare const DEFAULT_DYNAMICS: Readonly<BrushDynamics>;
|
|
161
185
|
export interface PaintBrush {
|
|
162
186
|
/** Library id (lowercase letters, digits and dashes). */
|
|
@@ -202,6 +226,8 @@ export interface PaintBrush {
|
|
|
202
226
|
stamp: string | null;
|
|
203
227
|
/** Dab engine: spray marks. Each dab lays a seeded scatter of droplets across the tip; `null` (default): one mark per dab. */
|
|
204
228
|
spray: SpraySettings | null;
|
|
229
|
+
/** Dab engines: texture inside the tip (missing: none). Recorded with the stroke, source ref included, so replays match. */
|
|
230
|
+
tipGrain?: TipGrainSettings;
|
|
205
231
|
/**
|
|
206
232
|
* The brush's own gradient paint (`@pixerate/editor/paint` `PaintGradientSource`), used instead
|
|
207
233
|
* of the editor's paint; `null` (default): the editor's paint. Stops may be `paint` / `secondary`
|
|
@@ -228,8 +254,10 @@ export interface SpraySettings {
|
|
|
228
254
|
size: number;
|
|
229
255
|
}
|
|
230
256
|
export declare const DEFAULT_SPRAY: Readonly<SpraySettings>;
|
|
231
|
-
export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'spray'>> & {
|
|
257
|
+
export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'spray' | 'tipGrain'>> & {
|
|
232
258
|
spray?: Partial<SpraySettings> | null;
|
|
259
|
+
/** Tip grain (`null` removes it). */
|
|
260
|
+
tipGrain?: Partial<TipGrainSettings> | null;
|
|
233
261
|
light?: Partial<LightSettings>;
|
|
234
262
|
/** A gradient (or `null` for the editor's paint); a plain colour source clears it. */
|
|
235
263
|
paint?: PaintSource | null;
|
|
@@ -156,7 +156,31 @@ export interface BrushDynamics {
|
|
|
156
156
|
opacityJitter: number;
|
|
157
157
|
/** Random offset across the stroke in diameters, 0..4 (default 0). */
|
|
158
158
|
scatter: number;
|
|
159
|
+
/** Dabs laid at each spacing step, 1..16, each with its own jitter (missing: 1). */
|
|
160
|
+
count?: number;
|
|
161
|
+
/** Mirror each dab at random across these axes (missing: `none`). */
|
|
162
|
+
flip?: DabFlip;
|
|
159
163
|
}
|
|
164
|
+
/** Random mirroring of dabs. */
|
|
165
|
+
export type DabFlip = 'none' | 'x' | 'y' | 'xy';
|
|
166
|
+
export declare const DAB_FLIPS: readonly DabFlip[];
|
|
167
|
+
export type TipGrainMode = 'moving' | 'texturised';
|
|
168
|
+
export declare const TIP_GRAIN_MODES: readonly TipGrainMode[];
|
|
169
|
+
/** Texture inside the tip (dab engines): each dab's coverage is multiplied by it. */
|
|
170
|
+
export interface TipGrainSettings {
|
|
171
|
+
/** A grain pattern (`rough`, `canvas`…) or an image source `source:<id>`. */
|
|
172
|
+
source: string;
|
|
173
|
+
/** `texturised` (default): fixed to the canvas; `moving`: rolls along with the tip. */
|
|
174
|
+
mode: TipGrainMode;
|
|
175
|
+
/** 0.05..20: 1 the source's own size (default 1). */
|
|
176
|
+
scale: number;
|
|
177
|
+
/** 0..1: how much it takes out of the dab (default 0.6). */
|
|
178
|
+
depth: number;
|
|
179
|
+
/** 0..3 around the middle (default 1). */
|
|
180
|
+
contrast: number;
|
|
181
|
+
invert: boolean;
|
|
182
|
+
}
|
|
183
|
+
export declare const DEFAULT_TIP_GRAIN: Readonly<Omit<TipGrainSettings, 'source'>>;
|
|
160
184
|
export declare const DEFAULT_DYNAMICS: Readonly<BrushDynamics>;
|
|
161
185
|
export interface PaintBrush {
|
|
162
186
|
/** Library id (lowercase letters, digits and dashes). */
|
|
@@ -202,6 +226,8 @@ export interface PaintBrush {
|
|
|
202
226
|
stamp: string | null;
|
|
203
227
|
/** Dab engine: spray marks. Each dab lays a seeded scatter of droplets across the tip; `null` (default): one mark per dab. */
|
|
204
228
|
spray: SpraySettings | null;
|
|
229
|
+
/** Dab engines: texture inside the tip (missing: none). Recorded with the stroke, source ref included, so replays match. */
|
|
230
|
+
tipGrain?: TipGrainSettings;
|
|
205
231
|
/**
|
|
206
232
|
* The brush's own gradient paint (`@pixerate/editor/paint` `PaintGradientSource`), used instead
|
|
207
233
|
* of the editor's paint; `null` (default): the editor's paint. Stops may be `paint` / `secondary`
|
|
@@ -228,8 +254,10 @@ export interface SpraySettings {
|
|
|
228
254
|
size: number;
|
|
229
255
|
}
|
|
230
256
|
export declare const DEFAULT_SPRAY: Readonly<SpraySettings>;
|
|
231
|
-
export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'spray'>> & {
|
|
257
|
+
export type PaintBrushInput = Partial<Omit<PaintBrush, 'tip' | 'dynamics' | 'mixer' | 'behavior' | 'blender' | 'smudge' | 'wet' | 'impasto' | 'particle' | 'bristle' | 'sticker' | 'paint' | 'light' | 'spray' | 'tipGrain'>> & {
|
|
232
258
|
spray?: Partial<SpraySettings> | null;
|
|
259
|
+
/** Tip grain (`null` removes it). */
|
|
260
|
+
tipGrain?: Partial<TipGrainSettings> | null;
|
|
233
261
|
light?: Partial<LightSettings>;
|
|
234
262
|
/** A gradient (or `null` for the editor's paint); a plain colour source clears it. */
|
|
235
263
|
paint?: PaintSource | null;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brush sources the paint engine can draw with: the brush library's and the open painting's, by
|
|
3
|
+
* id. Strokes read them synchronously, as they read sticker art (`StickerArtLookup`): a stamp tip
|
|
4
|
+
* `source:<id>` and an image tip grain both take the source's mask as alpha. Each mask is decoded
|
|
5
|
+
* the first time it is drawn.
|
|
6
|
+
*/
|
|
7
|
+
import { type BrushSource } from '../brushes/sources.cjs';
|
|
8
|
+
import type { StickerArtLookup } from './sticker-art.cjs';
|
|
9
|
+
export declare class BrushSourceArtCache {
|
|
10
|
+
private readonly sources;
|
|
11
|
+
private readonly art;
|
|
12
|
+
/** Adds or replaces sources (a replaced image is decoded again). */
|
|
13
|
+
set(sources: Iterable<BrushSource>): void;
|
|
14
|
+
/** The source of an id, if known. */
|
|
15
|
+
source(id: string): BrushSource | undefined;
|
|
16
|
+
/** Every known source. */
|
|
17
|
+
all(): BrushSource[];
|
|
18
|
+
/** The art of a `source:<id>` ref (alpha = the mask), or `undefined` when the source is unknown or its image can't be read. */
|
|
19
|
+
get: StickerArtLookup;
|
|
20
|
+
/** A lookup that reads sources from here and every other ref from `stickers`. */
|
|
21
|
+
with(stickers: StickerArtLookup): StickerArtLookup;
|
|
22
|
+
}
|
|
23
|
+
/** The ids of the sources an engine brush draws with: its stamp tip, its tip grain and its particle stamps. */
|
|
24
|
+
export declare function engineBrushSourceIds(brush: {
|
|
25
|
+
stamp: string | null;
|
|
26
|
+
tipGrain?: {
|
|
27
|
+
source: string;
|
|
28
|
+
};
|
|
29
|
+
particle?: {
|
|
30
|
+
dotTextures: readonly string[];
|
|
31
|
+
};
|
|
32
|
+
}): string[];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brush sources the paint engine can draw with: the brush library's and the open painting's, by
|
|
3
|
+
* id. Strokes read them synchronously, as they read sticker art (`StickerArtLookup`): a stamp tip
|
|
4
|
+
* `source:<id>` and an image tip grain both take the source's mask as alpha. Each mask is decoded
|
|
5
|
+
* the first time it is drawn.
|
|
6
|
+
*/
|
|
7
|
+
import { type BrushSource } from '../brushes/sources.js';
|
|
8
|
+
import type { StickerArtLookup } from './sticker-art.js';
|
|
9
|
+
export declare class BrushSourceArtCache {
|
|
10
|
+
private readonly sources;
|
|
11
|
+
private readonly art;
|
|
12
|
+
/** Adds or replaces sources (a replaced image is decoded again). */
|
|
13
|
+
set(sources: Iterable<BrushSource>): void;
|
|
14
|
+
/** The source of an id, if known. */
|
|
15
|
+
source(id: string): BrushSource | undefined;
|
|
16
|
+
/** Every known source. */
|
|
17
|
+
all(): BrushSource[];
|
|
18
|
+
/** The art of a `source:<id>` ref (alpha = the mask), or `undefined` when the source is unknown or its image can't be read. */
|
|
19
|
+
get: StickerArtLookup;
|
|
20
|
+
/** A lookup that reads sources from here and every other ref from `stickers`. */
|
|
21
|
+
with(stickers: StickerArtLookup): StickerArtLookup;
|
|
22
|
+
}
|
|
23
|
+
/** The ids of the sources an engine brush draws with: its stamp tip, its tip grain and its particle stamps. */
|
|
24
|
+
export declare function engineBrushSourceIds(brush: {
|
|
25
|
+
stamp: string | null;
|
|
26
|
+
tipGrain?: {
|
|
27
|
+
source: string;
|
|
28
|
+
};
|
|
29
|
+
particle?: {
|
|
30
|
+
dotTextures: readonly string[];
|
|
31
|
+
};
|
|
32
|
+
}): string[];
|
|
@@ -39,7 +39,8 @@ import { type PaintGuides, type PerspectiveGuide, type ReferenceImage, type Symm
|
|
|
39
39
|
import { MixingPad, type MixingPadTool, type PadMixOptions } from './mixing-pad.cjs';
|
|
40
40
|
import { type Stencil, type StencilInput } from './stencils.cjs';
|
|
41
41
|
import { type Sticker } from './stickers.cjs';
|
|
42
|
-
import { type StickerRasterizer } from './sticker-art.cjs';
|
|
42
|
+
import { type StickerArtLookup, type StickerRasterizer } from './sticker-art.cjs';
|
|
43
|
+
import { BrushSourceArtCache } from './brush-source-art.cjs';
|
|
43
44
|
import { StickersSlot } from '../stickers/helpers.cjs';
|
|
44
45
|
import type { StickerProvider, StickerRef } from '../stickers/types.cjs';
|
|
45
46
|
import { type LightSpill } from './light.cjs';
|
|
@@ -445,6 +446,10 @@ export declare class PaintEditorController {
|
|
|
445
446
|
/** The sticker library slot (see `setStickersProvider`). */
|
|
446
447
|
readonly stickers: StickersSlot;
|
|
447
448
|
private readonly stickerArt;
|
|
449
|
+
/** Image sources strokes draw with: the brush library's and the open painting's (saved with it). */
|
|
450
|
+
readonly brushSources: BrushSourceArtCache;
|
|
451
|
+
/** Art for stamp tips and tip grain: image sources from `brushSources`, stickers from the sticker library. */
|
|
452
|
+
readonly stampArt: StickerArtLookup;
|
|
448
453
|
private readonly rasterizeSticker;
|
|
449
454
|
private readonly effectsRenderer;
|
|
450
455
|
private paperEffectNodeCache;
|
|
@@ -39,7 +39,8 @@ import { type PaintGuides, type PerspectiveGuide, type ReferenceImage, type Symm
|
|
|
39
39
|
import { MixingPad, type MixingPadTool, type PadMixOptions } from './mixing-pad.js';
|
|
40
40
|
import { type Stencil, type StencilInput } from './stencils.js';
|
|
41
41
|
import { type Sticker } from './stickers.js';
|
|
42
|
-
import { type StickerRasterizer } from './sticker-art.js';
|
|
42
|
+
import { type StickerArtLookup, type StickerRasterizer } from './sticker-art.js';
|
|
43
|
+
import { BrushSourceArtCache } from './brush-source-art.js';
|
|
43
44
|
import { StickersSlot } from '../stickers/helpers.js';
|
|
44
45
|
import type { StickerProvider, StickerRef } from '../stickers/types.js';
|
|
45
46
|
import { type LightSpill } from './light.js';
|
|
@@ -445,6 +446,10 @@ export declare class PaintEditorController {
|
|
|
445
446
|
/** The sticker library slot (see `setStickersProvider`). */
|
|
446
447
|
readonly stickers: StickersSlot;
|
|
447
448
|
private readonly stickerArt;
|
|
449
|
+
/** Image sources strokes draw with: the brush library's and the open painting's (saved with it). */
|
|
450
|
+
readonly brushSources: BrushSourceArtCache;
|
|
451
|
+
/** Art for stamp tips and tip grain: image sources from `brushSources`, stickers from the sticker library. */
|
|
452
|
+
readonly stampArt: StickerArtLookup;
|
|
448
453
|
private readonly rasterizeSticker;
|
|
449
454
|
private readonly effectsRenderer;
|
|
450
455
|
private paperEffectNodeCache;
|
|
@@ -76,6 +76,8 @@ export declare class PaintDabStroke {
|
|
|
76
76
|
private lastFed;
|
|
77
77
|
/** The stamp tip's shape (dab brushes), or `null` for the round computed tip. */
|
|
78
78
|
private readonly stamp;
|
|
79
|
+
/** The tip's own grain, or `null`. */
|
|
80
|
+
private readonly tipGrain;
|
|
79
81
|
constructor(brush: PaintBrush, options: PaintDabStrokeOptions);
|
|
80
82
|
/** What copy 0's brush carries after the dabs so far (mixer and wet-capable dab brushes). */
|
|
81
83
|
get load(): MixerLoad | null;
|
|
@@ -76,6 +76,8 @@ export declare class PaintDabStroke {
|
|
|
76
76
|
private lastFed;
|
|
77
77
|
/** The stamp tip's shape (dab brushes), or `null` for the round computed tip. */
|
|
78
78
|
private readonly stamp;
|
|
79
|
+
/** The tip's own grain, or `null`. */
|
|
80
|
+
private readonly tipGrain;
|
|
79
81
|
constructor(brush: PaintBrush, options: PaintDabStrokeOptions);
|
|
80
82
|
/** What copy 0's brush carries after the dabs so far (mixer and wet-capable dab brushes). */
|
|
81
83
|
get load(): MixerLoad | null;
|