@flighthq/path 0.3.0-next.906.07cea63 → 0.3.1-next.1041.35b950c

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.
Files changed (45) hide show
  1. package/dist/contract.d.ts +4 -0
  2. package/dist/contract.d.ts.map +1 -1
  3. package/dist/contract.js +4 -0
  4. package/dist/contract.js.map +1 -1
  5. package/dist/explainPathMorphCreation.d.ts +4 -0
  6. package/dist/explainPathMorphCreation.d.ts.map +1 -0
  7. package/dist/explainPathMorphCreation.js +24 -0
  8. package/dist/explainPathMorphCreation.js.map +1 -0
  9. package/dist/explainStrokePathTessellation.d.ts +4 -0
  10. package/dist/explainStrokePathTessellation.d.ts.map +1 -0
  11. package/dist/explainStrokePathTessellation.js +26 -0
  12. package/dist/explainStrokePathTessellation.js.map +1 -0
  13. package/dist/index.d.ts +3 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/path.d.ts.map +1 -1
  18. package/dist/path.js +6 -6
  19. package/dist/path.js.map +1 -1
  20. package/dist/pathMorph.d.ts +5 -0
  21. package/dist/pathMorph.d.ts.map +1 -0
  22. package/dist/pathMorph.js +35 -0
  23. package/dist/pathMorph.js.map +1 -0
  24. package/dist/pathMorphGeometry.d.ts +14 -0
  25. package/dist/pathMorphGeometry.d.ts.map +1 -0
  26. package/dist/pathMorphGeometry.js +347 -0
  27. package/dist/pathMorphGeometry.js.map +1 -0
  28. package/dist/strokePath.d.ts.map +1 -1
  29. package/dist/strokePath.js +30 -451
  30. package/dist/strokePath.js.map +1 -1
  31. package/dist/strokePathGeometry.d.ts +23 -0
  32. package/dist/strokePathGeometry.d.ts.map +1 -0
  33. package/dist/strokePathGeometry.js +422 -0
  34. package/dist/strokePathGeometry.js.map +1 -0
  35. package/dist/tessellateStrokePath.d.ts +3 -0
  36. package/dist/tessellateStrokePath.d.ts.map +1 -0
  37. package/dist/tessellateStrokePath.js +66 -0
  38. package/dist/tessellateStrokePath.js.map +1 -0
  39. package/package.json +5 -2
  40. package/src/explainPathMorphCreation.test.ts +81 -0
  41. package/src/explainStrokePathTessellation.test.ts +39 -0
  42. package/src/pathMorph.test.ts +290 -0
  43. package/src/pathMorphGeometry.test.ts +18 -0
  44. package/src/strokePathGeometry.test.ts +27 -0
  45. package/src/tessellateStrokePath.test.ts +91 -0
@@ -13,11 +13,15 @@ export * from './getPathPointAtDistance';
13
13
  export * from './getPathSegmentAtParameter';
14
14
  export * from './getPathSignedArea';
15
15
  export * from './path';
16
+ export * from './pathMorph';
16
17
  export * from './pathMeshPool';
17
18
  export * from './reversePath';
18
19
  export * from './decimatePath';
20
+ export * from './explainPathMorphCreation';
21
+ export * from './explainStrokePathTessellation';
19
22
  export * from './strokePath';
20
23
  export * from './tessellatePath';
21
24
  export * from './tessellatePathTyped';
25
+ export * from './tessellateStrokePath';
22
26
  export * from './transformPath';
23
27
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
package/dist/contract.js CHANGED
@@ -13,11 +13,15 @@ export * from './getPathPointAtDistance';
13
13
  export * from './getPathSegmentAtParameter';
14
14
  export * from './getPathSignedArea';
15
15
  export * from './path';
16
+ export * from './pathMorph';
16
17
  export * from './pathMeshPool';
17
18
  export * from './reversePath';
18
19
  export * from './decimatePath';
20
+ export * from './explainPathMorphCreation';
21
+ export * from './explainStrokePathTessellation';
19
22
  export * from './strokePath';
20
23
  export * from './tessellatePath';
21
24
  export * from './tessellatePathTyped';
25
+ export * from './tessellateStrokePath';
22
26
  export * from './transformPath';
