mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2024-12-29 09:22:22 -05:00
Update change-log for upcoming release.
This commit is contained in:
parent
d6c1ce2458
commit
11f7388611
1 changed files with 78 additions and 1 deletions
79
CHANGELOG.md
79
CHANGELOG.md
|
@ -5,11 +5,88 @@
|
||||||
### Changed
|
### Changed
|
||||||
- Loosely couple Node.js / Electron code to Canvas module, and treat its absence
|
- Loosely couple Node.js / Electron code to Canvas module, and treat its absence
|
||||||
like a headless web worker context in the browser (#1103).
|
like a headless web worker context in the browser (#1103).
|
||||||
|
- Split `PathItem#resolveCrossings()` into `#resolveCrossings()` and
|
||||||
|
`#reorient()` (#973).
|
||||||
|
- Clean up handling of `Item#_set()`, `#set()` and `#initialize()`:
|
||||||
|
- `#_set()` is for actually setting internal properties, e.g. on `Point`,
|
||||||
|
`Size`, so that derived classes can reuse other parts without having to
|
||||||
|
override each individual function (e.g. in `SegmentPoint`)
|
||||||
|
- `#set()` is a shortcut to `#initialize()` on all basic types, to offer the
|
||||||
|
same amount of flexibility when setting values, accepting object literals
|
||||||
|
as well as lists of value arguments.
|
||||||
|
- Add support for shorter `h` / `v` commands for horizontal / vertical lines in
|
||||||
|
SVG output.
|
||||||
|
- Implement new and shorter segments array notation:
|
||||||
|
- Close paths by including `true` as the last entry
|
||||||
|
- Allow nested segment arrays to be passed to `PathItem.create()` as well as
|
||||||
|
the `CompoundPath` constructor to create all sub-paths.
|
||||||
|
- Reflect `View#zoom` and `View#center` through matrix decomposition, and
|
||||||
|
implement additional decomposed properties such as `#scaling` and `#rotation`.
|
||||||
|
- Reduce various internal epsilon values for general improved precision while
|
||||||
|
maintaining reliability.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Add `PathItem#compare()` as a way to compare the geometry of two paths to see
|
||||||
|
if they describe the same shape, handling cases where paths start in different
|
||||||
|
segments or use different amounts of curves to describe the same shape.
|
||||||
|
- Implement `Curve#hasLength()` as an optimized check for curve-length (#1109).
|
||||||
|
- Implement `Path#divideAt()`, similar to `Curve#divideAt()`.
|
||||||
|
- Node.js: Support v7, and keep testing v4 up to v7 in Travis CI.
|
||||||
|
- Bring back caching of `Item#rotation` and `#scaling`, but only allow matrix
|
||||||
|
decomposition-based properties on items with `#applyMatrix = false`
|
||||||
|
(#1004, #1177).
|
||||||
|
- Implement `Curve#classify()` to determine the type of cubic Bézier curve via
|
||||||
|
discriminant classification, based on an approach described by Loop and Blinn,
|
||||||
|
and use it to simplify curve self-intersection handling (#773, #1074, #1235).
|
||||||
|
- Add `Curve.getPeaks()` as a fast way to retrieve points that are often similar
|
||||||
|
to the more costly curvature extrema for use in curve offsetting.
|
||||||
|
- Expose `Curve. getCurveLineIntersections()` for use in curve offsetting.
|
||||||
|
- Add `Line.getDistance()` and use it in `Curve.getOverlaps()` (#1253).
|
||||||
|
- Implement `Segment#isSmooth()` and use it in handling of stroke-joins.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
- Many improvements to boolean operations:
|
||||||
|
- Improve performance of boolean operations when there no actual crossings
|
||||||
|
between the paths, but paths may be contained within each other.
|
||||||
|
- Improve path tracing approach by implementing a branching structure and
|
||||||
|
sorting segments according to their reliability as starting points for
|
||||||
|
traces (#1073).
|
||||||
|
- Improve calculation and reliability of winding contributions.
|
||||||
|
- Improve code that resolves crossings and reorients compound-paths based
|
||||||
|
on how the sub-paths are nested.
|
||||||
|
- Fix issue where unite operation wrongly fills inner path (#1075).
|
||||||
|
- Better handle cases where one `Path` is open and the other closed (#1089).
|
||||||
|
- Solve `null` exceptions during complex boolean operations (#1091).
|
||||||
|
- Improve bidirectional curve-time rescaling in `divideLocations()` (#1191).
|
||||||
|
- Improve handling of intersections between touching curves (#1165).
|
||||||
|
- Improve reliability of `Curve#getIntersections()` (#1174).
|
||||||
|
- Fix `getOverlaps()` to always return overlaps in correct sequence (#1223).
|
||||||
|
- Improve handling of multiple crossings on the same curve.
|
||||||
|
- Improve and optimize fat-line clipping algorithm by checking if subdivided
|
||||||
|
curves are straight and falling back on line-line / line-curve approach if
|
||||||
|
they are.
|
||||||
|
- Improve tangent direction handling in `CurveLocation#isCrossing()`, by finding
|
||||||
|
unambiguous vectors, taking inception points and "peaks" into account
|
||||||
|
(#1073, #1074).
|
||||||
- Prevent `Path#getStrokeBounds(matrix)` from accidentally modifying segments
|
- Prevent `Path#getStrokeBounds(matrix)` from accidentally modifying segments
|
||||||
(#1102).
|
(#1102).
|
||||||
- Compatibility with JSPM (#1104).
|
- Improve compatibility with JSPM (#1104).
|
||||||
|
- SVG Import: Correctly handle multiple sequential move commands (#1134).
|
||||||
|
- SVG Export: Properly handle generated IDs (#1138).
|
||||||
|
- SVG Export: Support multiple gradient offsets at 0 (#1241).
|
||||||
|
- Fix imprecision in `Numerical.findRoot()` (#1149).
|
||||||
|
- PaperScript: Prevent invalid JavaScript in assignment operators (#1151).
|
||||||
|
- Hit Tests: Improve handling of SymbolItem in#hitTestAll() (#1199).
|
||||||
|
- Hit Tests: Fix stroke hit-testing for rounded shape items (#1207).
|
||||||
|
- Fix matrix cloning for groups with `#applyMatrix = false` ( #1225).
|
||||||
|
- Correctly handle offset in `Curve#divideAt(offset)` (#1230).
|
||||||
|
- Fix `Line#getSide()` imprecisions when points are on the line.
|
||||||
|
- Docs: Fix documentation of `Project#hitTestAll()` (#536).
|
||||||
|
- Docs: Improve description of option.class value in `Project#hitTest()` (#632).
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- Remove `Numerical.TOLERANCE = 1e-6` as there is no internal use for it\
|
||||||
|
anymore.
|
||||||
|
|
||||||
## `0.10.2`
|
## `0.10.2`
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue