Commit graph

5335 commits

Author SHA1 Message Date
Jürg Lehni
3c9d2eea1d Boolean: Implement options.trace, and add unit tests for options.trace = false
Relates to #1221
2017-03-22 15:03:11 +01:00
Jürg Lehni
ffa7e16f48 Use == false instead of === false for all options that default to true.
These expression are true:
- false == false
- false == 0
While these are false:
- false == null
- false == undefined
2017-03-22 14:42:11 +01:00
Jürg Lehni
dd56f86679 Boolean: Pass on options in PathItem#subtract(path, options)
Relates to #1221
2017-03-22 14:24:40 +01:00
Jürg Lehni
7e8e04351f Boolean: small optimization in computeStrokeBoolean() 2017-03-22 14:24:11 +01:00
Jürg Lehni
89d0536783 Scene Graphs: Do not allow inserting same item as child multiple times. 2017-03-21 11:55:42 +01:00
Jürg Lehni
29de03dc30 Node.js: Add code to handle separate shim modules.
Planend are the modules paper-jsdom and paper-jsdom-canvas, as shim modules that require and handle the dependencies as peer dependencies.

Relates to #1252
2017-03-20 12:38:52 +01:00
Jürg Lehni
48e9ef62a6 Boolean: Bring back on-path winding handling.
Relates to #1281
2017-03-20 01:02:12 +01:00
Jürg Lehni
49fca5510e Improve handling of Rectangle dimension properties.
Better deal with left / top / right / bottom / center values, and implement more unit tests for their behavior.

Closes #1147
2017-03-19 22:51:34 +01:00
Jürg Lehni
5c3e3ec34c Mouse Events: Improve mousedrag handling.
Relates to #1247, closes #1286
2017-03-19 16:15:34 +01:00
Jürg Lehni
7a2ccc6d44 More work on supporting hybrid contexts.
Relates to #1252
2017-03-19 16:03:29 +01:00
Jürg Lehni
89a953dde0 Docs: Add documentation for options.bound and options.matrix in #exportSVG()
Closes #1254
2017-03-19 14:50:59 +01:00
Jürg Lehni
e354bccf69 Include note about compiling for Electron.
And some smaller forgotten changes.

Closes #1276
2017-03-19 14:38:24 +01:00
Jürg Lehni
26993b2c36 Various minor improvements to getWinding() 2017-03-19 14:18:55 +01:00
Jürg Lehni
374107c439 Minor cleanup for previous commit. 2017-03-18 16:46:55 +01:00
Jürg Lehni
fdd42076f9 Intersections: Bring back special handling of curve end-points.
Revert commit 89e31dd393, and add further improvements:

- Implement unit tests for #1284
- Remove Rectangle#touches(rect) in favor of #intersects(rect, epsilon)

Closes #1284
2017-03-18 16:42:55 +01:00
Jürg Lehni
0ec06e7353 PaperScript: Give global.acorn the preference over the bundled one.
So people can load their own preferred version in sketch.paperjs.org

Relates to #1183
2017-03-11 20:53:35 +01:00
Jürg Lehni
29e7aba587 Prevent cleaning pre-existing styles when setting item.style to an object.
Until v0.10.2, doing so would merge in the new styles. We should keep this behavior for reasons of compatibility.

Closes #1277
2017-03-11 16:26:18 +01:00
Jürg Lehni
9a2f138f1d PaperScript: Fix positive unary operator. 2017-03-11 00:27:03 +01:00
Jürg Lehni
6ee59cd46e Prevent leakage of bundled Acorn into window.acorn
And fix Acorn loading under load.js
2017-03-10 23:56:06 +01:00
Jürg Lehni
62a0c9c36b Revert accidental condition sequence change.
`typeof module` needs to come before 2nd condition.
2017-03-10 23:21:21 +01:00
Jürg Lehni
69fb23d2ed Docs: Fix parameter sequence in Matrix constructor.
Closes #1273
2017-03-10 15:52:19 +01:00
Jürg Lehni
5dafc67278 Support newer, external versions of Acorn.js for PaperScript parsing, opening the doors to ES 2015.
Closes #1183, closes #1275
2017-03-10 15:41:35 +01:00
Jürg Lehni
f2e9fab264 Split Item#copyTo() into #addTo() and #copyTo() 2017-03-10 11:43:55 +01:00
Jürg Lehni
5291043a5f Fix how gradient matrices are handled when Item#applyMatrix = false
Closes #1238
2017-03-09 14:31:41 +01:00
Jürg Lehni
920cbaca99 Remove unused palettes array. 2017-03-09 12:50:43 +01:00
Jürg Lehni
083a09604d Hit-Tests: Fix issue with non-invertible matrices.
Closes #1271
2017-03-09 12:42:11 +01:00
Jürg Lehni
e145b1d4c2 Mouse Events: Only handle dragItem if the hitItem responds to mousedrag events.
Closes #1247
2017-03-08 23:42:03 +01:00
Jürg Lehni
f9d06d8ae4 Hit Tests: Implement options.position.
Closes #1249
2017-03-08 23:01:12 +01:00
Jürg Lehni
db4deb244f Fix calculation of internal bounds with children and applyMatrix = false
Closes #1250
2017-03-08 17:14:42 +01:00
Jürg Lehni
65da4fe3ed Clear parent's bounds cache when item's visibility changes.
Closes #1248
2017-03-08 16:21:34 +01:00
Jürg Lehni
26bf4f4749 Change getWinding() to include recommendation by @iconexperience
See https://github.com/paperjs/paper.js/issues/1261#issuecomment-283325168

