@pixerate/editor 0.96.0 → 0.98.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/THIRD_PARTY_NOTICES.md +4 -2
- package/dist/animation-editor/index.cjs +55 -53
- package/dist/animation-editor/index.cjs.map +1 -1
- package/dist/animation-editor/index.d.cts +3 -2
- package/dist/animation-editor/index.d.ts +3 -2
- package/dist/animation-editor/index.js +11 -9
- package/dist/animation-editor/index.js.map +1 -1
- package/dist/chunk-DWGZUSES.cjs +694 -0
- package/dist/chunk-DWGZUSES.cjs.map +1 -0
- package/dist/chunk-GX332W2C.js +181 -0
- package/dist/chunk-GX332W2C.js.map +1 -0
- package/dist/{chunk-7MD7C6XQ.cjs → chunk-JF5PXN7W.cjs} +96 -744
- package/dist/chunk-JF5PXN7W.cjs.map +1 -0
- package/dist/chunk-KKREERP2.js +694 -0
- package/dist/chunk-KKREERP2.js.map +1 -0
- package/dist/chunk-MUUXNRU4.cjs +181 -0
- package/dist/chunk-MUUXNRU4.cjs.map +1 -0
- package/dist/{chunk-KFTQ2PKP.js → chunk-WIR377F6.js} +1001 -61
- package/dist/chunk-WIR377F6.js.map +1 -0
- package/dist/{chunk-T422YCHR.cjs → chunk-WT6ZAWJP.cjs} +1023 -83
- package/dist/chunk-WT6ZAWJP.cjs.map +1 -0
- package/dist/{chunk-4JLB2USO.js → chunk-YGZNGDIT.js} +45 -693
- package/dist/chunk-YGZNGDIT.js.map +1 -0
- package/dist/image-editor/index.cjs +1519 -360
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +378 -5
- package/dist/image-editor/index.d.ts +378 -5
- package/dist/image-editor/index.js +1244 -85
- package/dist/image-editor/index.js.map +1 -1
- package/dist/raster/index.cjs +25 -2
- package/dist/raster/index.cjs.map +1 -1
- package/dist/raster/index.d.cts +143 -4
- package/dist/raster/index.d.ts +143 -4
- package/dist/raster/index.js +25 -2
- package/dist/{svg-ymShkNtu.d.cts → svg-C9r284x8.d.cts} +6 -9
- package/dist/{svg-Dh17jCyA.d.ts → svg-MVKBqwD4.d.ts} +6 -9
- package/dist/types-CwMPoRMU.d.cts +40 -0
- package/dist/types-CwMPoRMU.d.ts +40 -0
- package/dist/vector/index.cjs +490 -554
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.d.cts +154 -292
- package/dist/vector/index.d.ts +154 -292
- package/dist/vector/index.js +91 -155
- package/dist/vector/index.js.map +1 -1
- package/dist/warp-B8rAguzs.d.ts +165 -0
- package/dist/warp-nYs2DPrx.d.cts +165 -0
- package/package.json +1 -1
- package/skills/pixerate-image-editor/SKILL.md +49 -3
- package/dist/chunk-4JLB2USO.js.map +0 -1
- package/dist/chunk-7MD7C6XQ.cjs.map +0 -1
- package/dist/chunk-KFTQ2PKP.js.map +0 -1
- package/dist/chunk-T422YCHR.cjs.map +0 -1
package/dist/vector/index.d.ts
CHANGED
|
@@ -1,15 +1,52 @@
|
|
|
1
|
-
import { d as Vec2, e as VectorSubpath, b as VectorBounds, f as VectorAnchor, V as VectorDocument, a as VectorNode, g as VectorPathNode, h as VectorAnchorType, i as VectorPaint, j as VectorGroupNode, k as VectorCornerKind, l as VectorWidthPoint, m as VectorGradientHandle, n as VectorGradient, o as VectorGradientStop, p as VectorViewport, q as VectorEffectType, r as VectorEffectParamsMap, s as VectorFillRule, t as VectorBooleanOperation, u as VectorEffect, v as VectorWarpMesh, w as VectorTransformHandle, x as VectorAnchorRef, y as VectorPathfinderOperation, z as VectorTool, A as VectorDefaults, B as VectorStyle, C as VectorHandleRef, D as VectorSegmentRef, E as VectorBlendOptions, F as VectorModifiers, c as VectorSvgExportOptions, G as VectorGradientPatch, H as VectorAlign, I as VectorDistribute, J as VectorArrange, K as VectorAverageAxis, L as VectorArrowhead, M as VectorBlendSpacing, N as VectorGradientInterpolation, O as VectorGradientSpread, P as VectorGradientType, Q as VectorStrokeAlign, R as VectorStrokeGradientMode, S as VectorRenderStrokeParts, T as VectorPaintDef, U as VectorArrowAlign, W as VectorBlend, X as VectorMergeMode, Y as VectorLineJoin
|
|
2
|
-
export {
|
|
1
|
+
import { d as Vec2$1, e as VectorSubpath, b as VectorBounds, f as VectorAnchor, V as VectorDocument, a as VectorNode, g as VectorPathNode, h as VectorAnchorType, i as VectorPaint, j as VectorGroupNode, k as VectorCornerKind, l as VectorWidthPoint, m as VectorGradientHandle, n as VectorGradient, o as VectorGradientStop, p as VectorViewport, q as VectorEffectType, r as VectorEffectParamsMap, s as VectorFillRule, t as VectorBooleanOperation, u as VectorEffect, v as VectorWarpMesh, w as VectorTransformHandle, x as VectorAnchorRef, y as VectorPathfinderOperation, z as VectorTool, A as VectorDefaults, B as VectorStyle, C as VectorHandleRef, D as VectorSegmentRef, E as VectorBlendOptions, F as VectorModifiers, c as VectorSvgExportOptions, G as VectorGradientPatch, H as VectorAlign, I as VectorDistribute, J as VectorArrange, K as VectorAverageAxis, L as VectorArrowhead, M as VectorBlendSpacing, N as VectorGradientInterpolation, O as VectorGradientSpread, P as VectorGradientType, Q as VectorStrokeAlign, R as VectorStrokeGradientMode, S as VectorRenderStrokeParts, T as VectorPaintDef, U as VectorArrowAlign, W as VectorBlend, X as VectorMergeMode, Y as VectorLineJoin } from '../svg-MVKBqwD4.js';
|
|
2
|
+
export { Z as VECTOR_ARROWHEADS, _ as VECTOR_BLEND_SPACINGS, $ as VECTOR_CORNER_KINDS, a0 as VECTOR_EFFECT_TYPES, a1 as VECTOR_GRADIENT_INTERPOLATIONS, a2 as VECTOR_GRADIENT_MAX_PERIODS, a3 as VECTOR_GRADIENT_MIN_STOPS, a4 as VECTOR_GRADIENT_SPREADS, a5 as VECTOR_GRADIENT_TYPES, a6 as VECTOR_MERGE_MODES, a7 as VECTOR_PATHFINDER_OPERATIONS, a8 as VECTOR_STROKE_GRADIENT_MODES, a9 as VECTOR_TOOLS, aa as VECTOR_TRANSFORM_HANDLES, ab as VectorCorner, ac as VectorGradientPoints, ad as VectorGradientRamp, ae as VectorGradientSvgOptions, af as VectorGradientUnits, ag as VectorLineCap, ah as VectorMatrix, ai as VectorPaintSvgOptions, aj as VectorRgba, ak as VectorSvgImportOptions, al as VectorSvgPatternDef, am as VectorSvgWrapper, an as VectorWarpStyle, ao as applyVectorCornersAttribute, ap as applyVectorGradientPatch, aq as applyVectorGradientSpread, ar as convertVectorGradient, as as defaultVectorGradient, at as expandVectorGradientSpread, au as expandVectorGradientStops, av as explicitVectorGradient, aw as gradientMidpointRemap, ax as hasExplicitGradientGeometry, ay as insertVectorGradientStop, az as isCentredVectorGradient, aA as isVectorGradient, aB as mapVectorGradient, aC as mapVectorPaint, aD as moveVectorGradientHandle, aE as moveVectorGradientStop, aF as parseSvgTransform, aG as parseVectorColor, aH as parseVectorSvg, aI as patternAttrs, aJ as periodicVectorGradientStops, aK as pinVectorGradient, aL as removeVectorGradientStop, aM as reverseVectorGradient, aN as samplePlainStops, aO as sampleVectorGradient, aP as sampleVectorGradientAt, aQ as sampleVectorPaintDefAt, aR as sanitizeVectorGradient, aS as setVectorGradientVector, aT as sortedVectorGradientStops, aU as spanVectorGradientStops, aV as transformVectorGradient, aW as transformVectorPaint, aX as vectorBoxMatrix, aY as vectorCornersAttribute, aZ as vectorDocumentToSvg, a_ as vectorGradientArea, a$ as vectorGradientAspect, b0 as vectorGradientFocalParam, b1 as vectorGradientHandles, b2 as vectorGradientMatrix, b3 as vectorGradientMidpointFromPosition, b4 as vectorGradientMidpointPosition, b5 as vectorGradientNeedsExpansion, b6 as vectorGradientParam, b7 as vectorGradientPoints, b8 as vectorGradientRamp, b9 as vectorGradientSvgDefs, ba as vectorGradientTAt, bb as vectorGradientUnitsMatrix, bc as vectorPaintToSvg, bd as vectorPathLocalBounds, be as vectorStrokeSvgParts, bf as widthProfileFromAttribute, bg as widthProfileToAttribute } from '../svg-MVKBqwD4.js';
|
|
3
3
|
import { P as Point } from '../types-BFkYA4eF.js';
|
|
4
|
-
import {
|
|
4
|
+
import { a as BezierPathInput, A as AffineMatrix$1, B as BezierPath, c as BezierSegment } from '../bezier-DYBvLgUH.js';
|
|
5
5
|
export { S as SvgGradientDef } from '../bezier-DYBvLgUH.js';
|
|
6
6
|
import { H as HistoryManager } from '../HistoryManager-DWSLd6Tf.js';
|
|
7
7
|
import { C as CommandSpec } from '../registry-rVtFJjRM.js';
|
|
8
8
|
import { S as StrokeJoin, a as StrokeCap, P as PlanarMap, b as PathfinderOperation, c as PathfinderShape } from '../pathfinder-CNtsbCRK.js';
|
|
9
9
|
import { b as AnimationEasing } from '../easing-lM0Xo9Ni.js';
|
|
10
|
+
export { W as VECTOR_WARP_STYLES, a as VECTOR_WARP_STYLE_LABELS, b as VectorWarpPreset, c as applyVectorHomography, d as dragVectorMeshPoint, e as evalVectorMesh, f as fitVectorMesh, i as isValidVectorMesh, m as mapVectorMeshPoints, o as orderVectorQuad, p as pullVectorMesh, r as removeVectorMeshSplitU, g as removeVectorMeshSplitV, h as resizeVectorMesh, s as solve8, j as splitVectorMeshU, k as splitVectorMeshV, l as vectorHomography, n as vectorHomographyKeepsQuad, q as vectorIdentityMesh, w as vectorMeshColumns, t as vectorMeshControlBounds, u as vectorMeshEditPoints, v as vectorMeshGridCurves, x as vectorMeshParamAt, y as vectorMeshRows, z as vectorWarpPresetGrid, A as vectorWarpPresetMesh } from '../warp-B8rAguzs.js';
|
|
11
|
+
import { A as AffineMatrix, V as Vec2 } from '../types-CwMPoRMU.js';
|
|
12
|
+
export { H as VectorHomography } from '../types-CwMPoRMU.js';
|
|
10
13
|
import '../types-DsiXGmjo.js';
|
|
11
14
|
import '../schema-Di0CS6Pe.js';
|
|
12
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Affine matrices in SVG order (`[a, b, c, d, e, f]`), shared by the vector and image editors.
|
|
18
|
+
* Angles are degrees, clockwise on screen (y points down).
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
declare const IDENTITY_MATRIX: AffineMatrix;
|
|
22
|
+
/** `a` then `b` (apply `a` first). */
|
|
23
|
+
declare function multiplyMatrices(a: AffineMatrix, b: AffineMatrix): AffineMatrix;
|
|
24
|
+
declare const translateMatrix: (dx: number, dy: number) => AffineMatrix;
|
|
25
|
+
declare function scaleMatrix(sx: number, sy: number, origin?: Vec2): AffineMatrix;
|
|
26
|
+
/** Rotation by `degrees` clockwise (y points down) around `origin`. */
|
|
27
|
+
declare function rotateMatrix(degrees: number, origin?: Vec2): AffineMatrix;
|
|
28
|
+
declare function applyMatrix(m: AffineMatrix, p: Vec2): Vec2;
|
|
29
|
+
declare function isIdentityMatrix(m: AffineMatrix, eps?: number): boolean;
|
|
30
|
+
/** The inverse matrix (the identity for a singular one). */
|
|
31
|
+
declare function invertMatrix(m: AffineMatrix): AffineMatrix;
|
|
32
|
+
/** Applies only the linear part (for directions and offsets). */
|
|
33
|
+
declare function applyMatrixLinear(m: AffineMatrix, v: Vec2): Vec2;
|
|
34
|
+
/**
|
|
35
|
+
* The rotation of a matrix in degrees, clockwise (y down), in (−180, 180]. For a mirrored
|
|
36
|
+
* matrix it is the rotation left after undoing a horizontal flip, so a flipped rotated shape
|
|
37
|
+
* keeps its angle.
|
|
38
|
+
*/
|
|
39
|
+
declare function matrixRotation(m: AffineMatrix): number;
|
|
40
|
+
/**
|
|
41
|
+
* Splits `m` into `residual` then `rigid` (`m = residual × rigid` in apply order): `rigid` is
|
|
42
|
+
* the nearest rotation plus the translation, `residual` the linear rest (scale, skew,
|
|
43
|
+
* reflection). An unrotated `m` gives an identity `rigid` and everything in `residual`.
|
|
44
|
+
*/
|
|
45
|
+
declare function decomposeRigid(m: AffineMatrix): {
|
|
46
|
+
rigid: AffineMatrix;
|
|
47
|
+
residual: AffineMatrix;
|
|
48
|
+
};
|
|
49
|
+
|
|
13
50
|
declare const cloneAnchor: (a: VectorAnchor) => VectorAnchor;
|
|
14
51
|
declare const cloneSubpath: (s: VectorSubpath) => VectorSubpath;
|
|
15
52
|
/** A deep copy of a node (ids kept). */
|
|
@@ -53,12 +90,12 @@ declare function locateVectorNode(nodes: VectorNode[], id: string): {
|
|
|
53
90
|
/** Every path node in the subtree (a path node itself, or a group's descendants). */
|
|
54
91
|
declare function collectPathNodes(node: VectorNode): VectorPathNode[];
|
|
55
92
|
/** The node's local → parent matrix (identity when it has no `transform`). */
|
|
56
|
-
declare function nodeMatrix(node: VectorNode): AffineMatrix;
|
|
93
|
+
declare function nodeMatrix(node: VectorNode): AffineMatrix$1;
|
|
57
94
|
/**
|
|
58
95
|
* A path node's outline in the space `parent` maps to (default: its parent's space), as drawn:
|
|
59
96
|
* live corners cut and path effects applied (`{ effects: false }`: the stored path only).
|
|
60
97
|
*/
|
|
61
|
-
declare function vectorPathWorldBezier(node: VectorPathNode, parent?: AffineMatrix, options?: {
|
|
98
|
+
declare function vectorPathWorldBezier(node: VectorPathNode, parent?: AffineMatrix$1, options?: {
|
|
62
99
|
effects?: boolean;
|
|
63
100
|
}): BezierPath;
|
|
64
101
|
/**
|
|
@@ -66,13 +103,13 @@ declare function vectorPathWorldBezier(node: VectorPathNode, parent?: AffineMatr
|
|
|
66
103
|
* by default the node's parent space, which for top-level nodes is the document. Null when
|
|
67
104
|
* the node has no points.
|
|
68
105
|
*/
|
|
69
|
-
declare function vectorNodeBounds(node: VectorNode, parent?: AffineMatrix): VectorBounds | null;
|
|
106
|
+
declare function vectorNodeBounds(node: VectorNode, parent?: AffineMatrix$1): VectorBounds | null;
|
|
70
107
|
/** The smallest box around all non-null boxes, or null. */
|
|
71
108
|
declare function unionBounds(list: readonly (VectorBounds | null | undefined)[]): VectorBounds | null;
|
|
72
109
|
/** True when two boxes overlap (touching counts). */
|
|
73
110
|
declare function boundsIntersect(a: VectorBounds, b: VectorBounds): boolean;
|
|
74
111
|
/** A box from two corners in any order. */
|
|
75
|
-
declare function boundsFromPoints(a: Vec2, b: Vec2): VectorBounds;
|
|
112
|
+
declare function boundsFromPoints(a: Vec2$1, b: Vec2$1): VectorBounds;
|
|
76
113
|
/** Options of `hitTestVectorNode`. */
|
|
77
114
|
interface VectorHitTestOptions {
|
|
78
115
|
/**
|
|
@@ -86,71 +123,44 @@ interface VectorHitTestOptions {
|
|
|
86
123
|
* (when it has one), on its stroke (its alignment and arrowheads respected) or within
|
|
87
124
|
* `tolerance` of either. A group is hit when any visible child is.
|
|
88
125
|
*/
|
|
89
|
-
declare function hitTestVectorNode(node: VectorNode, p: Vec2, tolerance?: number, parent?: AffineMatrix, options?: VectorHitTestOptions): boolean;
|
|
126
|
+
declare function hitTestVectorNode(node: VectorNode, p: Vec2$1, tolerance?: number, parent?: AffineMatrix$1, options?: VectorHitTestOptions): boolean;
|
|
90
127
|
/**
|
|
91
128
|
* The area a path node's stroke paints (alignment, caps, joins, dashes and arrowheads
|
|
92
129
|
* included), as a filled path in the space `parent` maps to. Empty without a stroke.
|
|
93
130
|
*/
|
|
94
|
-
declare function vectorStrokeOutline(node: VectorPathNode, parent?: AffineMatrix): BezierPath;
|
|
131
|
+
declare function vectorStrokeOutline(node: VectorPathNode, parent?: AffineMatrix$1): BezierPath;
|
|
95
132
|
/** The topmost node hit by `p` (skipping hidden and locked ones), or null. */
|
|
96
|
-
declare function hitTestVectorNodes(nodes: readonly VectorNode[], p: Vec2, tolerance?: number, options?: VectorHitTestOptions): VectorNode | null;
|
|
133
|
+
declare function hitTestVectorNodes(nodes: readonly VectorNode[], p: Vec2$1, tolerance?: number, options?: VectorHitTestOptions): VectorNode | null;
|
|
97
134
|
interface NearestSegment {
|
|
98
135
|
subpath: number;
|
|
99
136
|
segment: number;
|
|
100
137
|
/** Curve parameter 0–1 on the segment. */
|
|
101
138
|
t: number;
|
|
102
|
-
point: Vec2;
|
|
139
|
+
point: Vec2$1;
|
|
103
140
|
distance: number;
|
|
104
141
|
}
|
|
105
142
|
/** The closest point on any segment of a path node (`p` and the result are in the node's own space). */
|
|
106
|
-
declare function nearestSegment(node: VectorPathNode, p: Vec2): NearestSegment | null;
|
|
107
|
-
|
|
108
|
-
/** `a` then `b` (apply `a` first). */
|
|
109
|
-
declare function multiplyMatrices(a: AffineMatrix, b: AffineMatrix): AffineMatrix;
|
|
110
|
-
declare const translateMatrix: (dx: number, dy: number) => AffineMatrix;
|
|
111
|
-
declare function scaleMatrix(sx: number, sy: number, origin?: Vec2): AffineMatrix;
|
|
112
|
-
/** Rotation by `degrees` clockwise (y points down) around `origin`. */
|
|
113
|
-
declare function rotateMatrix(degrees: number, origin?: Vec2): AffineMatrix;
|
|
114
|
-
declare function applyMatrix(m: AffineMatrix, p: Vec2): Vec2;
|
|
115
|
-
declare function isIdentityMatrix(m: AffineMatrix, eps?: number): boolean;
|
|
116
|
-
/** The inverse matrix (the identity for a singular one). */
|
|
117
|
-
declare function invertMatrix(m: AffineMatrix): AffineMatrix;
|
|
118
|
-
/** Applies only the linear part (for directions and offsets). */
|
|
119
|
-
declare function applyMatrixLinear(m: AffineMatrix, v: Vec2): Vec2;
|
|
120
|
-
/**
|
|
121
|
-
* The rotation of a matrix in degrees, clockwise (y down), in (−180, 180]. For a mirrored
|
|
122
|
-
* matrix it is the rotation left after undoing a horizontal flip, so a flipped rotated shape
|
|
123
|
-
* keeps its angle.
|
|
124
|
-
*/
|
|
125
|
-
declare function matrixRotation(m: AffineMatrix): number;
|
|
126
|
-
/**
|
|
127
|
-
* Splits `m` into `residual` then `rigid` (`m = residual × rigid` in apply order): `rigid` is
|
|
128
|
-
* the nearest rotation plus the translation, `residual` the linear rest (scale, skew,
|
|
129
|
-
* reflection). An unrotated `m` gives an identity `rigid` and everything in `residual`.
|
|
130
|
-
*/
|
|
131
|
-
declare function decomposeRigid(m: AffineMatrix): {
|
|
132
|
-
rigid: AffineMatrix;
|
|
133
|
-
residual: AffineMatrix;
|
|
134
|
-
};
|
|
143
|
+
declare function nearestSegment(node: VectorPathNode, p: Vec2$1): NearestSegment | null;
|
|
144
|
+
|
|
135
145
|
/**
|
|
136
146
|
* A copy of the node moved by `m`, given in its parent's space. The node's rotation and
|
|
137
147
|
* translation go to its rigid `transform`; scale and skew are baked into its anchors (or its
|
|
138
148
|
* children), so the result draws exactly as `m` says. Stroke widths are kept.
|
|
139
149
|
*/
|
|
140
|
-
declare function transformVectorNode<T extends VectorNode>(node: T, m: AffineMatrix): T;
|
|
150
|
+
declare function transformVectorNode<T extends VectorNode>(node: T, m: AffineMatrix$1): T;
|
|
141
151
|
/** The node's rotation in degrees (from its `transform` and its ancestors' when `parent` is given). */
|
|
142
|
-
declare function vectorNodeRotation(node: VectorNode, parent?: AffineMatrix): number;
|
|
152
|
+
declare function vectorNodeRotation(node: VectorNode, parent?: AffineMatrix$1): number;
|
|
143
153
|
/** The local → document matrix of node `id` (ancestors' transforms included), or null. */
|
|
144
|
-
declare function vectorWorldMatrix(nodes: readonly VectorNode[], id: string): AffineMatrix | null;
|
|
154
|
+
declare function vectorWorldMatrix(nodes: readonly VectorNode[], id: string): AffineMatrix$1 | null;
|
|
145
155
|
/** The parent space → document matrix of node `id` (identity for top-level nodes), or null. */
|
|
146
|
-
declare function vectorParentMatrix(nodes: readonly VectorNode[], id: string): AffineMatrix | null;
|
|
156
|
+
declare function vectorParentMatrix(nodes: readonly VectorNode[], id: string): AffineMatrix$1 | null;
|
|
147
157
|
/** Moves an anchor and its handles by (dx, dy). */
|
|
148
158
|
declare function translateAnchor(a: VectorAnchor, dx: number, dy: number): VectorAnchor;
|
|
149
159
|
/**
|
|
150
160
|
* Moves one handle to `pos`, keeping the other in line for `smooth` anchors and mirrored for
|
|
151
161
|
* `symmetric` ones. With `breakHandles` the anchor becomes a `corner` and only this handle moves.
|
|
152
162
|
*/
|
|
153
|
-
declare function moveAnchorHandle(a: VectorAnchor, side: 'in' | 'out', pos: Vec2, breakHandles?: boolean): VectorAnchor;
|
|
163
|
+
declare function moveAnchorHandle(a: VectorAnchor, side: 'in' | 'out', pos: Vec2$1, breakHandles?: boolean): VectorAnchor;
|
|
154
164
|
/**
|
|
155
165
|
* Converts anchor `index` of a subpath. `corner` removes both handles; `smooth` and
|
|
156
166
|
* `symmetric` keep existing handles in line, or add handles a third of the way to the
|
|
@@ -186,7 +196,7 @@ declare function polygonSubpath(b: VectorBounds, sides?: number): VectorSubpath;
|
|
|
186
196
|
/** A star inscribed in a box, first point at the top. `innerRatio` is inner / outer radius. */
|
|
187
197
|
declare function starSubpath(b: VectorBounds, points?: number, innerRatio?: number): VectorSubpath;
|
|
188
198
|
/** A straight open line. */
|
|
189
|
-
declare function lineSubpath(a: Vec2, b: Vec2): VectorSubpath;
|
|
199
|
+
declare function lineSubpath(a: Vec2$1, b: Vec2$1): VectorSubpath;
|
|
190
200
|
/** Rounds every coordinate to `precision` decimals (stable JSON and SVG output). */
|
|
191
201
|
declare function roundSubpaths(subpaths: readonly VectorSubpath[], precision?: number): VectorSubpath[];
|
|
192
202
|
|
|
@@ -198,10 +208,10 @@ interface VectorCornerInfo {
|
|
|
198
208
|
subpath: number;
|
|
199
209
|
index: number;
|
|
200
210
|
/** Where the sides meet. */
|
|
201
|
-
at: Vec2;
|
|
211
|
+
at: Vec2$1;
|
|
202
212
|
/** Unit directions the sides leave the corner in: towards the previous anchor, then the next one. */
|
|
203
|
-
u: Vec2;
|
|
204
|
-
v: Vec2;
|
|
213
|
+
u: Vec2$1;
|
|
214
|
+
v: Vec2$1;
|
|
205
215
|
/** The sides' lengths (along curves), in the same order. */
|
|
206
216
|
lu: number;
|
|
207
217
|
lv: number;
|
|
@@ -222,9 +232,9 @@ declare const cornerSetback: (c: Pick<VectorCornerInfo, "cos" | "sin">, r: numbe
|
|
|
222
232
|
/** `radius` clamped to what the corner can draw (0 for negative or non-finite radii). */
|
|
223
233
|
declare const fitCornerRadius: (c: Pick<VectorCornerInfo, "maxRadius">, radius: number) => number;
|
|
224
234
|
/** The point `k` along the corner's bisector, measured in (u + v): a round cut of radius r is centred at k = r / sin. */
|
|
225
|
-
declare const cornerBisectorPoint: (c: VectorCornerInfo, k: number) => Vec2;
|
|
235
|
+
declare const cornerBisectorPoint: (c: VectorCornerInfo, k: number) => Vec2$1;
|
|
226
236
|
/** How much the radius grows when the round cut's centre moves by `d` (its part along the bisector, in radius units). */
|
|
227
|
-
declare const cornerRadiusChange: (c: VectorCornerInfo, d: Vec2) => number;
|
|
237
|
+
declare const cornerRadiusChange: (c: VectorCornerInfo, d: Vec2$1) => number;
|
|
228
238
|
/** True when any anchor of the subpaths has a live corner radius. */
|
|
229
239
|
declare function hasVectorCorners(subpaths: readonly VectorSubpath[]): boolean;
|
|
230
240
|
/** One subpath with its corners cut; `sources[i]` is the stored anchor each output anchor comes from. */
|
|
@@ -419,16 +429,16 @@ interface VectorGradientAnnotator {
|
|
|
419
429
|
/** The path's box in its own space. */
|
|
420
430
|
bounds: VectorBounds | null;
|
|
421
431
|
/** The path's own space → document. */
|
|
422
|
-
world: AffineMatrix;
|
|
432
|
+
world: AffineMatrix$1;
|
|
423
433
|
/** Screen positions of the handles. */
|
|
424
|
-
start: Vec2;
|
|
425
|
-
end: Vec2;
|
|
434
|
+
start: Vec2$1;
|
|
435
|
+
end: Vec2$1;
|
|
426
436
|
/** Radial, conic and diamond gradients. */
|
|
427
|
-
aspect: Vec2 | null;
|
|
437
|
+
aspect: Vec2$1 | null;
|
|
428
438
|
/** Radial gradients. */
|
|
429
|
-
focal: Vec2 | null;
|
|
439
|
+
focal: Vec2$1 | null;
|
|
430
440
|
/** Unit normal to the bar towards the stop chips (screen). */
|
|
431
|
-
normal: Vec2;
|
|
441
|
+
normal: Vec2$1;
|
|
432
442
|
/** Stops (sorted, as the gradient stores them) with their chips' screen positions. */
|
|
433
443
|
stops: (VectorGradientStop & {
|
|
434
444
|
index: number;
|
|
@@ -450,12 +460,12 @@ declare function vectorGradientTargetPath(doc: VectorDocument, selection: readon
|
|
|
450
460
|
/** The annotator of the selection's gradient (`target` paint), in screen pixels, or null when it has none. */
|
|
451
461
|
declare function getVectorGradientAnnotator(doc: VectorDocument, selection: readonly string[], viewport: VectorViewport, target: VectorGradientTarget): VectorGradientAnnotator | null;
|
|
452
462
|
/** Where `p` lies relative to the bar: offset along it (0 at the start, 1 at the end) and distance towards the stop chips. */
|
|
453
|
-
declare function vectorGradientBarPosition(a: Pick<VectorGradientAnnotator, 'start' | 'end' | 'normal'>, p: Vec2): {
|
|
463
|
+
declare function vectorGradientBarPosition(a: Pick<VectorGradientAnnotator, 'start' | 'end' | 'normal'>, p: Vec2$1): {
|
|
454
464
|
offset: number;
|
|
455
465
|
across: number;
|
|
456
466
|
};
|
|
457
467
|
/** The annotator part under screen point `p`: stops, then midpoints, the handles and the bar. */
|
|
458
|
-
declare function hitVectorGradientAnnotator(a: VectorGradientAnnotator, p: Vec2): VectorGradientPart | null;
|
|
468
|
+
declare function hitVectorGradientAnnotator(a: VectorGradientAnnotator, p: Vec2$1): VectorGradientPart | null;
|
|
459
469
|
|
|
460
470
|
/**
|
|
461
471
|
* Live appearance: path effect stacks and live boolean groups, evaluated on demand while the
|
|
@@ -628,7 +638,7 @@ declare function sanitizeVectorEffects(value: unknown): VectorEffect[];
|
|
|
628
638
|
* flipping it): offsets and positions move with it, angles turn the other way when it mirrors.
|
|
629
639
|
* Lengths such as sizes and radii are kept, like stroke widths.
|
|
630
640
|
*/
|
|
631
|
-
declare function transformVectorEffects(effects: readonly VectorEffect[], m: AffineMatrix, node?: VectorNode): VectorEffect[];
|
|
641
|
+
declare function transformVectorEffects(effects: readonly VectorEffect[], m: AffineMatrix$1, node?: VectorNode): VectorEffect[];
|
|
632
642
|
/**
|
|
633
643
|
* The live groups (live booleans and groups with effects) being edited: those in `ids` and those
|
|
634
644
|
* holding a node in `ids`. Their children are hit and outlined as stored instead of as drawn, so
|
|
@@ -637,7 +647,7 @@ declare function transformVectorEffects(effects: readonly VectorEffect[], m: Aff
|
|
|
637
647
|
declare function vectorEnteredGroups(nodes: readonly VectorNode[], ids: readonly string[]): Set<string>;
|
|
638
648
|
|
|
639
649
|
/** A map of the plane (document or node space). */
|
|
640
|
-
type VectorPointMap = (p: Vec2) => Vec2;
|
|
650
|
+
type VectorPointMap = (p: Vec2$1) => Vec2$1;
|
|
641
651
|
/** Every anchor and handle of `subpaths` through `f` (no subdivision). */
|
|
642
652
|
declare function mapVectorPoints(subpaths: readonly VectorSubpath[], f: VectorPointMap): VectorSubpath[];
|
|
643
653
|
interface MapVectorSubpathsOptions {
|
|
@@ -671,23 +681,23 @@ declare const VECTOR_DISTORT_TOLERANCE = 0.05;
|
|
|
671
681
|
/** How dragging a selection box handle distorts it: each corner freely, or in symmetric perspective. */
|
|
672
682
|
type VectorDistortMode = 'distort' | 'perspective';
|
|
673
683
|
/** A box's corners clockwise from the top left. */
|
|
674
|
-
declare const vectorBoxCorners: (b: VectorBounds) => Vec2[];
|
|
684
|
+
declare const vectorBoxCorners: (b: VectorBounds) => Vec2$1[];
|
|
675
685
|
/**
|
|
676
686
|
* The quad (clockwise from the top left) box `b` becomes when handle `handle` is dragged by `d`: a
|
|
677
687
|
* corner moves by `d` (`distort`), or along the drag's dominant axis with the corner beside it on
|
|
678
688
|
* that side moving the opposite way (`perspective`); a side moves both its corners.
|
|
679
689
|
*/
|
|
680
|
-
declare function vectorDistortQuad(b: VectorBounds, handle: VectorTransformHandle, d: Vec2, mode?: VectorDistortMode): Vec2[];
|
|
690
|
+
declare function vectorDistortQuad(b: VectorBounds, handle: VectorTransformHandle, d: Vec2$1, mode?: VectorDistortMode): Vec2$1[];
|
|
681
691
|
/**
|
|
682
692
|
* The skew for dragging side `handle` of box `b` by `d`: along that side, about the opposite side
|
|
683
693
|
* (or the centre, `fromCenter`). Corners give the identity.
|
|
684
694
|
*/
|
|
685
|
-
declare function vectorShearForSide(b: VectorBounds, handle: VectorTransformHandle, d: Vec2, fromCenter?: boolean): AffineMatrix;
|
|
695
|
+
declare function vectorShearForSide(b: VectorBounds, handle: VectorTransformHandle, d: Vec2$1, fromCenter?: boolean): AffineMatrix$1;
|
|
686
696
|
/**
|
|
687
697
|
* A skew by `ax` degrees horizontally (vertical lines lean right for positive angles: x' = x + tan(ax)·y)
|
|
688
698
|
* and `ay` degrees vertically (y' = y + tan(ay)·x), about `origin`.
|
|
689
699
|
*/
|
|
690
|
-
declare function vectorSkewMatrix(ax: number, ay: number, origin?: Vec2): AffineMatrix;
|
|
700
|
+
declare function vectorSkewMatrix(ax: number, ay: number, origin?: Vec2$1): AffineMatrix$1;
|
|
691
701
|
/**
|
|
692
702
|
* A node sent through `f`, a map of the space `parentToDoc` maps its parent to (the document):
|
|
693
703
|
* every anchor and handle is mapped in the node's own space, adaptively so curves stay within
|
|
@@ -695,7 +705,7 @@ declare function vectorSkewMatrix(ax: number, ay: number, origin?: Vec2): Affine
|
|
|
695
705
|
* handles mapped (bounding-box ones follow the new bounds), envelope meshes and a blend's spine
|
|
696
706
|
* are mapped too; stroke widths, live corner radii and effect parameters are kept.
|
|
697
707
|
*/
|
|
698
|
-
declare function distortVectorNode<T extends VectorNode>(node: T, parentToDoc: AffineMatrix, f: VectorPointMap, tolerance?: number): T;
|
|
708
|
+
declare function distortVectorNode<T extends VectorNode>(node: T, parentToDoc: AffineMatrix$1, f: VectorPointMap, tolerance?: number): T;
|
|
699
709
|
|
|
700
710
|
/**
|
|
701
711
|
* What a guide line shows: `align` lines run from a target through the snapped point or box,
|
|
@@ -725,7 +735,7 @@ interface VectorSnapGuides {
|
|
|
725
735
|
labels: VectorGuideLabel[];
|
|
726
736
|
}
|
|
727
737
|
interface VectorPointSnap extends VectorSnapGuides {
|
|
728
|
-
point: Vec2;
|
|
738
|
+
point: Vec2$1;
|
|
729
739
|
/** The rule that placed the point, or null when nothing was in reach. */
|
|
730
740
|
kind: VectorSnapKind | null;
|
|
731
741
|
/** Whether x / y were set by a target (for falling back to the grid on the other axis). */
|
|
@@ -749,7 +759,7 @@ interface VectorScaleSnap extends VectorSnapGuides {
|
|
|
749
759
|
* anchor) and how it keeps to it.
|
|
750
760
|
*/
|
|
751
761
|
interface VectorSnapLeave {
|
|
752
|
-
at: Vec2;
|
|
762
|
+
at: Vec2$1;
|
|
753
763
|
/**
|
|
754
764
|
* Shift held: keep to 45° steps round `at` (`angle`), to a diagonal (`square`, a box's
|
|
755
765
|
* corner) or to the nearer axis (`axis`, a dragged point).
|
|
@@ -763,7 +773,7 @@ interface VectorSnapLeave {
|
|
|
763
773
|
/** The construction guide angles new editors start with. */
|
|
764
774
|
declare const VECTOR_CONSTRUCTION_ANGLES: readonly number[];
|
|
765
775
|
/** Where `constrain` puts `p` (unchanged without one). */
|
|
766
|
-
declare function constrainToLeave(leave: VectorSnapLeave | null | undefined, p: Vec2): Vec2;
|
|
776
|
+
declare function constrainToLeave(leave: VectorSnapLeave | null | undefined, p: Vec2$1): Vec2$1;
|
|
767
777
|
/**
|
|
768
778
|
* Snap targets in document space, gathered once per gesture. Build them with `forMove`,
|
|
769
779
|
* `forResize`, `forDrawing`, `forAnchorDrag` or `forHandle`, then call `snapFrom`,
|
|
@@ -824,7 +834,7 @@ declare class VectorSnapTargets {
|
|
|
824
834
|
*/
|
|
825
835
|
private static collect;
|
|
826
836
|
/** Snaps a single point (see `snapFrom`). */
|
|
827
|
-
snapPoint(p: Vec2, tol: number): VectorPointSnap;
|
|
837
|
+
snapPoint(p: Vec2$1, tol: number): VectorPointSnap;
|
|
828
838
|
/**
|
|
829
839
|
* Snaps a point `p`, drawn or dragged from `leave` when given. With `leave.constrain` it keeps
|
|
830
840
|
* to its angle round `leave.at`, sliding along that way into line with the nearest target.
|
|
@@ -833,7 +843,7 @@ declare class VectorSnapTargets {
|
|
|
833
843
|
* through `leave.at` (where a target's line crosses it if one does nearby), or else lines up
|
|
834
844
|
* with targets on x and y.
|
|
835
845
|
*/
|
|
836
|
-
snapFrom(p: Vec2, leave: VectorSnapLeave | null | undefined, tol: number): VectorPointSnap;
|
|
846
|
+
snapFrom(p: Vec2$1, leave: VectorSnapLeave | null | undefined, tol: number): VectorPointSnap;
|
|
837
847
|
private label;
|
|
838
848
|
/** The anchor or centre nearest `p`, within `tol`. */
|
|
839
849
|
private nearestPoint;
|
|
@@ -989,10 +999,10 @@ interface VectorStrokeSpot {
|
|
|
989
999
|
subpath: number;
|
|
990
1000
|
/** Position along the subpath by length, 0–1. */
|
|
991
1001
|
t: number;
|
|
992
|
-
point: Vec2;
|
|
1002
|
+
point: Vec2$1;
|
|
993
1003
|
/** Ends of the stroke's width across the path there. */
|
|
994
|
-
left: Vec2;
|
|
995
|
-
right: Vec2;
|
|
1004
|
+
left: Vec2$1;
|
|
1005
|
+
right: Vec2$1;
|
|
996
1006
|
}
|
|
997
1007
|
/**
|
|
998
1008
|
* The width point being edited numerically (double-click with the width tool): `index` is the
|
|
@@ -1007,7 +1017,7 @@ interface VectorWidthPointEdit {
|
|
|
1007
1017
|
t: number;
|
|
1008
1018
|
left: number;
|
|
1009
1019
|
right: number;
|
|
1010
|
-
point: Vec2;
|
|
1020
|
+
point: Vec2$1;
|
|
1011
1021
|
}
|
|
1012
1022
|
/** A key press as the controller needs it. */
|
|
1013
1023
|
interface VectorKeyInput extends VectorModifiers {
|
|
@@ -1025,7 +1035,7 @@ interface VectorHover {
|
|
|
1025
1035
|
subpath: number;
|
|
1026
1036
|
segment: number;
|
|
1027
1037
|
t: number;
|
|
1028
|
-
point: Vec2;
|
|
1038
|
+
point: Vec2$1;
|
|
1029
1039
|
};
|
|
1030
1040
|
transformHandle?: VectorTransformHandle;
|
|
1031
1041
|
/** A live corner widget (direct tool): the corner's anchor. */
|
|
@@ -1079,16 +1089,16 @@ type VectorInteraction = {
|
|
|
1079
1089
|
tool: VectorTool;
|
|
1080
1090
|
nodeId: string;
|
|
1081
1091
|
bounds: VectorBounds;
|
|
1082
|
-
string?: [Vec2, Vec2];
|
|
1092
|
+
string?: [Vec2$1, Vec2$1];
|
|
1083
1093
|
} | {
|
|
1084
1094
|
type: 'stroke';
|
|
1085
1095
|
tool: 'knife' | 'eraser';
|
|
1086
|
-
points: Vec2[];
|
|
1096
|
+
points: Vec2$1[];
|
|
1087
1097
|
width: number;
|
|
1088
1098
|
} | {
|
|
1089
1099
|
type: 'builder';
|
|
1090
1100
|
mode: 'merge' | 'erase';
|
|
1091
|
-
points: Vec2[];
|
|
1101
|
+
points: Vec2$1[];
|
|
1092
1102
|
} | {
|
|
1093
1103
|
type: 'width';
|
|
1094
1104
|
ref: VectorWidthPointRef;
|
|
@@ -1109,7 +1119,7 @@ type VectorInteraction = {
|
|
|
1109
1119
|
| {
|
|
1110
1120
|
type: 'distort';
|
|
1111
1121
|
mode: VectorDistortMode | 'skew';
|
|
1112
|
-
corners: Vec2[];
|
|
1122
|
+
corners: Vec2$1[];
|
|
1113
1123
|
}
|
|
1114
1124
|
/** Envelope tool: a mesh point (`index`) or the surface (`index` null) being dragged. */
|
|
1115
1125
|
| {
|
|
@@ -1154,7 +1164,7 @@ interface VectorEditorState {
|
|
|
1154
1164
|
subpath: number;
|
|
1155
1165
|
} | null;
|
|
1156
1166
|
/** Last pointer position in document units (for the pen preview), or null when outside. */
|
|
1157
|
-
pointer: Vec2 | null;
|
|
1167
|
+
pointer: Vec2$1 | null;
|
|
1158
1168
|
/** Shape Builder and paint bucket highlight: faces, line pieces and the gesture's trail. */
|
|
1159
1169
|
builder: VectorBuilderPreview | null;
|
|
1160
1170
|
/** The Blend tool's first click: the shape (and anchor of its first subpath) the next click blends from. */
|
|
@@ -1210,7 +1220,7 @@ interface VectorBuilderPreview {
|
|
|
1210
1220
|
mode: 'merge' | 'erase' | 'fill';
|
|
1211
1221
|
faces: BezierPath[];
|
|
1212
1222
|
lines: BezierPath[];
|
|
1213
|
-
trail: Vec2[] | null;
|
|
1223
|
+
trail: Vec2$1[] | null;
|
|
1214
1224
|
}
|
|
1215
1225
|
/** Result of a Shape Builder gesture. */
|
|
1216
1226
|
interface VectorShapeBuilderResult {
|
|
@@ -1232,7 +1242,7 @@ interface VectorShapeBuilderFace {
|
|
|
1232
1242
|
/** Ids of the paths whose fill covers it, bottom to top (empty for an area only outlines enclose). */
|
|
1233
1243
|
sources: string[];
|
|
1234
1244
|
/** A point inside it. */
|
|
1235
|
-
point: Vec2 | null;
|
|
1245
|
+
point: Vec2$1 | null;
|
|
1236
1246
|
}
|
|
1237
1247
|
interface AddVectorNodeOptions {
|
|
1238
1248
|
/** Group to add into (default: the root). */
|
|
@@ -1313,8 +1323,8 @@ interface VectorWidthHandle {
|
|
|
1313
1323
|
x: number;
|
|
1314
1324
|
y: number;
|
|
1315
1325
|
/** Ends of its left and right sides. */
|
|
1316
|
-
left: Vec2;
|
|
1317
|
-
right: Vec2;
|
|
1326
|
+
left: Vec2$1;
|
|
1327
|
+
right: Vec2$1;
|
|
1318
1328
|
t: number;
|
|
1319
1329
|
/** Side scales (multiples of half the stroke width). */
|
|
1320
1330
|
leftScale: number;
|
|
@@ -1334,8 +1344,8 @@ declare function getAnchor(doc: VectorDocument, ref: VectorAnchorRef): VectorAnc
|
|
|
1334
1344
|
declare function getAnchorWorld(doc: VectorDocument, ref: VectorAnchorRef): {
|
|
1335
1345
|
x: number;
|
|
1336
1346
|
y: number;
|
|
1337
|
-
in?: Vec2;
|
|
1338
|
-
out?: Vec2;
|
|
1347
|
+
in?: Vec2$1;
|
|
1348
|
+
out?: Vec2$1;
|
|
1339
1349
|
type?: VectorAnchorType;
|
|
1340
1350
|
} | undefined;
|
|
1341
1351
|
/**
|
|
@@ -1371,10 +1381,10 @@ interface VectorSelectionBoxGeometry {
|
|
|
1371
1381
|
handle: VectorTransformHandle;
|
|
1372
1382
|
x: number;
|
|
1373
1383
|
y: number;
|
|
1374
|
-
screen: Vec2;
|
|
1384
|
+
screen: Vec2$1;
|
|
1375
1385
|
}[];
|
|
1376
1386
|
/** The four corners on screen, clockwise from the top left. */
|
|
1377
|
-
corners: Vec2[];
|
|
1387
|
+
corners: Vec2$1[];
|
|
1378
1388
|
}
|
|
1379
1389
|
declare function getVectorSelectionBoxGeometry(frame: VectorSelectionFrame, viewport: VectorViewport): VectorSelectionBoxGeometry;
|
|
1380
1390
|
/**
|
|
@@ -1388,7 +1398,7 @@ declare function getVectorEnvelopeTarget(doc: VectorDocument, selection: readonl
|
|
|
1388
1398
|
bounds: VectorBounds;
|
|
1389
1399
|
mesh: VectorWarpMesh;
|
|
1390
1400
|
};
|
|
1391
|
-
world: AffineMatrix;
|
|
1401
|
+
world: AffineMatrix$1;
|
|
1392
1402
|
} | null;
|
|
1393
1403
|
/** The resize cursor for a handle of a box rotated by `angle` degrees. */
|
|
1394
1404
|
declare function vectorResizeCursor(handle: VectorTransformHandle, angle?: number): string;
|
|
@@ -1494,11 +1504,11 @@ declare class VectorEditorController {
|
|
|
1494
1504
|
private replaceNode;
|
|
1495
1505
|
private freshIds;
|
|
1496
1506
|
private newId;
|
|
1497
|
-
screenToDocument(p: Vec2): Vec2;
|
|
1498
|
-
documentToScreen(p: Vec2): Vec2;
|
|
1507
|
+
screenToDocument(p: Vec2$1): Vec2$1;
|
|
1508
|
+
documentToScreen(p: Vec2$1): Vec2$1;
|
|
1499
1509
|
setViewport(viewport: Partial<VectorViewport>): void;
|
|
1500
1510
|
/** Zooms by `factor` keeping the document point under `screen` in place. */
|
|
1501
|
-
zoomAt(screen: Vec2, factor: number): void;
|
|
1511
|
+
zoomAt(screen: Vec2$1, factor: number): void;
|
|
1502
1512
|
panBy(dx: number, dy: number): void;
|
|
1503
1513
|
/** Fits the artboard (or `bounds`) into a canvas of `size` screen pixels. */
|
|
1504
1514
|
zoomToFit(size: {
|
|
@@ -1509,7 +1519,7 @@ declare class VectorEditorController {
|
|
|
1509
1519
|
bounds?: VectorBounds;
|
|
1510
1520
|
}): void;
|
|
1511
1521
|
/** Zoom at the canvas centre-ish: positive `delta` zooms out (wheel convention). Use with `wheel`. */
|
|
1512
|
-
wheel(screen: Vec2, delta: {
|
|
1522
|
+
wheel(screen: Vec2$1, delta: {
|
|
1513
1523
|
x: number;
|
|
1514
1524
|
y: number;
|
|
1515
1525
|
}, mods?: VectorModifiers): void;
|
|
@@ -1765,7 +1775,7 @@ declare class VectorEditorController {
|
|
|
1765
1775
|
* so straight lines stay straight. Curves are followed within `tolerance` (document units).
|
|
1766
1776
|
* One undo step.
|
|
1767
1777
|
*/
|
|
1768
|
-
distort(corners: readonly Vec2[], options?: {
|
|
1778
|
+
distort(corners: readonly Vec2$1[], options?: {
|
|
1769
1779
|
ids?: readonly string[];
|
|
1770
1780
|
tolerance?: number;
|
|
1771
1781
|
}): VectorActionResult;
|
|
@@ -1776,7 +1786,7 @@ declare class VectorEditorController {
|
|
|
1776
1786
|
*/
|
|
1777
1787
|
skew(ax: number, ay?: number, options?: {
|
|
1778
1788
|
ids?: readonly string[];
|
|
1779
|
-
origin?: Vec2;
|
|
1789
|
+
origin?: Vec2$1;
|
|
1780
1790
|
}): VectorActionResult;
|
|
1781
1791
|
/** A selection box handle dragged in Free Distort mode. */
|
|
1782
1792
|
private moveDistort;
|
|
@@ -1826,7 +1836,7 @@ declare class VectorEditorController {
|
|
|
1826
1836
|
private downEnvelope;
|
|
1827
1837
|
private moveEnvelope;
|
|
1828
1838
|
/** Applies a matrix to the selected (or given) nodes as one undo step. */
|
|
1829
|
-
transform(matrix: AffineMatrix, options?: {
|
|
1839
|
+
transform(matrix: AffineMatrix$1, options?: {
|
|
1830
1840
|
ids?: readonly string[];
|
|
1831
1841
|
label?: string;
|
|
1832
1842
|
}): VectorActionResult;
|
|
@@ -1843,12 +1853,12 @@ declare class VectorEditorController {
|
|
|
1843
1853
|
*/
|
|
1844
1854
|
scale(sx: number, sy?: number, options?: {
|
|
1845
1855
|
ids?: readonly string[];
|
|
1846
|
-
origin?: Vec2;
|
|
1856
|
+
origin?: Vec2$1;
|
|
1847
1857
|
}): VectorActionResult;
|
|
1848
1858
|
/** Rotates clockwise by `degrees` around `origin` (default: the selection centre). */
|
|
1849
1859
|
rotate(degrees: number, options?: {
|
|
1850
1860
|
ids?: readonly string[];
|
|
1851
|
-
origin?: Vec2;
|
|
1861
|
+
origin?: Vec2$1;
|
|
1852
1862
|
}): VectorActionResult;
|
|
1853
1863
|
/** Sets each selected (or given) node's rotation to `degrees`, turning it around its own centre. */
|
|
1854
1864
|
setRotation(degrees: number, options?: {
|
|
@@ -1873,7 +1883,7 @@ declare class VectorEditorController {
|
|
|
1873
1883
|
/** Copies the selection (offset by `offset`, default 10, 10) on top of each original. */
|
|
1874
1884
|
duplicate(options?: {
|
|
1875
1885
|
ids?: readonly string[];
|
|
1876
|
-
offset?: Vec2;
|
|
1886
|
+
offset?: Vec2$1;
|
|
1877
1887
|
}): string[];
|
|
1878
1888
|
private withDuplicates;
|
|
1879
1889
|
/** Groups the selected nodes (they must share a parent). Returns the group id. */
|
|
@@ -1983,7 +1993,7 @@ declare class VectorEditorController {
|
|
|
1983
1993
|
* deleted in the same gesture go with the face. Every shape covering a touched face loses
|
|
1984
1994
|
* that area; paths keep their own transforms. One undo step.
|
|
1985
1995
|
*/
|
|
1986
|
-
shapeBuilder(points: readonly Vec2[], options?: {
|
|
1996
|
+
shapeBuilder(points: readonly Vec2$1[], options?: {
|
|
1987
1997
|
ids?: readonly string[];
|
|
1988
1998
|
erase?: boolean;
|
|
1989
1999
|
tolerance?: number;
|
|
@@ -1998,7 +2008,7 @@ declare class VectorEditorController {
|
|
|
1998
2008
|
* (default `editing.fillGap`) closes gaps up to that size between loose ends. Returns the new
|
|
1999
2009
|
* path's id, or null when nothing encloses the point.
|
|
2000
2010
|
*/
|
|
2001
|
-
fillRegion(point: Vec2, options?: {
|
|
2011
|
+
fillRegion(point: Vec2$1, options?: {
|
|
2002
2012
|
gap?: number;
|
|
2003
2013
|
}): string | null;
|
|
2004
2014
|
/** Updates the Shape Builder / paint bucket highlight for the pointer at `p`; true when it changed. */
|
|
@@ -2014,7 +2024,7 @@ declare class VectorEditorController {
|
|
|
2014
2024
|
* Moves one anchor to a document position. Its handles follow; with `curvature` (default:
|
|
2015
2025
|
* the `curvatureMoves` setting) its two segments bend instead, as the Curvature tool does.
|
|
2016
2026
|
*/
|
|
2017
|
-
moveAnchor(ref: VectorAnchorRef, to: Vec2, options?: {
|
|
2027
|
+
moveAnchor(ref: VectorAnchorRef, to: Vec2$1, options?: {
|
|
2018
2028
|
curvature?: boolean;
|
|
2019
2029
|
}): VectorActionResult;
|
|
2020
2030
|
/** `doc` with anchor `ref` moved to document point `to` by a Curvature-tool move. */
|
|
@@ -2025,15 +2035,15 @@ declare class VectorEditorController {
|
|
|
2025
2035
|
* Bends a segment so the curve passes through document point `to` at parameter `t`
|
|
2026
2036
|
* (default 0.5, clamped to 0.05–0.95); see `bendSegment` in `pathEdit`.
|
|
2027
2037
|
*/
|
|
2028
|
-
bendSegment(ref: VectorSegmentRef, to: Vec2, t?: number): VectorActionResult;
|
|
2038
|
+
bendSegment(ref: VectorSegmentRef, to: Vec2$1, t?: number): VectorActionResult;
|
|
2029
2039
|
/** Moves one handle to a document position (see `moveAnchorHandle` for how the opposite handle follows). */
|
|
2030
|
-
moveHandle(ref: VectorHandleRef, to: Vec2, options?: {
|
|
2040
|
+
moveHandle(ref: VectorHandleRef, to: Vec2$1, options?: {
|
|
2031
2041
|
breakHandles?: boolean;
|
|
2032
2042
|
}): VectorActionResult;
|
|
2033
2043
|
/** Converts the selected (or given) anchors between corner, smooth and symmetric. */
|
|
2034
2044
|
convertAnchors(type: VectorAnchorType, refs?: readonly VectorAnchorRef[]): VectorActionResult;
|
|
2035
2045
|
/** Adds an anchor on the nearest segment of `nodeId` to document point `point` (shape unchanged). */
|
|
2036
|
-
insertAnchorAt(nodeId: string, point: Vec2): VectorAnchorRef | null;
|
|
2046
|
+
insertAnchorAt(nodeId: string, point: Vec2$1): VectorAnchorRef | null;
|
|
2037
2047
|
/**
|
|
2038
2048
|
* Deletes the selected (or given) anchors; subpaths left with one anchor and empty paths go
|
|
2039
2049
|
* too. With `keepShape` (default: the `keepShapeOnDelete` setting, on) the neighbours'
|
|
@@ -2096,7 +2106,7 @@ declare class VectorEditorController {
|
|
|
2096
2106
|
* anchor when within the pick distance of one). A closed subpath opens there; an open one
|
|
2097
2107
|
* splits in two (a one-subpath path becomes two paths). Returns the ids of the paths.
|
|
2098
2108
|
*/
|
|
2099
|
-
cutPathAt(nodeId: string, point: Vec2): string[] | null;
|
|
2109
|
+
cutPathAt(nodeId: string, point: Vec2$1): string[] | null;
|
|
2100
2110
|
/** Scissors on the selected (or given) anchors: each cuts its subpath there (see `cutPathAt`). */
|
|
2101
2111
|
cutAtAnchors(refs?: readonly VectorAnchorRef[]): VectorActionResult;
|
|
2102
2112
|
/** Visible, unlocked paths a stroke over `points` can reach: in `ids`, the selection, or (with neither) any whose bounds it crosses. */
|
|
@@ -2109,7 +2119,7 @@ declare class VectorEditorController {
|
|
|
2109
2119
|
* selection, or (with neither) every path it crosses. Returns the ids of the pieces (empty
|
|
2110
2120
|
* when nothing was cut).
|
|
2111
2121
|
*/
|
|
2112
|
-
knife(points: readonly Vec2[], options?: {
|
|
2122
|
+
knife(points: readonly Vec2$1[], options?: {
|
|
2113
2123
|
ids?: readonly string[];
|
|
2114
2124
|
}): string[];
|
|
2115
2125
|
/**
|
|
@@ -2119,7 +2129,7 @@ declare class VectorEditorController {
|
|
|
2119
2129
|
* the given paths, the selection, or (with neither) every path it reaches. Returns the ids
|
|
2120
2130
|
* of the paths it changed or created.
|
|
2121
2131
|
*/
|
|
2122
|
-
erase(points: readonly Vec2[], options?: {
|
|
2132
|
+
erase(points: readonly Vec2$1[], options?: {
|
|
2123
2133
|
ids?: readonly string[];
|
|
2124
2134
|
size?: number;
|
|
2125
2135
|
}): string[];
|
|
@@ -2133,7 +2143,7 @@ declare class VectorEditorController {
|
|
|
2133
2143
|
* Returns the new ids.
|
|
2134
2144
|
*/
|
|
2135
2145
|
paste(text?: string, options?: {
|
|
2136
|
-
offset?: Vec2;
|
|
2146
|
+
offset?: Vec2$1;
|
|
2137
2147
|
}): string[];
|
|
2138
2148
|
undo(): boolean;
|
|
2139
2149
|
redo(): boolean;
|
|
@@ -2171,7 +2181,7 @@ declare class VectorEditorController {
|
|
|
2171
2181
|
private nearestOutline;
|
|
2172
2182
|
private sameHover;
|
|
2173
2183
|
/** Primary button down on the canvas at `screen` (pixels relative to the canvas). */
|
|
2174
|
-
pointerDown(screen: Vec2, input?: VectorPointerInput): void;
|
|
2184
|
+
pointerDown(screen: Vec2$1, input?: VectorPointerInput): void;
|
|
2175
2185
|
/** The shape under the pointer for the Blend tool, and the anchor of its first subpath under it. */
|
|
2176
2186
|
private blendHit;
|
|
2177
2187
|
/** Blend tool: the first click picks the shape to blend from, the next one blends it into the shape clicked. */
|
|
@@ -2182,7 +2192,7 @@ declare class VectorEditorController {
|
|
|
2182
2192
|
private downPencil;
|
|
2183
2193
|
private downShape;
|
|
2184
2194
|
/** Pointer moved over the canvas (with or without a button down). */
|
|
2185
|
-
pointerMove(screen: Vec2, input?: VectorPointerInput): void;
|
|
2195
|
+
pointerMove(screen: Vec2$1, input?: VectorPointerInput): void;
|
|
2186
2196
|
/** Snaps a move of the selection by (dx, dy): its bounds line up with targets or space evenly, else go to the grid. */
|
|
2187
2197
|
private snapMove;
|
|
2188
2198
|
/** The anchor a point drag snaps by, where it started: the grabbed one, else the moving one nearest the press. */
|
|
@@ -2190,7 +2200,7 @@ declare class VectorEditorController {
|
|
|
2190
2200
|
/** A shape's dragged corner moved so its width or height matches another object's, when one is within reach. */
|
|
2191
2201
|
private matchShapeSize;
|
|
2192
2202
|
/** Primary button released. */
|
|
2193
|
-
pointerUp(screen?: Vec2, input?: VectorPointerInput): void;
|
|
2203
|
+
pointerUp(screen?: Vec2$1, input?: VectorPointerInput): void;
|
|
2194
2204
|
/** The pointer left the canvas. */
|
|
2195
2205
|
pointerLeave(): void;
|
|
2196
2206
|
/** Abandons the drag in progress (Escape, lost capture). */
|
|
@@ -2199,7 +2209,7 @@ declare class VectorEditorController {
|
|
|
2199
2209
|
* Double click: select tool enters path editing, direct tool toggles an anchor or adds one,
|
|
2200
2210
|
* width tool opens the width-point editor (`widthPointEdit`).
|
|
2201
2211
|
*/
|
|
2202
|
-
doubleClick(screen: Vec2): void;
|
|
2212
|
+
doubleClick(screen: Vec2$1): void;
|
|
2203
2213
|
/**
|
|
2204
2214
|
* Handles editor shortcuts. Returns true when the key was used (call `preventDefault`).
|
|
2205
2215
|
* Do not forward keys typed into text inputs.
|
|
@@ -2208,10 +2218,10 @@ declare class VectorEditorController {
|
|
|
2208
2218
|
keyUp(input: VectorKeyInput): void;
|
|
2209
2219
|
}
|
|
2210
2220
|
/** Scale factors and origin for dragging a selection-box handle to `p`. */
|
|
2211
|
-
declare function scaleFor(handle: VectorTransformHandle, b: VectorBounds, p: Vec2, mods?: VectorModifiers): {
|
|
2221
|
+
declare function scaleFor(handle: VectorTransformHandle, b: VectorBounds, p: Vec2$1, mods?: VectorModifiers): {
|
|
2212
2222
|
sx: number;
|
|
2213
2223
|
sy: number;
|
|
2214
|
-
origin: Vec2;
|
|
2224
|
+
origin: Vec2$1;
|
|
2215
2225
|
};
|
|
2216
2226
|
|
|
2217
2227
|
interface VectorRenderPath {
|
|
@@ -2300,8 +2310,8 @@ interface VectorRenderWidthPoint {
|
|
|
2300
2310
|
ref: VectorWidthPointRef;
|
|
2301
2311
|
x: number;
|
|
2302
2312
|
y: number;
|
|
2303
|
-
left: Vec2;
|
|
2304
|
-
right: Vec2;
|
|
2313
|
+
left: Vec2$1;
|
|
2314
|
+
right: Vec2$1;
|
|
2305
2315
|
selected: boolean;
|
|
2306
2316
|
/** The part under the pointer, if any. */
|
|
2307
2317
|
hovered: 'center' | 'left' | 'right' | null;
|
|
@@ -2338,7 +2348,7 @@ interface VectorOverlayRenderData {
|
|
|
2338
2348
|
selectionBox: (VectorBounds & {
|
|
2339
2349
|
angle: number;
|
|
2340
2350
|
transform: string;
|
|
2341
|
-
corners: Vec2[];
|
|
2351
|
+
corners: Vec2$1[];
|
|
2342
2352
|
handles: VectorSelectionBoxGeometry['handles'];
|
|
2343
2353
|
freeDistort: boolean;
|
|
2344
2354
|
}) | null;
|
|
@@ -2349,7 +2359,7 @@ interface VectorOverlayRenderData {
|
|
|
2349
2359
|
distort: {
|
|
2350
2360
|
mode: 'distort' | 'perspective' | 'skew';
|
|
2351
2361
|
d: string;
|
|
2352
|
-
corners: Vec2[];
|
|
2362
|
+
corners: Vec2$1[];
|
|
2353
2363
|
} | null;
|
|
2354
2364
|
/**
|
|
2355
2365
|
* The Envelope tool's mesh of the selected envelope (screen space): `grid` is the grid lines as
|
|
@@ -2407,7 +2417,7 @@ interface VectorOverlayRenderData {
|
|
|
2407
2417
|
y2: number;
|
|
2408
2418
|
} | null;
|
|
2409
2419
|
/** Where the scissors would cut (screen space). */
|
|
2410
|
-
cutPoint: Vec2 | null;
|
|
2420
|
+
cutPoint: Vec2$1 | null;
|
|
2411
2421
|
/**
|
|
2412
2422
|
* Live corner widgets of the direct tool (screen space): drag one to round its corners,
|
|
2413
2423
|
* Alt-click to cycle round / inverted / chamfer, click to pick its corner alone.
|
|
@@ -2422,8 +2432,8 @@ interface VectorOverlayRenderData {
|
|
|
2422
2432
|
widthSpot: {
|
|
2423
2433
|
x: number;
|
|
2424
2434
|
y: number;
|
|
2425
|
-
left: Vec2;
|
|
2426
|
-
right: Vec2;
|
|
2435
|
+
left: Vec2$1;
|
|
2436
|
+
right: Vec2$1;
|
|
2427
2437
|
} | null;
|
|
2428
2438
|
/**
|
|
2429
2439
|
* Shape Builder and paint bucket highlight (screen space): `faces` are filled paths (fill
|
|
@@ -2450,12 +2460,12 @@ interface VectorOverlayRenderData {
|
|
|
2450
2460
|
spines: {
|
|
2451
2461
|
id: string;
|
|
2452
2462
|
d: string;
|
|
2453
|
-
keys: Vec2[];
|
|
2463
|
+
keys: Vec2$1[];
|
|
2454
2464
|
replaced: boolean;
|
|
2455
2465
|
}[];
|
|
2456
2466
|
start: {
|
|
2457
2467
|
d: string;
|
|
2458
|
-
anchor: Vec2 | null;
|
|
2468
|
+
anchor: Vec2$1 | null;
|
|
2459
2469
|
} | null;
|
|
2460
2470
|
anchors: {
|
|
2461
2471
|
x: number;
|
|
@@ -2858,9 +2868,9 @@ declare function removeAnchorsKeepingShape(sp: VectorSubpath, indices: readonly
|
|
|
2858
2868
|
* `B(t) = L(t) + 3t(1 − t)·offset` exactly. The end anchors keep their types (a smooth or
|
|
2859
2869
|
* symmetric end turns its other handle to stay in line).
|
|
2860
2870
|
*/
|
|
2861
|
-
declare function bendSegment(sp: VectorSubpath, segment: number, t: number, p: Vec2): VectorSubpath;
|
|
2871
|
+
declare function bendSegment(sp: VectorSubpath, segment: number, t: number, p: Vec2$1): VectorSubpath;
|
|
2862
2872
|
/** The point at parameter `t` of segment `segment` (for tests and previews). */
|
|
2863
|
-
declare function subpathPointAt(sp: VectorSubpath, segment: number, t: number): Vec2;
|
|
2873
|
+
declare function subpathPointAt(sp: VectorSubpath, segment: number, t: number): Vec2$1;
|
|
2864
2874
|
/**
|
|
2865
2875
|
* Moves anchor `index` to `q` the way the Curvature tool drags a point: only the two segments
|
|
2866
2876
|
* at it change. A smooth or symmetric anchor turns its handles along the line through its
|
|
@@ -2868,7 +2878,7 @@ declare function subpathPointAt(sp: VectorSubpath, segment: number, t: number):
|
|
|
2868
2878
|
* their directions while their lengths scale with their segment's chord, so the segments
|
|
2869
2879
|
* beyond don't move and a corner without handles keeps none.
|
|
2870
2880
|
*/
|
|
2871
|
-
declare function curvatureMoveAnchor(sp: VectorSubpath, index: number, q: Vec2): VectorSubpath;
|
|
2881
|
+
declare function curvatureMoveAnchor(sp: VectorSubpath, index: number, q: Vec2$1): VectorSubpath;
|
|
2872
2882
|
/**
|
|
2873
2883
|
* Cuts a subpath at the anchors `at`: each becomes the end of one open piece and the start of
|
|
2874
2884
|
* the next, its handle off each piece dropped (the shape doesn't change). A closed subpath
|
|
@@ -3024,9 +3034,9 @@ declare function recognizeInkShape(points: readonly Point[], options?: Recognize
|
|
|
3024
3034
|
interface VectorArrowheadShape {
|
|
3025
3035
|
end: 'start' | 'end';
|
|
3026
3036
|
kind: VectorArrowhead;
|
|
3027
|
-
tip: Vec2;
|
|
3037
|
+
tip: Vec2$1;
|
|
3028
3038
|
/** Unit direction the head points in. */
|
|
3029
|
-
dir: Vec2;
|
|
3039
|
+
dir: Vec2$1;
|
|
3030
3040
|
/** Distance from the tip back to where the stroke ends under the head. */
|
|
3031
3041
|
inset: number;
|
|
3032
3042
|
path: BezierPath;
|
|
@@ -3064,7 +3074,7 @@ declare function arrowheadWeight(style: VectorStyle, end: 'start' | 'end'): numb
|
|
|
3064
3074
|
/** Distance from the tip where the stroke ends, for a stroke whose cap reaches `cap` past its end. */
|
|
3065
3075
|
declare function arrowheadInset(kind: VectorArrowhead, hw: number, cap: number): number;
|
|
3066
3076
|
/** The outline of a `kind` head of weight `hw` with its tip at `tip`, pointing along unit `dir`. */
|
|
3067
|
-
declare function arrowheadPath(kind: VectorArrowhead, tip: Vec2, dir: Vec2, hw: number): BezierPath;
|
|
3077
|
+
declare function arrowheadPath(kind: VectorArrowhead, tip: Vec2$1, dir: Vec2$1, hw: number): BezierPath;
|
|
3068
3078
|
/**
|
|
3069
3079
|
* The stroke of `path` as `style` draws it: its alignment, the line it follows (shortened under
|
|
3070
3080
|
* `tip`-aligned heads) and its arrowheads. Heads go on the start of the first subpath and the
|
|
@@ -3082,7 +3092,7 @@ declare function vectorStrokeOutlinePath(path: BezierPath, style: VectorStyle):
|
|
|
3082
3092
|
* the width of the outline for a centred stroke, within the whole width on the inside or the
|
|
3083
3093
|
* outside of the fill for an aligned one, or on an arrowhead.
|
|
3084
3094
|
*/
|
|
3085
|
-
declare function hitTestVectorStroke(path: BezierPath, p: Vec2, style: VectorStyle, tolerance?: number): boolean;
|
|
3095
|
+
declare function hitTestVectorStroke(path: BezierPath, p: Vec2$1, style: VectorStyle, tolerance?: number): boolean;
|
|
3086
3096
|
/** How far the stroke can reach past the outline (for padding bounds and masks). */
|
|
3087
3097
|
declare function vectorStrokeReach(style: VectorStyle): number;
|
|
3088
3098
|
|
|
@@ -3166,7 +3176,7 @@ declare function strokePositionPoint(path: BezierPath, index: number, t: number)
|
|
|
3166
3176
|
/** A path node with the matrix of its parent space (parent → document). */
|
|
3167
3177
|
interface VectorPathEntry {
|
|
3168
3178
|
node: VectorPathNode;
|
|
3169
|
-
parent: AffineMatrix;
|
|
3179
|
+
parent: AffineMatrix$1;
|
|
3170
3180
|
}
|
|
3171
3181
|
/**
|
|
3172
3182
|
* The path nodes inside `roots` (or every node when `roots` is null), bottom to top, with their
|
|
@@ -3245,9 +3255,9 @@ declare function vectorShapeBuilderMap(entries: readonly VectorPathEntry[]): Vec
|
|
|
3245
3255
|
* The face under `p`, or with `lineTolerance` (erasing) first the nearer of the line piece and
|
|
3246
3256
|
* the outline edge that close.
|
|
3247
3257
|
*/
|
|
3248
|
-
declare function vectorShapeBuilderHit(m: VectorShapeBuilderMap, p: Vec2, lineTolerance?: number | null): VectorBuilderHit | null;
|
|
3258
|
+
declare function vectorShapeBuilderHit(m: VectorShapeBuilderMap, p: Vec2$1, lineTolerance?: number | null): VectorBuilderHit | null;
|
|
3249
3259
|
/** Points along a polyline no more than `step` apart (the pointer's path through faces). */
|
|
3250
|
-
declare function samplePolyline(points: readonly Vec2[], step: number): Vec2[];
|
|
3260
|
+
declare function samplePolyline(points: readonly Vec2$1[], step: number): Vec2$1[];
|
|
3251
3261
|
/** Adds what a point hits to `touched` (each face or piece once). */
|
|
3252
3262
|
declare function addBuilderHit(touched: VectorBuilderTouched, hit: VectorBuilderHit | null): boolean;
|
|
3253
3263
|
/**
|
|
@@ -3358,9 +3368,9 @@ interface VectorMorphContour {
|
|
|
3358
3368
|
pts: Point[];
|
|
3359
3369
|
}
|
|
3360
3370
|
/** A subpath mapped by `m` as cubics (lines with handles at thirds), or null when empty. */
|
|
3361
|
-
declare function subpathToMorphContour(sp: VectorSubpath, m?: AffineMatrix): VectorMorphContour | null;
|
|
3371
|
+
declare function subpathToMorphContour(sp: VectorSubpath, m?: AffineMatrix$1): VectorMorphContour | null;
|
|
3362
3372
|
/** A contour back to a subpath (`m` maps it out of the morph's space). Straight cubics become lines. */
|
|
3363
|
-
declare function morphContourToSubpath(c: VectorMorphContour, m?: AffineMatrix, closed?: boolean): VectorSubpath;
|
|
3373
|
+
declare function morphContourToSubpath(c: VectorMorphContour, m?: AffineMatrix$1, closed?: boolean): VectorSubpath;
|
|
3364
3374
|
/**
|
|
3365
3375
|
* Exactly the same outline with `segments` cubics (at least as many as it has), the new
|
|
3366
3376
|
* anchors spread over its segments in proportion to their arc length (largest remainder)
|
|
@@ -3411,7 +3421,7 @@ declare function interpolateMorphContours(a: readonly VectorMorphContour[], b: r
|
|
|
3411
3421
|
* Interpolates two rigid matrices as a rotation (the shorter way round) plus a translation.
|
|
3412
3422
|
* Any scale or skew is interpolated linearly in the rotated frame.
|
|
3413
3423
|
*/
|
|
3414
|
-
declare function interpolateRigidMatrix(a: AffineMatrix, b: AffineMatrix, t: number): AffineMatrix;
|
|
3424
|
+
declare function interpolateRigidMatrix(a: AffineMatrix$1, b: AffineMatrix$1, t: number): AffineMatrix$1;
|
|
3415
3425
|
/** Two colours mixed in OKLab (premultiplied alpha); unreadable colours switch halfway. */
|
|
3416
3426
|
declare function interpolateVectorColor(a: string, b: string, t: number): string;
|
|
3417
3427
|
/**
|
|
@@ -3572,7 +3582,7 @@ declare function offsetPaths(paths: readonly BezierPath[], amount: number, join?
|
|
|
3572
3582
|
* at the centre to `angle` degrees at the farthest point. Segments are subdivided and their
|
|
3573
3583
|
* handles mapped through the warp's derivative, which keeps the result smooth.
|
|
3574
3584
|
*/
|
|
3575
|
-
declare function twistPaths(paths: readonly BezierPath[], angle: number, center: Vec2): BezierPath[];
|
|
3585
|
+
declare function twistPaths(paths: readonly BezierPath[], angle: number, center: Vec2$1): BezierPath[];
|
|
3576
3586
|
/**
|
|
3577
3587
|
* Zig Zag: every segment gets `ridges` ridges: it is split into `ridges + 1` equal pieces and the
|
|
3578
3588
|
* points (original ones included) are pushed alternately `size` to either side of the path.
|
|
@@ -3592,7 +3602,7 @@ declare function mergePaths(paths: readonly BezierPath[], mode?: VectorMergeMode
|
|
|
3592
3602
|
interface VectorRepeaterCopy {
|
|
3593
3603
|
/** Copy number (0 is the original). */
|
|
3594
3604
|
index: number;
|
|
3595
|
-
matrix: AffineMatrix;
|
|
3605
|
+
matrix: AffineMatrix$1;
|
|
3596
3606
|
opacity: number;
|
|
3597
3607
|
}
|
|
3598
3608
|
/**
|
|
@@ -3601,14 +3611,14 @@ interface VectorRepeaterCopy {
|
|
|
3601
3611
|
* `k = i + offset`; opacity runs from the start to the end opacity across the copies, and a
|
|
3602
3612
|
* fractional copy count fades the last copy by its fraction.
|
|
3603
3613
|
*/
|
|
3604
|
-
declare function vectorRepeaterCopies(r: VectorEffectParamsMap['repeater'], pivot: Vec2): VectorRepeaterCopy[];
|
|
3614
|
+
declare function vectorRepeaterCopies(r: VectorEffectParamsMap['repeater'], pivot: Vec2$1): VectorRepeaterCopy[];
|
|
3605
3615
|
/** Each path repeated by `vectorRepeaterCopies` (copy order, the original first). */
|
|
3606
|
-
declare function repeatPaths(paths: readonly BezierPath[], r: VectorEffectParamsMap['repeater'], pivot: Vec2): {
|
|
3616
|
+
declare function repeatPaths(paths: readonly BezierPath[], r: VectorEffectParamsMap['repeater'], pivot: Vec2$1): {
|
|
3607
3617
|
copy: VectorRepeaterCopy;
|
|
3608
3618
|
paths: BezierPath[];
|
|
3609
3619
|
}[];
|
|
3610
3620
|
/** The middle of the paths' bounds (the origin when they are empty). */
|
|
3611
|
-
declare function pathsCenter(paths: readonly BezierPath[]): Vec2;
|
|
3621
|
+
declare function pathsCenter(paths: readonly BezierPath[]): Vec2$1;
|
|
3612
3622
|
|
|
3613
3623
|
/**
|
|
3614
3624
|
* The paint server of a gradient along or across the stroke of `node` (in its own space): a
|
|
@@ -3621,140 +3631,6 @@ declare function vectorStrokeGradientDefs(g: VectorGradient, id: string, node: V
|
|
|
3621
3631
|
precision?: number;
|
|
3622
3632
|
}): VectorPaintDef[];
|
|
3623
3633
|
|
|
3624
|
-
/**
|
|
3625
|
-
* Perspective (projective) maps between quadrilaterals: what Free Distort needs. Pure maths;
|
|
3626
|
-
* degenerate or non-finite quads give `null` instead of NaNs.
|
|
3627
|
-
*
|
|
3628
|
-
* Ported from ArtCraft (MIT OR Apache-2.0, © ArtCraft Team and contributors; see
|
|
3629
|
-
* THIRD_PARTY_NOTICES.md): pdfcraft `crates/geom/src/perspective.rs` (`Homography::from_points`,
|
|
3630
|
-
* `Homography::apply`, `solve8`, `order_quad`).
|
|
3631
|
-
*/
|
|
3632
|
-
|
|
3633
|
-
/** A 3×3 projective map, row-major, normalised so that the last entry is 1. */
|
|
3634
|
-
type VectorHomography = readonly [number, number, number, number, number, number, number, number, number];
|
|
3635
|
-
/**
|
|
3636
|
-
* Gaussian elimination with partial pivoting on an 8×8 system (the 9th column of each row is the
|
|
3637
|
-
* right-hand side). Null when the system is singular.
|
|
3638
|
-
*/
|
|
3639
|
-
declare function solve8(rows: readonly (readonly number[])[]): number[] | null;
|
|
3640
|
-
/** The image of `p`, or null where the map sends it to infinity. */
|
|
3641
|
-
declare function applyVectorHomography(h: VectorHomography, p: Vec2): Vec2 | null;
|
|
3642
|
-
/**
|
|
3643
|
-
* The projective map that takes each of `from` to the point at the same index of `to`. Null when
|
|
3644
|
-
* three of either set are collinear or a coordinate is not finite.
|
|
3645
|
-
*/
|
|
3646
|
-
declare function vectorHomography(from: readonly Vec2[], to: readonly Vec2[]): VectorHomography | null;
|
|
3647
|
-
/**
|
|
3648
|
-
* Whether `h` maps the whole convex quad `quad` without sending any of it through infinity (the
|
|
3649
|
-
* denominator keeps one sign over it): what a usable distortion needs.
|
|
3650
|
-
*/
|
|
3651
|
-
declare function vectorHomographyKeepsQuad(h: VectorHomography, quad: readonly Vec2[]): boolean;
|
|
3652
|
-
/**
|
|
3653
|
-
* The four corners in reading order for a y-down space: top-left, top-right, bottom-right,
|
|
3654
|
-
* bottom-left, whatever order they come in. Null unless they form a convex quadrilateral with a
|
|
3655
|
-
* non-negligible area.
|
|
3656
|
-
*/
|
|
3657
|
-
declare function orderVectorQuad(points: readonly Vec2[]): Vec2[] | null;
|
|
3658
|
-
|
|
3659
|
-
/**
|
|
3660
|
-
* Warp geometry for envelope distortion: preset warp styles and editable Bézier meshes, both
|
|
3661
|
-
* forward maps from a source box (the bounds of the paths an envelope bends) to the node's space.
|
|
3662
|
-
*
|
|
3663
|
-
* - **Presets** (`VectorWarpStyle`, Photoshop's fifteen with bend and horizontal / vertical
|
|
3664
|
-
* distortion in percent): each is one bicubic Bézier patch whose 4 × 4 control grid follows the
|
|
3665
|
-
* bend (`vectorWarpPresetGrid`). Every preset is the identity at bend 0 and continuous in it.
|
|
3666
|
-
* - **Meshes** (`VectorWarpMesh`): a grid of bicubic patches. Splitting a mesh (`splitVectorMeshU`
|
|
3667
|
-
* / `V`) is an exact de Casteljau subdivision, so it never changes the shape, and a preset turns
|
|
3668
|
-
* into an editable mesh of any size exactly.
|
|
3669
|
-
*
|
|
3670
|
-
* Ported from ArtCraft (MIT OR Apache-2.0, © ArtCraft Team and contributors; see
|
|
3671
|
-
* THIRD_PARTY_NOTICES.md): photocraft `crates/geom/src/warp.rs` (`WarpStyle`, `StyleWarp`,
|
|
3672
|
-
* `rest_grid`, `edge_arc`, `arc_grid`, `blend_rows`, `preset_grid`, `bernstein`, `split_cubic`,
|
|
3673
|
-
* `BERN_INV`, and `BezierMesh`: `identity`, `fit`, `eval`, `split_u`, `split_v`, `remove_split_u`,
|
|
3674
|
-
* `transpose`, `map_points`, `param_at`, `pull`, `smooth_lines`, `drag_point`, `control_bounds`;
|
|
3675
|
-
* `Warp::map` and `Warp::to_mesh`). The Coons patch of `vectorMeshFromOutline` is our own.
|
|
3676
|
-
*/
|
|
3677
|
-
|
|
3678
|
-
/** The fifteen presets in Photoshop's menu order. */
|
|
3679
|
-
declare const VECTOR_WARP_STYLES: readonly VectorWarpStyle[];
|
|
3680
|
-
declare const VECTOR_WARP_STYLE_LABELS: Readonly<Record<VectorWarpStyle, string>>;
|
|
3681
|
-
/**
|
|
3682
|
-
* A preset as a Bézier control grid (rows of `[x, y]` in box units, y down). `b`, `hd`, `vd` are
|
|
3683
|
-
* the bend and the horizontal / vertical distortion as fractions (−1…1); `aspect` is the box's
|
|
3684
|
-
* height over its width. The arc family stays circular in pixels, the other offsets scale with the
|
|
3685
|
-
* box, and a vertical warp is the horizontal one with the axes (and distortions) swapped.
|
|
3686
|
-
*/
|
|
3687
|
-
declare function vectorWarpPresetGrid(style: VectorWarpStyle, b: number, hd: number, vd: number, vertical: boolean, aspect: number): [number, number][][];
|
|
3688
|
-
/** A preset warp's settings (bend and distortions in percent, −100…100). */
|
|
3689
|
-
interface VectorWarpPreset {
|
|
3690
|
-
style: VectorWarpStyle;
|
|
3691
|
-
bend: number;
|
|
3692
|
-
horizontal?: number;
|
|
3693
|
-
vertical?: number;
|
|
3694
|
-
/** Bend along the vertical axis. */
|
|
3695
|
-
orientation?: 'horizontal' | 'vertical';
|
|
3696
|
-
}
|
|
3697
|
-
/**
|
|
3698
|
-
* A preset as one Bézier patch over `bounds` (points in the bounds' space), or null when it
|
|
3699
|
-
* changes nothing (an unknown style, all-zero amounts, or an empty box).
|
|
3700
|
-
*/
|
|
3701
|
-
declare function vectorWarpPresetMesh(preset: VectorWarpPreset, bounds: VectorBounds): VectorWarpMesh | null;
|
|
3702
|
-
/** Control points per row. */
|
|
3703
|
-
declare const vectorMeshColumns: (m: VectorWarpMesh) => number;
|
|
3704
|
-
/** Control point rows. */
|
|
3705
|
-
declare const vectorMeshRows: (m: VectorWarpMesh) => number;
|
|
3706
|
-
/** Whether a mesh is well formed: knots from 0 to 1 increasing, the right number of finite points. */
|
|
3707
|
-
declare function isValidVectorMesh(m: unknown): m is VectorWarpMesh;
|
|
3708
|
-
/** Fits a mesh with patch boundaries `us` / `vs` to the map `f` (box fractions → output) by interpolating it at each patch's thirds. Exact for bicubic maps (affine maps included). */
|
|
3709
|
-
declare function fitVectorMesh(f: (s: number, t: number) => Vec2, us: readonly number[], vs: readonly number[]): VectorWarpMesh;
|
|
3710
|
-
/** The identity mesh over `bounds` with `columns × rows` patches. */
|
|
3711
|
-
declare function vectorIdentityMesh(bounds: VectorBounds, columns?: number, rows?: number): VectorWarpMesh;
|
|
3712
|
-
/** The surface at box fractions `(s, t)`. */
|
|
3713
|
-
declare function evalVectorMesh(m: VectorWarpMesh, s: number, t: number): Vec2;
|
|
3714
|
-
/** The mesh with the patch column holding `s` split at `s` (exact). Null when `s` is on or too close to a boundary. */
|
|
3715
|
-
declare function splitVectorMeshU(m: VectorWarpMesh, s: number): VectorWarpMesh | null;
|
|
3716
|
-
/** The mesh with the patch row holding `t` split at `t` (exact). */
|
|
3717
|
-
declare function splitVectorMeshV(m: VectorWarpMesh, t: number): VectorWarpMesh | null;
|
|
3718
|
-
/**
|
|
3719
|
-
* The mesh without interior vertical boundary `k` (1 … us.length − 2), its two patch columns
|
|
3720
|
-
* merged: exact when they came from an unedited split; otherwise the outer control points stay and
|
|
3721
|
-
* the inner handles are extrapolated.
|
|
3722
|
-
*/
|
|
3723
|
-
declare function removeVectorMeshSplitU(m: VectorWarpMesh, k: number): VectorWarpMesh | null;
|
|
3724
|
-
/** Removes interior horizontal boundary `k`. */
|
|
3725
|
-
declare function removeVectorMeshSplitV(m: VectorWarpMesh, k: number): VectorWarpMesh | null;
|
|
3726
|
-
/** Every control point through `f` (exact for affine maps). */
|
|
3727
|
-
declare function mapVectorMeshPoints(m: VectorWarpMesh, f: (p: Vec2) => Vec2): VectorWarpMesh;
|
|
3728
|
-
/**
|
|
3729
|
-
* The mesh with `columns × rows` patches over the same surface: split exactly when its knots are
|
|
3730
|
-
* a subset of the new even ones (a one-patch mesh always is), otherwise refitted.
|
|
3731
|
-
*/
|
|
3732
|
-
declare function resizeVectorMesh(m: VectorWarpMesh, columns: number, rows: number): VectorWarpMesh;
|
|
3733
|
-
/** Bounding box of the control points (the surface lies inside it). */
|
|
3734
|
-
declare function vectorMeshControlBounds(m: VectorWarpMesh): VectorBounds;
|
|
3735
|
-
/** Box fractions `(s, t)` whose surface point is nearest `p` (a coarse search, then Newton steps). */
|
|
3736
|
-
declare function vectorMeshParamAt(m: VectorWarpMesh, p: Vec2): {
|
|
3737
|
-
s: number;
|
|
3738
|
-
t: number;
|
|
3739
|
-
distance: number;
|
|
3740
|
-
};
|
|
3741
|
-
/**
|
|
3742
|
-
* `base` with control point `index` dragged by `d`, keeping the surface smooth across the grid
|
|
3743
|
-
* lines: an anchor moves with the eight points around it as one block; a handle moves with the two
|
|
3744
|
-
* points beside it across its line, and the handle opposite it on the same anchor turns the other
|
|
3745
|
-
* way (with its two neighbours), so the line keeps passing straight through the anchor. An inner
|
|
3746
|
-
* point of a patch moves alone.
|
|
3747
|
-
*/
|
|
3748
|
-
declare function dragVectorMeshPoint(base: VectorWarpMesh, index: number, d: Vec2): VectorWarpMesh;
|
|
3749
|
-
/**
|
|
3750
|
-
* `base` with its surface point at box fractions `(s, t)` pulled by `d`, the way dragging inside a
|
|
3751
|
-
* patch works: interior anchors within about two cells follow by a share of `d` that fades with
|
|
3752
|
-
* distance (each with its block of handles, so grid lines stay smooth); the outer border stays
|
|
3753
|
-
* pinned unless the grab is near it, and then it bows; the four corners never move. The grabbed
|
|
3754
|
-
* patch's inner points (and, near the border, the border's handles) make up the rest, so the
|
|
3755
|
-
* grabbed point lands exactly at its start + `d`.
|
|
3756
|
-
*/
|
|
3757
|
-
declare function pullVectorMesh(base: VectorWarpMesh, s: number, t: number, d: Vec2): VectorWarpMesh;
|
|
3758
3634
|
/**
|
|
3759
3635
|
* A mesh whose border follows a closed outline (Illustrator's Make with Top Object): the outline is
|
|
3760
3636
|
* cut into four sides at the points nearest its bounding box's corners, and the interior is the
|
|
@@ -3764,19 +3640,5 @@ declare function pullVectorMesh(base: VectorWarpMesh, s: number, t: number, d: V
|
|
|
3764
3640
|
declare function vectorMeshFromOutline(sp: VectorSubpath, columns?: number, rows?: number): VectorWarpMesh | null;
|
|
3765
3641
|
/** The mesh's border as one closed subpath (clockwise from the top-left corner): what Release gives back as the envelope's shape. */
|
|
3766
3642
|
declare function vectorMeshOutline(m: VectorWarpMesh): VectorSubpath;
|
|
3767
|
-
/**
|
|
3768
|
-
* The control points an editor shows: the anchors (where grid lines cross) and the handles along
|
|
3769
|
-
* the grid lines, each with the anchor it belongs to. Points inside a patch are left out (drag
|
|
3770
|
-
* inside a patch to pull the surface instead).
|
|
3771
|
-
*/
|
|
3772
|
-
declare function vectorMeshEditPoints(m: VectorWarpMesh): {
|
|
3773
|
-
anchors: number[];
|
|
3774
|
-
handles: {
|
|
3775
|
-
index: number;
|
|
3776
|
-
anchor: number;
|
|
3777
|
-
}[];
|
|
3778
|
-
};
|
|
3779
|
-
/** The mesh's grid lines (patch borders) as cubics `[p0, p1, p2, p3]`. */
|
|
3780
|
-
declare function vectorMeshGridCurves(m: VectorWarpMesh): Vec2[][];
|
|
3781
3643
|
|
|
3782
|
-
export { type AddVectorNodeOptions, AffineMatrix, DEFAULT_VECTOR_BLEND_DISTANCE, DEFAULT_VECTOR_BLEND_STEPS, DEFAULT_VECTOR_PATH_EDIT, DEFAULT_VECTOR_SNAP, IDENTITY_MATRIX, KAPPA, LazyMouse, type MapVectorSubpathsOptions, type NearestSegment, type RecognizeInkOptions, VECTOR_ARROWHEAD_LABELS, VECTOR_BLEND_MAX_SMOOTH_STEPS, VECTOR_BLEND_MAX_STEPS, VECTOR_BLEND_SPACING_LABELS, VECTOR_BUILDER_HATCH_GAP, VECTOR_CLIPBOARD_TYPE, VECTOR_CONSTRUCTION_ANGLES, VECTOR_CORNER_KIND_LABELS, VECTOR_CORNER_WIDGET_INSET, VECTOR_DISTORT_TOLERANCE, VECTOR_EDIT_TOGGLES, VECTOR_EFFECT_DEFAULTS, VECTOR_EFFECT_LABELS, VECTOR_EFFECT_MENU, VECTOR_EFFECT_PARAM_SPECS, VECTOR_ENVELOPE_STYLE_OPTIONS, VECTOR_FILL_GAP, VECTOR_GRADIENT_INTERPOLATION_LABELS, VECTOR_GRADIENT_MIDPOINT_GAP, VECTOR_GRADIENT_OFF_BAR, VECTOR_GRADIENT_SPREAD_LABELS, VECTOR_GRADIENT_STOP_GAP, VECTOR_GRADIENT_TYPE_LABELS, VECTOR_INK_MAX_CORNERS, VECTOR_OVERLAY_THEME, VECTOR_PATHFINDER_ACTIONS, VECTOR_PATHFINDER_LABELS, VECTOR_PATH_ACTIONS, VECTOR_PENCIL_STRING_PX, VECTOR_PRESSURE_NOMINAL, VECTOR_ROTATE_HANDLE_OFFSET, VECTOR_STROKE_ALIGN_LABELS, VECTOR_STROKE_GRADIENT_MODE_LABELS, VECTOR_STYLE_KEYS, VECTOR_TOOL_GLYPHS, VECTOR_TOOL_SHORTCUTS,
|
|
3644
|
+
export { type AddVectorNodeOptions, AffineMatrix$1 as AffineMatrix, DEFAULT_VECTOR_BLEND_DISTANCE, DEFAULT_VECTOR_BLEND_STEPS, DEFAULT_VECTOR_PATH_EDIT, DEFAULT_VECTOR_SNAP, IDENTITY_MATRIX, KAPPA, LazyMouse, type MapVectorSubpathsOptions, type NearestSegment, type RecognizeInkOptions, VECTOR_ARROWHEAD_LABELS, VECTOR_BLEND_MAX_SMOOTH_STEPS, VECTOR_BLEND_MAX_STEPS, VECTOR_BLEND_SPACING_LABELS, VECTOR_BUILDER_HATCH_GAP, VECTOR_CLIPBOARD_TYPE, VECTOR_CONSTRUCTION_ANGLES, VECTOR_CORNER_KIND_LABELS, VECTOR_CORNER_WIDGET_INSET, VECTOR_DISTORT_TOLERANCE, VECTOR_EDIT_TOGGLES, VECTOR_EFFECT_DEFAULTS, VECTOR_EFFECT_LABELS, VECTOR_EFFECT_MENU, VECTOR_EFFECT_PARAM_SPECS, VECTOR_ENVELOPE_STYLE_OPTIONS, VECTOR_FILL_GAP, VECTOR_GRADIENT_INTERPOLATION_LABELS, VECTOR_GRADIENT_MIDPOINT_GAP, VECTOR_GRADIENT_OFF_BAR, VECTOR_GRADIENT_SPREAD_LABELS, VECTOR_GRADIENT_STOP_GAP, VECTOR_GRADIENT_TYPE_LABELS, VECTOR_INK_MAX_CORNERS, VECTOR_OVERLAY_THEME, VECTOR_PATHFINDER_ACTIONS, VECTOR_PATHFINDER_LABELS, VECTOR_PATH_ACTIONS, VECTOR_PENCIL_STRING_PX, VECTOR_PRESSURE_NOMINAL, VECTOR_ROTATE_HANDLE_OFFSET, VECTOR_STROKE_ALIGN_LABELS, VECTOR_STROKE_GRADIENT_MODE_LABELS, VECTOR_STYLE_KEYS, VECTOR_TOOL_GLYPHS, VECTOR_TOOL_SHORTCUTS, VECTOR_WIDTH_PRESETS, VECTOR_WIDTH_PRESET_IDS, VECTOR_WIDTH_PROFILE_MAX_POINTS, VECTOR_WIDTH_PROFILE_MAX_SCALE, VECTOR_WIDTH_SAME_T, type VariableStrokeOptions, Vec2$1 as Vec2, type VectorActionResult, VectorAlign, VectorAnchor, VectorAnchorRef, VectorAnchorType, type VectorAppearanceShape, VectorArrange, VectorArrowAlign, VectorArrowhead, type VectorArrowheadShape, VectorAverageAxis, VectorBlend, type VectorBlendControls, type VectorBlendInput, VectorBlendOptions, type VectorBlendRail, VectorBlendSpacing, type VectorBlendStart, type VectorBooleanOperand, VectorBooleanOperation, VectorBounds, type VectorBuilderHit, type VectorBuilderLinePiece, type VectorBuilderPreview, type VectorBuilderReplacement, type VectorBuilderTouched, type VectorCommandOptions, type VectorCornerInfo, VectorCornerKind, type VectorCornerWidget, VectorDefaults, type VectorDistortMode, VectorDistribute, VectorDocument, VectorEditorController, type VectorEditorOptions, type VectorEditorState, VectorEffect, type VectorEffectParamSpec, VectorEffectParamsMap, VectorEffectType, type VectorEffectsPanelData, type VectorEffectsPanelItem, type VectorEnvelopePanelData, type VectorEnvelopeParams, VectorFillRule, VectorGradient, type VectorGradientAnnotator, type VectorGradientEditorData, VectorGradientHandle, VectorGradientInterpolation, type VectorGradientPart, VectorGradientPatch, VectorGradientSpread, VectorGradientStop, type VectorGradientTarget, VectorGradientType, VectorGroupNode, type VectorGuideKind, type VectorGuideLabel, type VectorGuideLine, VectorHandleRef, type VectorHitTestOptions, type VectorHover, type VectorInkShape, type VectorInteraction, type VectorKeyInput, VectorLineJoin, VectorMergeMode, VectorModifiers, type VectorMorph, type VectorMorphContour, type VectorMorphCorrespondence, type VectorMorphOptions, VectorNode, type VectorNodeListing, type VectorOverlayRenderData, VectorPaint, VectorPaintDef, type VectorPathAction, type VectorPathEditOptions, type VectorPathEntry, type VectorPathKeyframe, VectorPathNode, type VectorPathfinderAction, VectorPathfinderOperation, type VectorPathfinderPaint, type VectorPointMap, type VectorPointSnap, type VectorPointerInput, type VectorRectSnap, type VectorRenderAnchor, type VectorRenderCornerWidget, type VectorRenderGradientAnnotator, type VectorRenderGroup, type VectorRenderGuideLabel, type VectorRenderGuideLine, type VectorRenderHandle, type VectorRenderNode, type VectorRenderPath, VectorRenderStrokeParts, type VectorRenderWidthPoint, type VectorRepeaterCopy, type VectorScaleSnap, type VectorSceneRenderData, VectorSegmentRef, type VectorSelectionBoxGeometry, type VectorSelectionFrame, type VectorSelectionStyle, type VectorShapeBuilderFace, type VectorShapeBuilderMap, type VectorShapeBuilderPlan, type VectorShapeBuilderResult, type VectorShapeInput, type VectorSnapGuides, type VectorSnapKind, type VectorSnapLeave, type VectorSnapOptions, VectorSnapTargets, VectorStrokeAlign, VectorStrokeGradientMode, type VectorStrokeParts, type VectorStrokeSpot, VectorStyle, VectorSubpath, VectorSvgExportOptions, type VectorTaperOptions, VectorTool, VectorTransformHandle, VectorViewport, VectorWarpMesh, type VectorWaveOptions, type VectorWidthHandle, VectorWidthPoint, type VectorWidthPointEdit, type VectorWidthPointRef, type VectorWidthPreset, type VectorWidthPresetInfo, activeVectorEffects, addBuilderHit, applyMatrix, applyMatrixLinear, applyVectorBlendOptions, applyVectorEffects, arrowheadInset, arrowheadPath, arrowheadWeight, bendSegment, bezierToSubpaths, boundsFromPoints, boundsIntersect, clearVectorLiveBooleanCache, cloneAnchor, cloneSubpath, cloneVectorDocument, cloneVectorNode, collectPathNodes, constrainToLeave, convertAnchor, cornerBisectorPoint, cornerRadiusChange, cornerSetback, correspondMorphContours, createVectorCommands, createVectorEffect, createVectorMorph, curvatureMoveAnchor, cutSubpathAt, dashIntervals, decomposeRigid, distortVectorNode, effectPathLength, effectPathVertexCount, effectiveStrokeAlign, ellipseSubpath, eraseFromFill, eraseFromOutline, eraserRegion, evaluateVectorPathKeyframes, expandVectorAppearance, expandVectorAppearances, expandVectorBlend, expandVectorCorners, expandVectorCornersOf, findVectorNode, fitCornerRadius, foldVectorBooleanOperands, generateVectorBlendChildren, generateWidthProfile, getAnchor, getAnchorWorld, getEditablePathIds, getTransformHandlePositions, getVectorBlendControls, getVectorCornerWidgets, getVectorEffectsPanel, getVectorEnteredGroups, getVectorEnvelopePanel, getVectorEnvelopeTarget, getVectorGradientAnnotator, getVectorGradientEditor, getVectorOverlayRenderData, getVectorSceneRenderData, getVectorSelectionBoxGeometry, getVectorSelectionFrame, getVectorSelectionStyle, getVectorWidthHandles, getVisibleAnchors, getVisibleHandles, hasOwnVectorAppearance, hasPaint, hasStrokeExtras, hasVectorAppearance, hasVectorCorners, hitTestVectorNode, hitTestVectorNodes, hitTestVectorStroke, hitVectorGradientAnnotator, inferAnchorType, insertAnchor, insertWidthPoint, interpolateMorphContours, interpolateRigidMatrix, interpolateVectorColor, interpolateVectorPaint, interpolateVectorPaths, interpolateVectorStyle, interpolateWidthProfiles, invertMatrix, isClosedBezierShape, isIdentityMatrix, isUniformWidthProfile, isVectorBlendGroup, isVectorLiveBoolean, isVectorTextTarget, joinSubpaths, knifePath, lineSubpath, locateVectorNode, mapBezierPath, mapVectorPoints, mapVectorSubpaths, matrixRotation, mergePaths, mirrorWidthProfile, morphContourToSubpath, morphPathsCross, moveAnchorHandle, multiplyMatrices, nearestSegment, nearestStrokePosition, nextVectorCornerKind, nodeMatrix, normalizeVectorEffectParams, offsetPaths, pathsCenter, planShapeBuilder, polygonSubpath, polylineBounds, pressureWidthProfile, puckerBloatPaths, recognizeInkShape, rectSubpath, refineMorphContour, refreshVectorBlends, releaseVectorBlend, removeAnchorKeepingShape, removeAnchors, removeAnchorsKeepingShape, removeRedundantPoints, removeWidthPoints, repeatPaths, resampleGradientStops, resolveVectorBlendOptions, reverseMorphContour, reverseSubpath, reverseWidthProfile, rotateMatrix, roundCornerPaths, roundSubpaths, samplePolyline, sanitizeVectorEffects, sanitizeWidthProfile, scaleFor, scaleMatrix, setAnchorCorner, setSubpathCorners, setWidthPoint, simplifyPolyline, smoothSubpath, splitIntoFaces, splitSubpathAt, starSubpath, strokePositionPoint, strokeWidthProfileOf, subpathEnclosesArea, subpathPointAt, subpathSegment, subpathSegmentCount, subpathToMorphContour, subpathsToBezier, taperWaveFactor, toVectorKeyInput, toVectorModifiers, toVectorPointerInput, transformVectorEffects, transformVectorNode, translateAnchor, translateMatrix, trimIntervals, trimPaths, trimPathsIndividually, turnMorphContour, twistPaths, unionBounds, variableStrokeOutline, variableStrokeRings, vectorAppearanceNodes, vectorAppearanceOutline, vectorAppearanceShapes, vectorBlendColorDistance, vectorBlendKeyTargets, vectorBlendKeys, vectorBlendRail, vectorBlendRailAt, vectorBlendSpine, vectorBlendStepCount, vectorBoxCorners, vectorBuilderErasedEdges, vectorCornerAt, vectorCorners, vectorDiamondPath, vectorDistortQuad, vectorEffectInputBounds, vectorEffectInputPaths, vectorEnteredGroups, vectorEnvelopeFrame, vectorEnvelopeMap, vectorEnvelopeMesh, vectorFillMap, vectorGradientBarPosition, vectorGradientTargetPath, vectorInkShapeName, vectorLiveBooleanSteps, vectorMeshFromOutline, vectorMeshOutline, vectorNodeBounds, vectorNodeEnvelope, vectorNodeRotation, vectorNodeToBezier, vectorOperandOperation, vectorPaintToHex, vectorParentMatrix, vectorPathData, vectorPathEntries, vectorPathWorldBezier, vectorPathfinderShape, vectorRepeaterCopies, vectorResizeCursor, vectorResultStyle, vectorShapeBuilderHit, vectorShapeBuilderMap, vectorShearForSide, vectorSkewMatrix, vectorStrokeGradientDefs, vectorStrokeLineArea, vectorStrokeOutline, vectorStrokeOutlinePath, vectorStrokeParts, vectorStrokeReach, vectorStrokeWidthGeometry, vectorToolLabel, vectorWorldMatrix, walkVectorNodes, widthProfileAt, widthProfileMaxScale, widthProfilePreset, widthProfilePresetId, wigglePaths, zigzagPaths };
|