23
27
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Path, PathMorphCreationExplanation } from '@flighthq/types/contract';
2
+ export type { PathMorphCreationExplanation, PathMorphCreationReason } from '@flighthq/types/contract';
3
+ export declare function explainPathMorphCreation(start: Readonly<Path>, end: Readonly<Path>): PathMorphCreationExplanation;
4
+ //# sourceMappingURL=explainPathMorphCreation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainPathMorphCreation.d.ts","sourceRoot":"","sources":["../src/explainPathMorphCreation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,4BAA4B,EAA2B,MAAM,0BAA0B,CAAC;AAE5G,YAAY,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AActG,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAOjH"}
@@ -0,0 +1,24 @@
1
+ import { buildPathMorph, PathMorphIssueContourClosednessMismatch, PathMorphIssueContourCountMismatch, PathMorphIssueContourOrientationMismatch, PathMorphIssueNone, PathMorphIssueWindingMismatch, } from './pathMorphGeometry';
2
+ // Pure diagnostic twin of createPathMorph. Re-runs preparation, retains and mutates nothing, and
3
+ // returns detached data explaining whether the two paths have compatible morph topology. Kept in its
4
+ // own module so users importing only the morph constructor do not ship diagnostic reason strings.
5
+ export function explainPathMorphCreation(start, end) {
6
+ const result = buildPathMorph(start, end);
7
+ return {
8
+ contour: result.contour,
9
+ reason: getReason(result.issue),
10
+ supported: result.issue === PathMorphIssueNone,
11
+ };
12
+ }
13
+ function getReason(issue) {
14
+ if (issue === PathMorphIssueWindingMismatch)
15
+ return 'winding-mismatch';
16
+ if (issue === PathMorphIssueContourCountMismatch)
17
+ return 'contour-count-mismatch';
18
+ if (issue === PathMorphIssueContourClosednessMismatch)
19
+ return 'contour-closedness-mismatch';
20
+ if (issue === PathMorphIssueContourOrientationMismatch)
21
+ return 'contour-orientation-mismatch';
22
+ return 'ok';
23
+ }
24
+ //# sourceMappingURL=explainPathMorphCreation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainPathMorphCreation.js","sourceRoot":"","sources":["../src/explainPathMorphCreation.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EACd,uCAAuC,EACvC,kCAAkC,EAClC,wCAAwC,EACxC,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAE7B,iGAAiG;AACjG,qGAAqG;AACrG,kGAAkG;AAClG,MAAM,UAAU,wBAAwB,CAAC,KAAqB,EAAE,GAAmB;IACjF,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC,KAAK,KAAK,kBAAkB;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,KAAK,KAAK,6BAA6B;QAAE,OAAO,kBAAkB,CAAC;IACvE,IAAI,KAAK,KAAK,kCAAkC;QAAE,OAAO,wBAAwB,CAAC;IAClF,IAAI,KAAK,KAAK,uCAAuC;QAAE,OAAO,6BAA6B,CAAC;IAC5F,IAAI,KAAK,KAAK,wCAAwC;QAAE,OAAO,8BAA8B,CAAC;IAC9F,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Path, StrokePathTessellationExplanation, StrokeStyle } from '@flighthq/types/contract';
2
+ export type { StrokePathTessellationExplanation, StrokePathTessellationReason } from '@flighthq/types/contract';
3
+ export declare function explainStrokePathTessellation(path: Readonly<Path>, style: Readonly<StrokeStyle>, tolerance?: number): StrokePathTessellationExplanation;
4
+ //# sourceMappingURL=explainStrokePathTessellation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainStrokePathTessellation.d.ts","sourceRoot":"","sources":["../src/explainStrokePathTessellation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,iCAAiC,EAEjC,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,iCAAiC,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAehH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EACpB,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC5B,SAAS,SAAO,GACf,iCAAiC,CAOnC"}
@@ -0,0 +1,26 @@
1
+ import { buildStrokePathGeometry, StrokePathTessellationIssueInvalidPath, StrokePathTessellationIssueInvalidStyle, StrokePathTessellationIssueNone, StrokePathTessellationIssueReversingJoin, StrokePathTessellationIssueSelfIntersectingCenterline, StrokePathTessellationIssueSelfIntersectingOutline, } from './strokePathGeometry';
2
+ // Pure diagnostic twin of tessellateStrokePath: re-runs the shared validation, retains and mutates
3
+ // nothing, never throws, and returns detached plain data explaining a null mesh. Kept in its own module
4
+ // so production users importing only the tessellator do not ship reason strings.
5
+ export function explainStrokePathTessellation(path, style, tolerance = 0.25) {
6
+ const geometry = buildStrokePathGeometry(path, style, tolerance);
7
+ return {
8
+ reason: getReason(geometry.issue),
9
+ subpath: geometry.issueSubpath,
10
+ supported: geometry.issue === StrokePathTessellationIssueNone,
11
+ };
12
+ }
13
+ function getReason(issue) {
14
+ if (issue === StrokePathTessellationIssueInvalidStyle)
15
+ return 'invalid-style';
16
+ if (issue === StrokePathTessellationIssueInvalidPath)
17
+ return 'invalid-path';
18
+ if (issue === StrokePathTessellationIssueSelfIntersectingCenterline)
19
+ return 'self-intersecting-centerline';
20
+ if (issue === StrokePathTessellationIssueReversingJoin)
21
+ return 'reversing-join';
22
+ if (issue === StrokePathTessellationIssueSelfIntersectingOutline)
23
+ return 'self-intersecting-outline';
24
+ return 'ok';
25
+ }
26
+ //# sourceMappingURL=explainStrokePathTessellation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainStrokePathTessellation.js","sourceRoot":"","sources":["../src/explainStrokePathTessellation.ts"],"names":[],"mappings":"AASA,OAAO,EACL,uBAAuB,EACvB,sCAAsC,EACtC,uCAAuC,EACvC,+BAA+B,EAC/B,wCAAwC,EACxC,qDAAqD,EACrD,kDAAkD,GACnD,MAAM,sBAAsB,CAAC;AAE9B,mGAAmG;AACnG,wGAAwG;AACxG,iFAAiF;AACjF,MAAM,UAAU,6BAA6B,CAC3C,IAAoB,EACpB,KAA4B,EAC5B,SAAS,GAAG,IAAI;IAEhB,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACjE,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjC,OAAO,EAAE,QAAQ,CAAC,YAAY;QAC9B,SAAS,EAAE,QAAQ,CAAC,KAAK,KAAK,+BAA+B;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,KAAK,KAAK,uCAAuC;QAAE,OAAO,eAAe,CAAC;IAC9E,IAAI,KAAK,KAAK,sCAAsC;QAAE,OAAO,cAAc,CAAC;IAC5E,IAAI,KAAK,KAAK,qDAAqD;QAAE,OAAO,8BAA8B,CAAC;IAC3G,IAAI,KAAK,KAAK,wCAAwC;QAAE,OAAO,gBAAgB,CAAC;IAChF,IAAI,KAAK,KAAK,kDAAkD;QAAE,OAAO,2BAA2B,CAAC;IACrG,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
- export { StrokeStyle, acquirePathMesh, acquirePathMeshTyped, appendPathArc, appendPathArcTo, appendPathCircle, appendPathClose, appendPathCubicCurveTo, appendPathCurveTo, appendPathEllipse, appendPathLineTo, appendPathMoveTo, appendPathPolygon, appendPathPolyline, appendPathRectangle, appendPathRoundRectangle, cleanPath, clonePath, containsPathPoint, copyPath, createPath, dashPath, decimatePath, fitPathCurves, flattenPath, forEachPathSegment, getCubicBezierPoint, getCubicBezierTangent, getPathBounds, getPathContourLengths, getPathContourOrientation, getPathLastPoint, getPathLength, getPathNearestPoint, getPathPointAtDistance, getPathPositionAtDistance, getPathSegmentPointAtParameter, getPathSegmentTangentAtParameter, getPathSignedArea, getPathTangentAtDistance, getQuadraticBezierPoint, getQuadraticBezierTangent, releasePathMesh, releasePathMeshTyped, reversePath, strokePath, tessellatePath, tessellatePathTyped, transformPath, translatePath, } from './contract';
1
+ export { acquirePathMesh, acquirePathMeshTyped, appendPathArc, appendPathArcTo, appendPathCircle, appendPathClose, appendPathCubicCurveTo, appendPathCurveTo, appendPathEllipse, appendPathLineTo, appendPathMoveTo, appendPathPolygon, appendPathPolyline, appendPathRectangle, appendPathRoundRectangle, cleanPath, clonePath, containsPathPoint, copyPath, createPath, createPathMorph, dashPath, decimatePath, explainPathMorphCreation, explainStrokePathTessellation, fitPathCurves, flattenPath, forEachPathSegment, getCubicBezierPoint, getCubicBezierTangent, getPathBounds, getPathContourLengths, getPathContourOrientation, getPathLastPoint, getPathLength, getPathNearestPoint, getPathPointAtDistance, getPathPositionAtDistance, getPathSegmentPointAtParameter, getPathSegmentTangentAtParameter, getPathSignedArea, getPathTangentAtDistance, getQuadraticBezierPoint, getQuadraticBezierTangent, releasePathMesh, releasePathMeshTyped, reversePath, samplePathMorph, strokePath, tessellatePath, tessellatePathTyped, tessellateStrokePath, transformPath, translatePath, } from './contract';
2
+ export type { PathMorph, PathMorphCreationExplanation, PathMorphCreationReason, StrokePathTessellationExplanation, StrokePathTessellationReason, } from './contract';
3
+ export type { StrokeStyle } from './contract';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,gCAAgC,EAChC,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,wBAAwB,EACxB,6BAA6B,EAC7B,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,gCAAgC,EAChC,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,SAAS,EACT,4BAA4B,EAC5B,uBAAuB,EACvB,iCAAiC,EACjC,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AAKpB,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { acquirePathMesh, acquirePathMeshTyped, appendPathArc, appendPathArcTo, appendPathCircle, appendPathClose, appendPathCubicCurveTo, appendPathCurveTo, appendPathEllipse, appendPathLineTo, appendPathMoveTo, appendPathPolygon, appendPathPolyline, appendPathRectangle, appendPathRoundRectangle, cleanPath, clonePath, containsPathPoint, copyPath, createPath, dashPath, decimatePath, fitPathCurves, flattenPath, forEachPathSegment, getCubicBezierPoint, getCubicBezierTangent, getPathBounds, getPathContourLengths, getPathContourOrientation, getPathLastPoint, getPathLength, getPathNearestPoint, getPathPointAtDistance, getPathPositionAtDistance, getPathSegmentPointAtParameter, getPathSegmentTangentAtParameter, getPathSignedArea, getPathTangentAtDistance, getQuadraticBezierPoint, getQuadraticBezierTangent, releasePathMesh, releasePathMeshTyped, reversePath, strokePath, tessellatePath, tessellatePathTyped, transformPath, translatePath, } from './contract';
1
+ export { acquirePathMesh, acquirePathMeshTyped, appendPathArc, appendPathArcTo, appendPathCircle, appendPathClose, appendPathCubicCurveTo, appendPathCurveTo, appendPathEllipse, appendPathLineTo, appendPathMoveTo, appendPathPolygon, appendPathPolyline, appendPathRectangle, appendPathRoundRectangle, cleanPath, clonePath, containsPathPoint, copyPath, createPath, createPathMorph, dashPath, decimatePath, explainPathMorphCreation, explainStrokePathTessellation, fitPathCurves, flattenPath, forEachPathSegment, getCubicBezierPoint, getCubicBezierTangent, getPathBounds, getPathContourLengths, getPathContourOrientation, getPathLastPoint, getPathLength, getPathNearestPoint, getPathPointAtDistance, getPathPositionAtDistance, getPathSegmentPointAtParameter, getPathSegmentTangentAtParameter, getPathSignedArea, getPathTangentAtDistance, getQuadraticBezierPoint, getQuadraticBezierTangent, releasePathMesh, releasePathMeshTyped, reversePath, samplePathMorph, strokePath, tessellatePath, tessellatePathTyped, tessellateStrokePath, transformPath, translatePath, } from './contract';
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,gCAAgC,EAChC,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,wBAAwB,EACxB,6BAA6B,EAC7B,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,8BAA8B,EAC9B,gCAAgC,EAChC,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AASlE,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,aAAa,UAAQ,EACrB,gBAAgB,UAAQ,GACvB,IAAI,CAiBN;AAWD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,IAAI,CA8DN;AAKD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAEzF;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAEhD;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,IAAI,CAGN;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,IAAI,CAGN;AAKD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAU5G;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGvE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGvE;AAKD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAO9E;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAM/E;AAID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAMzG;AAMD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChD,IAAI,CAiBN;AAID,wBAAgB,UAAU,CAAC,OAAO,GAAE,WAAuB,GAAG,IAAI,CAEjE;AA+ED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAI9E"}
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AASlE,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,aAAa,UAAQ,EACrB,gBAAgB,UAAQ,GACvB,IAAI,CAiBN;AAWD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,IAAI,CA8DN;AAKD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAEzF;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAEhD;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,IAAI,CAGN;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,IAAI,CAGN;AAKD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAU5G;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGvE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGvE;AAKD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAO9E;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAM/E;AAID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAMzG;AAMD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChD,IAAI,CAiBN;AAID,wBAAgB,UAAU,CAAC,OAAO,GAAE,WAAuB,GAAG,IAAI,CAEjE;AA+ED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAI9E"}
package/dist/path.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { CIRCLE_KAPPA } from '@flighthq/math/contract';
1
2
  import { PathCommand } from '@flighthq/types/contract';