Closes #1261
2017-03-08 15:55:51 +01:00
Jürg Lehni
677c073c84 Use GEOMETRIC_EPSILON instead of EPSILON in Path#arcTo() 2017-03-08 14:13:19 +01:00
Jürg Lehni
7a3e903b4d Add Line#getSignedDistance() 2017-03-08 14:12:49 +01:00
Jürg Lehni
155d5b879c Improve Path._addSquareCap() for use in path offsetting code. 2017-03-08 13:41:23 +01:00
Jürg Lehni
b587e0b5b8 Release version 0.10.3 2017-03-08 10:44:43 +01:00
Jürg Lehni
22bda0972d Intersections: Remove now unnecessary code.
Thanks to Curve#classify(), self-intersections are always in sequence.
2017-03-07 20:13:32 +01:00
Jürg Lehni
89e31dd393 Intersections: No more need for the special handling of curve end-points. 2017-03-07 20:11:04 +01:00
Jürg Lehni
ecc1edb6ea Revert d204175d39
Revert fat-line clipping optimization that checked for straight curves, as unfortunately it wasn't reliable in many edge cases.

Relates to #1263
2017-03-07 20:01:05 +01:00
Jürg Lehni
8461d8d9f4 Curve Intersection: Improve algorithm to work with correct version of isStraight()
Relates to #1269
2017-03-07 17:41:16 +01:00
Jürg Lehni
bad4d02766 Fix Curve#isStraight() to correctly consider handles.
Also include code that prevents Curve.getIntersections() from failing now. Work in progress. Relates to #1269
2017-03-07 14:13:39 +01:00
Jürg Lehni
1fad295600 Facilitate minification. 2017-03-07 12:34:59 +01:00
Jürg Lehni
d6c1ce2458 Make sure calls are always counted in addCurveIntersections()
recursions only need to be increased if we're not aborting.

See https://github.com/paperjs/paper.js/issues/1239#issuecomment-284265520
2017-03-06 11:32:18 +01:00
Jürg Lehni
b680ec05b9 Fix calls counting in addCurveIntersections() when dealing with straight curves.
See https://github.com/paperjs/paper.js/issues/1239#issuecomment-284340550
2017-03-06 10:13:14 +01:00
Jürg Lehni
b85fc988de Minor comment cleanup. 2017-03-01 12:37:08 +01:00
iconexperience
9f5f3192b7 Set curve time to 1 for curves completely right or left of point for better performance. Note that we cannot set the time to 0, because this would invoke special handling for crossing at the curve's start point. 2017-03-01 09:39:44 +01:00
iconexperience
86d05624c0 Fix addWinding() for special cases 2017-03-01 09:04:46 +01:00
Jürg Lehni
32db1eb005 Boolean: Some code and comment cleanup. 2017-02-26 01:11:33 +01:00
Jürg Lehni
4d3ca746ab Reduce windingEpsilon to 1e-9.
this address the issue outlined in https://github.com/paperjs/paper.js/issues/1261#issuecomment-282520748
2017-02-26 00:45:22 +01:00
Jürg Lehni
7b73ec238d Remove onPath winding hack again.
See #1073
2017-02-26 00:22:49 +01:00
Jürg Lehni
86478b6873 Boolean: Improve handling of branching at crossings. 2017-02-25 18:55:11 +01:00