@pixerate/editor 0.138.0 → 0.139.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 +55 -55
- package/dist/animation-editor/index.d.cts +5 -4
- package/dist/animation-editor/index.d.ts +5 -4
- package/dist/animation-editor/index.js +2 -2
- package/dist/{bezier-DPmdGwgR.d.ts → bezier-B6cK8SR6.d.ts} +1 -1
- package/dist/{bezier-CUaH8hcK.d.cts → bezier-CEJ8Uw4O.d.cts} +1 -1
- package/dist/{grain-GCt_O2kv.d.cts → blending-D7jCmjO6.d.cts} +1 -58
- package/dist/{grain-COgYMMHv.d.ts → blending-NgF3qo3d.d.ts} +1 -58
- package/dist/{brushes-B1ABdDAs.d.ts → brushes-CQpL7_Lc.d.ts} +2 -1
- package/dist/{brushes-DnIdJYxN.d.cts → brushes-aEnjqoji.d.cts} +2 -1
- package/dist/canvas/index.d.cts +8 -7
- package/dist/canvas/index.d.ts +8 -7
- package/dist/{chunk-7MN75BXI.cjs → chunk-3QHPFSQM.cjs} +36 -36
- package/dist/{chunk-7MN75BXI.cjs.map → chunk-3QHPFSQM.cjs.map} +1 -1
- package/dist/{chunk-OV7253FC.js → chunk-NI6RORDS.js} +2 -2
- package/dist/{chunk-CM3LJPR3.cjs → chunk-PMEHFHSP.cjs} +82 -82
- package/dist/{chunk-CM3LJPR3.cjs.map → chunk-PMEHFHSP.cjs.map} +1 -1
- package/dist/{chunk-QBARQGSG.js → chunk-QEIN6JQO.js} +2 -2
- package/dist/{chunk-V45ZTW4R.js → chunk-TJBYBSTN.js} +49 -4
- package/dist/chunk-TJBYBSTN.js.map +1 -0
- package/dist/{chunk-SXOTFV3V.cjs → chunk-XFXHA5MU.cjs} +50 -5
- package/dist/chunk-XFXHA5MU.cjs.map +1 -0
- package/dist/effects/index.d.cts +5 -4
- package/dist/effects/index.d.ts +5 -4
- package/dist/{export-BwFRiItd.d.ts → export-0ZaTK__4.d.ts} +5 -5
- package/dist/{export-41rL6Cne.d.ts → export-C45v6MYq.d.ts} +1 -1
- package/dist/{export-DuN3dpCg.d.cts → export-D-7WCDJ9.d.cts} +5 -5
- package/dist/{export-D9mXp05Q.d.cts → export-DSdCfd6O.d.cts} +1 -1
- package/dist/grain-BWmGZxP4.d.cts +58 -0
- package/dist/grain-BWmGZxP4.d.ts +58 -0
- package/dist/{helpers-v6GMazzg.d.cts → helpers-Cavy1TB7.d.cts} +21 -1
- package/dist/{helpers-C-RgeyvH.d.ts → helpers-LZQ4cpg4.d.ts} +21 -1
- package/dist/image-editor/index.cjs +614 -614
- package/dist/image-editor/index.d.cts +12 -11
- package/dist/image-editor/index.d.ts +12 -11
- package/dist/image-editor/index.js +2 -2
- package/dist/{opentype-n99lqxEZ.d.cts → opentype-BpIJhGpj.d.cts} +1 -1
- package/dist/{opentype-T7bkbR2D.d.ts → opentype-CyxDScVz.d.ts} +1 -1
- package/dist/paint/index.d.cts +6 -4
- package/dist/paint/index.d.ts +6 -4
- package/dist/paint-editor/index.cjs +7 -7
- package/dist/paint-editor/index.d.cts +13 -11
- package/dist/paint-editor/index.d.ts +13 -11
- package/dist/paint-editor/index.js +2 -2
- package/dist/{pathfinder-CQlldanv.d.cts → pathfinder-BMQEcS0k.d.cts} +1 -1
- package/dist/{pathfinder-D-V6JLSw.d.ts → pathfinder-CQIxubuP.d.ts} +1 -1
- package/dist/{pool-CZQOrSXZ.d.ts → pool-Cynuj89K.d.ts} +1 -1
- package/dist/{pool-FjZZmZ80.d.cts → pool-DedjxDKo.d.cts} +1 -1
- package/dist/{rand-DJGxSq9d.d.ts → rand-COS4_E1g.d.ts} +1 -1
- package/dist/{rand-D7nfeD1p.d.cts → rand-D1JqpR-p.d.cts} +1 -1
- package/dist/{svg-DPJMUSNt.d.cts → svg-RcixtBFR.d.cts} +2 -2
- package/dist/{svg-CnDCpIy9.d.ts → svg-nWBJEpnk.d.ts} +2 -2
- package/dist/{tools-Ca0kI1qo.d.cts → tools-CL82d7nw.d.cts} +1 -1
- package/dist/{tools-B0wXP5cF.d.ts → tools-DrxgDnXY.d.ts} +1 -1
- package/dist/vector/index.cjs +994 -954
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.d.cts +44 -18
- package/dist/vector/index.d.ts +44 -18
- package/dist/vector/index.js +54 -14
- package/dist/vector/index.js.map +1 -1
- package/dist/video-editor/index.d.cts +5 -4
- package/dist/video-editor/index.d.ts +5 -4
- package/dist/{warp-C7rMWUgW.d.cts → warp-CHi_P_G6.d.cts} +1 -1
- package/dist/{warp-Doasjpyr.d.ts → warp-CPaHULUL.d.ts} +1 -1
- package/package.json +1 -1
- package/skills/pixerate-vector/SKILL.md +4 -2
- package/dist/chunk-SXOTFV3V.cjs.map +0 -1
- package/dist/chunk-V45ZTW4R.js.map +0 -1
- /package/dist/{chunk-OV7253FC.js.map → chunk-NI6RORDS.js.map} +0 -0
- /package/dist/{chunk-QBARQGSG.js.map → chunk-QEIN6JQO.js.map} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { V as VideoProject, a as VideoAnimatable, b as VideoAsset, c as VideoAssetProxy, d as VideoClip, e as VideoClipAnimation, f as VideoClipEffect, g as VideoEffectRef, h as VideoEffectValues, i as VideoGrade, j as VideoGradeLut, k as VideoKeyframes, l as VideoMarker, m as VideoSequence, n as VideoTrack, o as VideoTranscriptWord, p as VideoTransform, q as VideoTransition, v as videoKeysOf, r as VideoTrackKind, s as VideoPlacementMode, t as VideoKeyframeProperty, u as VideoKey, w as VideoMediaClip, x as VideoEffectsEngine, y as VideoLayer, z as VideoFrame, A as VideoRect, B as VideoEffectPlace, C as VideoFfmpegOptions, D as VideoFfmpegExport, E as VideoEdlOptions, F as VideoFadeCurve, G as VideoFit, H as VideoBlendMode, I as VideoAssetKind, J as VideoClipAnimationEffect, K as VideoTransitionType } from '../export-
|
|
2
|
-
export { L as VIDEO_BLEND_MODES, M as VIDEO_CLIP_ANIMATION_EFFECTS, N as VIDEO_CLIP_TYPES, O as VIDEO_EASE_NAMES, P as VIDEO_EFFECT_PLACES, Q as VIDEO_FADE_CURVES, R as VIDEO_FITS, S as VIDEO_KEYFRAME_LIMITS, T as VIDEO_KEYFRAME_PROPERTIES, U as VIDEO_PLACEMENT_MODES, W as VIDEO_TRANSFORM_PROPERTIES, X as VIDEO_TRANSITION_TYPES, Y as VIDEO_WIPE_DIRECTIONS, Z as VideoAudioSource, _ as VideoClipType, $ as VideoColorClip, a0 as VideoEase, a1 as VideoEffectClip, a2 as VideoEffectJob, a3 as VideoEffectUse, a4 as VideoEffectsEngineOptions, a5 as VideoLayerEffect, a6 as VideoLoudnessMeasurement, a7 as VideoLoudnessTarget, a8 as VideoSequenceClip, a9 as VideoTextClip, aa as VideoWipeDirection, ab as checkVideoEffectPlace, ac as checkVideoEffectValues, ad as ffmpegFilterValue, ae as isVideoKeyframes, af as mixEffectPixels, ag as overEffectPixels, ah as parseVideoLoudnessMeasurement, ai as placeVideoRect, aj as removeVideoKey, ak as retimeVideoAnimatable, al as setVideoKey, am as sortVideoKeys, an as splitVideoAnimatable, ao as toVideoEdl, ap as toVideoFfmpeg, aq as toVideoLoudnessMeasure, ar as videoClipEffectUses, as as videoClipSoundGain, at as videoEaseBezier, au as videoEaseProgress, av as videoEffectFrameTime, aw as videoEffectLayerKey, ax as videoEffectValuesAt, ay as videoFadeCurveGain, az as videoFfmpegUnsupportedEffects, aA as videoFrameAt, aB as videoFrameLeafLayers, aC as videoKeyframeBreakpoints, aD as videoKeyframeFfmpegExpr, aE as videoLayersUseEffects, aF as videoLayersWithoutTransitionEffects, aG as videoProjectEffects, aH as videoShellQuote, aI as videoTextStyle, aJ as videoTitleFrame, aK as videoTransformAt, aL as videoTransitionAudioCurve, aM as videoTransitionEase, aN as videoValueAt } from '../export-
|
|
1
|
+
import { V as VideoProject, a as VideoAnimatable, b as VideoAsset, c as VideoAssetProxy, d as VideoClip, e as VideoClipAnimation, f as VideoClipEffect, g as VideoEffectRef, h as VideoEffectValues, i as VideoGrade, j as VideoGradeLut, k as VideoKeyframes, l as VideoMarker, m as VideoSequence, n as VideoTrack, o as VideoTranscriptWord, p as VideoTransform, q as VideoTransition, v as videoKeysOf, r as VideoTrackKind, s as VideoPlacementMode, t as VideoKeyframeProperty, u as VideoKey, w as VideoMediaClip, x as VideoEffectsEngine, y as VideoLayer, z as VideoFrame, A as VideoRect, B as VideoEffectPlace, C as VideoFfmpegOptions, D as VideoFfmpegExport, E as VideoEdlOptions, F as VideoFadeCurve, G as VideoFit, H as VideoBlendMode, I as VideoAssetKind, J as VideoClipAnimationEffect, K as VideoTransitionType } from '../export-DSdCfd6O.cjs';
|
|
2
|
+
export { L as VIDEO_BLEND_MODES, M as VIDEO_CLIP_ANIMATION_EFFECTS, N as VIDEO_CLIP_TYPES, O as VIDEO_EASE_NAMES, P as VIDEO_EFFECT_PLACES, Q as VIDEO_FADE_CURVES, R as VIDEO_FITS, S as VIDEO_KEYFRAME_LIMITS, T as VIDEO_KEYFRAME_PROPERTIES, U as VIDEO_PLACEMENT_MODES, W as VIDEO_TRANSFORM_PROPERTIES, X as VIDEO_TRANSITION_TYPES, Y as VIDEO_WIPE_DIRECTIONS, Z as VideoAudioSource, _ as VideoClipType, $ as VideoColorClip, a0 as VideoEase, a1 as VideoEffectClip, a2 as VideoEffectJob, a3 as VideoEffectUse, a4 as VideoEffectsEngineOptions, a5 as VideoLayerEffect, a6 as VideoLoudnessMeasurement, a7 as VideoLoudnessTarget, a8 as VideoSequenceClip, a9 as VideoTextClip, aa as VideoWipeDirection, ab as checkVideoEffectPlace, ac as checkVideoEffectValues, ad as ffmpegFilterValue, ae as isVideoKeyframes, af as mixEffectPixels, ag as overEffectPixels, ah as parseVideoLoudnessMeasurement, ai as placeVideoRect, aj as removeVideoKey, ak as retimeVideoAnimatable, al as setVideoKey, am as sortVideoKeys, an as splitVideoAnimatable, ao as toVideoEdl, ap as toVideoFfmpeg, aq as toVideoLoudnessMeasure, ar as videoClipEffectUses, as as videoClipSoundGain, at as videoEaseBezier, au as videoEaseProgress, av as videoEffectFrameTime, aw as videoEffectLayerKey, ax as videoEffectValuesAt, ay as videoFadeCurveGain, az as videoFfmpegUnsupportedEffects, aA as videoFrameAt, aB as videoFrameLeafLayers, aC as videoKeyframeBreakpoints, aD as videoKeyframeFfmpegExpr, aE as videoLayersUseEffects, aF as videoLayersWithoutTransitionEffects, aG as videoProjectEffects, aH as videoShellQuote, aI as videoTextStyle, aJ as videoTitleFrame, aK as videoTransformAt, aL as videoTransitionAudioCurve, aM as videoTransitionEase, aN as videoValueAt } from '../export-DSdCfd6O.cjs';
|
|
3
3
|
import { A as AnimationPlayer, C as Clock } from '../player-CmbY3218.cjs';
|
|
4
4
|
import { b as AnimationLoopMode } from '../evaluate-BsxYieLN.cjs';
|
|
5
5
|
import { H as HistoryManager } from '../HistoryManager-DeQQMBCj.cjs';
|
|
6
|
-
import { v as EffectsSlot, E as EffectProvider, f as EffectDescription, e as EffectValue } from '../helpers-
|
|
6
|
+
import { v as EffectsSlot, E as EffectProvider, f as EffectDescription, e as EffectValue } from '../helpers-Cavy1TB7.cjs';
|
|
7
7
|
import { a as AgentToolProvider } from '../registry-BqA1AZt0.cjs';
|
|
8
|
-
import { A as AppliedEffectInfo } from '../tools-
|
|
8
|
+
import { A as AppliedEffectInfo } from '../tools-CL82d7nw.cjs';
|
|
9
9
|
import '../easing-lM0Xo9Ni.cjs';
|
|
10
10
|
import '../types-DsiXGmjo.cjs';
|
|
11
11
|
import '../schema-Di0CS6Pe.cjs';
|
|
@@ -13,6 +13,7 @@ import '../provenance-DmlcgdzT.cjs';
|
|
|
13
13
|
import '../sourcemap-C8AH3MBQ.cjs';
|
|
14
14
|
import '../tokens-D7yXvUU6.cjs';
|
|
15
15
|
import '../types-CwMPoRMU.cjs';
|
|
16
|
+
import '../grain-BWmGZxP4.cjs';
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* Keyframes `{ keys: [{ t, v, ease }] }`: at least one key, in strictly increasing time (clip-relative
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { V as VideoProject, a as VideoAnimatable, b as VideoAsset, c as VideoAssetProxy, d as VideoClip, e as VideoClipAnimation, f as VideoClipEffect, g as VideoEffectRef, h as VideoEffectValues, i as VideoGrade, j as VideoGradeLut, k as VideoKeyframes, l as VideoMarker, m as VideoSequence, n as VideoTrack, o as VideoTranscriptWord, p as VideoTransform, q as VideoTransition, v as videoKeysOf, r as VideoTrackKind, s as VideoPlacementMode, t as VideoKeyframeProperty, u as VideoKey, w as VideoMediaClip, x as VideoEffectsEngine, y as VideoLayer, z as VideoFrame, A as VideoRect, B as VideoEffectPlace, C as VideoFfmpegOptions, D as VideoFfmpegExport, E as VideoEdlOptions, F as VideoFadeCurve, G as VideoFit, H as VideoBlendMode, I as VideoAssetKind, J as VideoClipAnimationEffect, K as VideoTransitionType } from '../export-
|
|
2
|
-
export { L as VIDEO_BLEND_MODES, M as VIDEO_CLIP_ANIMATION_EFFECTS, N as VIDEO_CLIP_TYPES, O as VIDEO_EASE_NAMES, P as VIDEO_EFFECT_PLACES, Q as VIDEO_FADE_CURVES, R as VIDEO_FITS, S as VIDEO_KEYFRAME_LIMITS, T as VIDEO_KEYFRAME_PROPERTIES, U as VIDEO_PLACEMENT_MODES, W as VIDEO_TRANSFORM_PROPERTIES, X as VIDEO_TRANSITION_TYPES, Y as VIDEO_WIPE_DIRECTIONS, Z as VideoAudioSource, _ as VideoClipType, $ as VideoColorClip, a0 as VideoEase, a1 as VideoEffectClip, a2 as VideoEffectJob, a3 as VideoEffectUse, a4 as VideoEffectsEngineOptions, a5 as VideoLayerEffect, a6 as VideoLoudnessMeasurement, a7 as VideoLoudnessTarget, a8 as VideoSequenceClip, a9 as VideoTextClip, aa as VideoWipeDirection, ab as checkVideoEffectPlace, ac as checkVideoEffectValues, ad as ffmpegFilterValue, ae as isVideoKeyframes, af as mixEffectPixels, ag as overEffectPixels, ah as parseVideoLoudnessMeasurement, ai as placeVideoRect, aj as removeVideoKey, ak as retimeVideoAnimatable, al as setVideoKey, am as sortVideoKeys, an as splitVideoAnimatable, ao as toVideoEdl, ap as toVideoFfmpeg, aq as toVideoLoudnessMeasure, ar as videoClipEffectUses, as as videoClipSoundGain, at as videoEaseBezier, au as videoEaseProgress, av as videoEffectFrameTime, aw as videoEffectLayerKey, ax as videoEffectValuesAt, ay as videoFadeCurveGain, az as videoFfmpegUnsupportedEffects, aA as videoFrameAt, aB as videoFrameLeafLayers, aC as videoKeyframeBreakpoints, aD as videoKeyframeFfmpegExpr, aE as videoLayersUseEffects, aF as videoLayersWithoutTransitionEffects, aG as videoProjectEffects, aH as videoShellQuote, aI as videoTextStyle, aJ as videoTitleFrame, aK as videoTransformAt, aL as videoTransitionAudioCurve, aM as videoTransitionEase, aN as videoValueAt } from '../export-
|
|
1
|
+
import { V as VideoProject, a as VideoAnimatable, b as VideoAsset, c as VideoAssetProxy, d as VideoClip, e as VideoClipAnimation, f as VideoClipEffect, g as VideoEffectRef, h as VideoEffectValues, i as VideoGrade, j as VideoGradeLut, k as VideoKeyframes, l as VideoMarker, m as VideoSequence, n as VideoTrack, o as VideoTranscriptWord, p as VideoTransform, q as VideoTransition, v as videoKeysOf, r as VideoTrackKind, s as VideoPlacementMode, t as VideoKeyframeProperty, u as VideoKey, w as VideoMediaClip, x as VideoEffectsEngine, y as VideoLayer, z as VideoFrame, A as VideoRect, B as VideoEffectPlace, C as VideoFfmpegOptions, D as VideoFfmpegExport, E as VideoEdlOptions, F as VideoFadeCurve, G as VideoFit, H as VideoBlendMode, I as VideoAssetKind, J as VideoClipAnimationEffect, K as VideoTransitionType } from '../export-C45v6MYq.js';
|
|
2
|
+
export { L as VIDEO_BLEND_MODES, M as VIDEO_CLIP_ANIMATION_EFFECTS, N as VIDEO_CLIP_TYPES, O as VIDEO_EASE_NAMES, P as VIDEO_EFFECT_PLACES, Q as VIDEO_FADE_CURVES, R as VIDEO_FITS, S as VIDEO_KEYFRAME_LIMITS, T as VIDEO_KEYFRAME_PROPERTIES, U as VIDEO_PLACEMENT_MODES, W as VIDEO_TRANSFORM_PROPERTIES, X as VIDEO_TRANSITION_TYPES, Y as VIDEO_WIPE_DIRECTIONS, Z as VideoAudioSource, _ as VideoClipType, $ as VideoColorClip, a0 as VideoEase, a1 as VideoEffectClip, a2 as VideoEffectJob, a3 as VideoEffectUse, a4 as VideoEffectsEngineOptions, a5 as VideoLayerEffect, a6 as VideoLoudnessMeasurement, a7 as VideoLoudnessTarget, a8 as VideoSequenceClip, a9 as VideoTextClip, aa as VideoWipeDirection, ab as checkVideoEffectPlace, ac as checkVideoEffectValues, ad as ffmpegFilterValue, ae as isVideoKeyframes, af as mixEffectPixels, ag as overEffectPixels, ah as parseVideoLoudnessMeasurement, ai as placeVideoRect, aj as removeVideoKey, ak as retimeVideoAnimatable, al as setVideoKey, am as sortVideoKeys, an as splitVideoAnimatable, ao as toVideoEdl, ap as toVideoFfmpeg, aq as toVideoLoudnessMeasure, ar as videoClipEffectUses, as as videoClipSoundGain, at as videoEaseBezier, au as videoEaseProgress, av as videoEffectFrameTime, aw as videoEffectLayerKey, ax as videoEffectValuesAt, ay as videoFadeCurveGain, az as videoFfmpegUnsupportedEffects, aA as videoFrameAt, aB as videoFrameLeafLayers, aC as videoKeyframeBreakpoints, aD as videoKeyframeFfmpegExpr, aE as videoLayersUseEffects, aF as videoLayersWithoutTransitionEffects, aG as videoProjectEffects, aH as videoShellQuote, aI as videoTextStyle, aJ as videoTitleFrame, aK as videoTransformAt, aL as videoTransitionAudioCurve, aM as videoTransitionEase, aN as videoValueAt } from '../export-C45v6MYq.js';
|
|
3
3
|
import { A as AnimationPlayer, C as Clock } from '../player-BK2kKbfd.js';
|
|
4
4
|
import { b as AnimationLoopMode } from '../evaluate-BbCeF6pt.js';
|
|
5
5
|
import { H as HistoryManager } from '../HistoryManager-DWSLd6Tf.js';
|
|
6
|
-
import { v as EffectsSlot, E as EffectProvider, f as EffectDescription, e as EffectValue } from '../helpers-
|
|
6
|
+
import { v as EffectsSlot, E as EffectProvider, f as EffectDescription, e as EffectValue } from '../helpers-LZQ4cpg4.js';
|
|
7
7
|
import { a as AgentToolProvider } from '../registry-D-4fit9C.js';
|
|
8
|
-
import { A as AppliedEffectInfo } from '../tools-
|
|
8
|
+
import { A as AppliedEffectInfo } from '../tools-DrxgDnXY.js';
|
|
9
9
|
import '../easing-lM0Xo9Ni.js';
|
|
10
10
|
import '../types-DsiXGmjo.js';
|
|
11
11
|
import '../schema-Di0CS6Pe.js';
|
|
@@ -13,6 +13,7 @@ import '../provenance-uh5r2TQ8.js';
|
|
|
13
13
|
import '../sourcemap-DA1Evhrv.js';
|
|
14
14
|
import '../tokens-D7yXvUU6.js';
|
|
15
15
|
import '../types-CwMPoRMU.js';
|
|
16
|
+
import '../grain-BWmGZxP4.js';
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* Keyframes `{ keys: [{ t, v, ease }] }`: at least one key, in strictly increasing time (clip-relative
|
package/package.json
CHANGED
|
@@ -416,8 +416,10 @@ contents whole while you work, without losing the mask.
|
|
|
416
416
|
| Command | Use it to |
|
|
417
417
|
| --- | --- |
|
|
418
418
|
| `vector.listBrushes` | List the natural-media brushes (pencils, pastels, charcoal, markers, inks) with their sizes. |
|
|
419
|
-
| `vector.addBrushstroke` | Paint paths with a brush along their outline (`brushId`, `size`, `pressure` profile such as [0.2, 1, 0.2] for a taper, `color`): sketchy, hand-drawn or inked lines that stay editable. Returns the stroke stacks. |
|
|
420
|
-
| `vector.setBrushstroke` | Change brushstroke layer `index` of path `id`: brush, size, pressure, colour, opacity. Remove it with `vector.removeStroke`. |
|
|
419
|
+
| `vector.addBrushstroke` | Paint paths with a brush along their outline (`brushId`, `size`, `pressure` profile such as [0.2, 1, 0.2] for a taper, `color`): sketchy, hand-drawn or inked lines that stay editable. Pass a `seed` (any integer) so the brush gets its character, the seeded jitter and paper grain that make pencil, pastel and charcoal look real; `paper` picks the grain (`{ pattern, seed, scale, depth }`) or `null` turns it off. Returns the stroke stacks. |
|
|
420
|
+
| `vector.setBrushstroke` | Change brushstroke layer `index` of path `id`: brush, size, pressure, colour, opacity, `seed` (a new seed is a new take on the same stroke; null: plain dabs) and `paper` (replaced whole; null: no grain; {}: the default sanded paper). Remove it with `vector.removeStroke`. |
|
|
421
|
+
|
|
422
|
+
Give brushstrokes a `seed` unless you want flat, even dabs: without one a charcoal or pastel line looks like a felt pen. Use different seeds on neighbouring strokes so they do not repeat each other, and `paper: null` for clean ink or marker lines that should not catch grain. The grain is laid in each path's own space, so it moves with the path.
|
|
421
423
|
|
|
422
424
|
### Editor settings
|
|
423
425
|
|