2
3
  // Approximates an arc centered at (cx, cy) from `startAngle` to `endAngle` (radians) with the given
3
4
  // `radius`, using one or more cubic bezier segments. Each cubic segment spans at most π/2 (90°) to
@@ -122,13 +123,13 @@ export function appendPathCurveTo(path, controlX, controlY, anchorX, anchorY) {
122
123
  path.commands.push(PathCommand.CURVE_TO);
123
124
  path.data.push(controlX, controlY, anchorX, anchorY);
124
125
  }
125
- // Approximates an axis-aligned ellipse using four cubic bezier segments (standard kappa approximation:
126
- // kappa = 4*(sqrt(2)-1)/3 0.5522847498). The error is less than 0.03% of the radius. Appends a
126
+ // Approximates an axis-aligned ellipse using four cubic bezier segments, each tangent handle reaching
127
+ // CIRCLE_KAPPA = 4*(sqrt(2)-1)/3 of the radius. The error is less than 0.03% of the radius. Appends a
127
128
  // MOVE_TO at the rightmost point and a CLOSE after the fourth arc segment.
128
129
  export function appendPathEllipse(path, cx, cy, radiusX, radiusY) {
129
130
  // kappa: the distance along each tangent handle for the optimal cubic arc approximation.
130
- const kx = radiusX * KAPPA;
131
- const ky = radiusY * KAPPA;
131
+ const kx = radiusX * CIRCLE_KAPPA;
132
+ const ky = radiusY * CIRCLE_KAPPA;
132
133
  appendPathMoveTo(path, cx + radiusX, cy);
133
134
  appendPathCubicCurveTo(path, cx + radiusX, cy - ky, cx + kx, cy - radiusY, cx, cy - radiusY);
134
135
  appendPathCubicCurveTo(path, cx - kx, cy - radiusY, cx - radiusX, cy - ky, cx - radiusX, cy);
@@ -209,7 +210,7 @@ function appendCornerArc(path, cx, cy, radius, startAngle, endAngle) {
209
210
  if (radius <= 0)
210
211
  return;
211
212
  // Single cubic approximation for a quarter arc using kappa.
212
- const k = radius * KAPPA;
213
+ const k = radius * CIRCLE_KAPPA;
213
214
  const cosStart = Math.cos(startAngle);
214
215
  const sinStart = Math.sin(startAngle);
215
216
  const cosEnd = Math.cos(endAngle);
@@ -289,5 +290,4 @@ function vectorAngle(ux, uy, vx, vy) {
289
290
  }
290
291
  // Optimal cubic Bezier arc approximation constant: 4*(sqrt(2)-1)/3.
291
292
  // Maximum radial error is < 0.03% of the radius.
292
- const KAPPA = 0.5522847498308936;
293
293
  //# sourceMappingURL=path.js.map
package/dist/path.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"path.js","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Path, PathMorph } from '@flighthq/types/contract';
2
+ export type { PathMorph } from '@flighthq/types/contract';
3
+ export declare function createPathMorph(start: Readonly<Path>, end: Readonly<Path>): PathMorph | null;
4
+ export declare function samplePathMorph(out: Path, morph: Readonly<PathMorph>, progress: number): void;
5
+ //# sourceMappingURL=pathMorph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathMorph.d.ts","sourceRoot":"","sources":["../src/pathMorph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEhE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAS1D,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAE5F;AAKD,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAoB7F"}
@@ -0,0 +1,35 @@
1
+ import { buildPathMorph } from './pathMorphGeometry';
2
+ // Allocates a prepared interpolation between two paths. The paths may use different line, quadratic,
3
+ // and cubic verbs and may contain different segment counts; preparation converts them to exact cubic
4
+ // equivalents and subdivides the smaller side. Corresponding contours must have the same ordering,
5
+ // winding, count, and open/closed topology. Closed traversal direction is normalized when doing so
6
+ // preserves the fill; returns null when a non-zero path reverses only a subset of its contours.
7
+ export function createPathMorph(start, end) {
8
+ return buildPathMorph(start, end).morph;
9
+ }
10
+ // Samples a prepared morph into `out`. Reuses the existing command and coordinate arrays, making
11
+ // repeated calls allocation-free once they have sufficient capacity. Progress is not clamped: 0 and
12
+ // 1 are the endpoints, while values outside that range permit deliberate easing overshoot.
13
+ export function samplePathMorph(out, morph, progress) {
14
+ const commands = morph.commands;
15
+ out.commands.length = commands.length;
16
+ for (let i = 0; i < commands.length; i++)
17
+ out.commands[i] = commands[i];
18
+ const startData = morph.startData;
19
+ const endData = morph.endData;
20
+ out.data.length = startData.length;
21
+ if (progress === 0 || progress === 1) {
22
+ const endpoint = progress === 0 ? startData : endData;
23
+ for (let i = 0; i < endpoint.length; i++)
24
+ out.data[i] = endpoint[i];
25
+ out.winding = morph.winding;
26
+ return;
27
+ }
28
+ for (let i = 0; i < startData.length; i++) {
29
+ const start = startData[i];
30
+ const end = endData[i];
31
+ out.data[i] = start + (end - start) * progress;
32
+ }
33
+ out.winding = morph.winding;
34
+ }
35
+ //# sourceMappingURL=pathMorph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathMorph.js","sourceRoot":"","sources":["../src/pathMorph.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,qGAAqG;AACrG,qGAAqG;AACrG,mGAAmG;AACnG,mGAAmG;AACnG,gGAAgG;AAChG,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,GAAmB;IACxE,OAAO,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AAC1C,CAAC;AAED,iGAAiG;AACjG,oGAAoG;AACpG,2FAA2F;AAC3F,MAAM,UAAU,eAAe,CAAC,GAAS,EAAE,KAA0B,EAAE,QAAgB;IACrF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAExE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IACnC,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpE,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC;IACjD,CAAC;IACD,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Path, PathMorph } from '@flighthq/types/contract';
2
+ export declare const PathMorphIssueNone = 0;
3
+ export declare const PathMorphIssueWindingMismatch = 1;
4
+ export declare const PathMorphIssueContourCountMismatch = 2;
5
+ export declare const PathMorphIssueContourClosednessMismatch = 3;
6
+ export declare const PathMorphIssueContourOrientationMismatch = 4;
7
+ interface PathMorphBuildResult {
8
+ contour: number | null;
9
+ issue: number;
10
+ morph: PathMorph | null;
11
+ }
12
+ export declare function buildPathMorph(start: Readonly<Path>, end: Readonly<Path>): PathMorphBuildResult;
13
+ export {};
14
+ //# sourceMappingURL=pathMorphGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathMorphGeometry.d.ts","sourceRoot":"","sources":["../src/pathMorphGeometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAKhE,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,eAAO,MAAM,kCAAkC,IAAI,CAAC;AACpD,eAAO,MAAM,uCAAuC,IAAI,CAAC;AACzD,eAAO,MAAM,wCAAwC,IAAI,CAAC;AAE1D,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACzB;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAwC/F"}