Skip to content

Conversation

@jonobr1
Copy link
Owner

@jonobr1 jonobr1 commented Nov 3, 2025

Addresses:

  • Add Path.smooth function #467

  • Added a manual Path#smooth API that mirrors Paper.js’ smoothing modes (continuous, asymmetric, catmull-rom, geometric), keeps automatic off after smoothing, and respects range selection / open path endpoints via shared helpers in src/utils/path.js.

  • Reworked Path.subdivide to use de Casteljau splitting so curved segments preserve their bezier handles and inserted anchors get correct commands, covering mixed curved/linear paths as well as SVG-imported compound paths.

  • Introduced reusable handle utilities and solver logic in src/utils/path.js, consuming them from Path, and expanded QUnit coverage to validate smoothing handle assignment and subdivision handle recomputation.

  • Note: SVG interpreter fixtures will need to be refreshed before landing to account for the new subdivision output.

Introduces a new `smooth` method to Path for advanced handle assignment and curve smoothing, supporting multiple algorithms. Refactors subdivision logic for more accurate handle inheritance, updates related tests, and improves type definitions and documentation for hit testing and group traversal.
Expanded JSDoc comments for getShapesAtPoint and contains methods to clarify options and coordinate expectations. Updated types.d.ts to include Path#contains signature and options. These changes improve developer understanding and TypeScript support for hit testing in world-space coordinates.
Updated path subdivision logic to generate cubic Bezier segments instead of lines, improving curve accuracy and handle placement. Refactored related utility functions and updated SVG interpreter tests to reflect new vertex structure and control points.
Introduces `contains` methods for Shape and Path, a `smooth` method for Path, and a `getShapesAtPoint` method for Group and Two. Refactors hit testing logic to support visibility, tolerance, and filtering options, and adds path smoothing and subdivision utilities for improved curve handling.
Eliminated unnecessary console.log statement that output shape objects during test execution.
@jonobr1 jonobr1 requested a review from Copilot November 3, 2025 22:47
@jonobr1
Copy link
Owner Author

jonobr1 commented Nov 3, 2025

cc @yuinchien ⬆️

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants