Jürg Lehni
d9e09b9d20
SVGImport: Further improve handling of gradients
...
- Respect radial setting when reusing graident definition
- Clean-up percentage handling
2016-02-10 18:23:56 +01:00
Jürg Lehni
c1b7366249
Improve fix for #650
...
Add support for multiple use of same gradient.
2016-02-10 18:13:13 +01:00
Jürg Lehni
fce126959d
SVGImport: Implement support for gradientUnits="objectBoundingBox"
...
Relates to #650 , but still needs unit tests.
2016-02-10 17:46:39 +01:00
Jürg Lehni
98fc51319f
Remove unnecessary double-spaces.
2016-02-10 16:15:35 +01:00
Jürg Lehni
56d5b3b323
SVGImport: Implement support for dimensions in percentage.
...
Closes #954
2016-02-10 16:14:51 +01:00
Jürg Lehni
adc5b86d2e
SVGExport: Remove unnecessary calls to Point#transform() in exportGradient()
2016-02-10 15:34:22 +01:00
Jürg Lehni
9e8fcee8cd
Change implementation of PathItem#flatten(flatness)
...
- flatness parameter specifies maximum allowed error instead of maximum allowed distance between point
- Parts that are already flat are not further flattened
- Corners are preserved
Closes #618
2016-02-10 14:58:40 +01:00
Jürg Lehni
ed4347714b
Remove duplicate unit tests.
2016-02-10 13:26:40 +01:00
Jürg Lehni
00d2e2a5bb
Some CurveLocation cleanup.
...
- Remove UID as there is no need anymore
- Rename some private properties
2016-02-10 12:36:39 +01:00
Jürg Lehni
0ae232e4ab
Implement support for clip-masks in hit-testing.
...
Closes #671
2016-02-09 17:02:03 +01:00
Jürg Lehni
740c94e367
Implement Item#_hitTestChildren()
...
As suggested by @iconexperience in #671
2016-02-09 16:52:55 +01:00
Jürg Lehni
bd7f3554d8
Fix options handling in Item#clone() to keep backward compatibility.
2016-02-09 16:11:38 +01:00
Jürg Lehni
e179b08156
Implement Item#clone(options) with support for options.deep
...
Closes #941
2016-02-09 16:01:06 +01:00
Jürg Lehni
21723ca6ca
Improve documentation of PostScript-style drawing commands.
2016-02-09 15:09:39 +01:00
Jürg Lehni
717bc4bc79
Implement PathItem#getNearestLocation() / #getNearestPoint()
...
Closes #727
2016-02-09 14:34:21 +01:00
Jürg Lehni
a48d13878a
Fix JSDoc warning on Style class.
2016-02-09 14:15:55 +01:00
Jürg Lehni
3965dd9b77
Implement CompoundPath#flatten(), #simplify(), #smooth()
...
And improve documentation for PathItem#simplify().
Closes #920
Relates to #727
2016-02-09 14:13:30 +01:00
Jürg Lehni
c793538841
No need to pass normalized tangents to PathFitter#fitCubic()
...
The get normalized and scaled anyway.
2016-02-09 14:11:23 +01:00
Jürg Lehni
e5d139ca11
Clean-up PathFitter code.
2016-02-09 14:09:53 +01:00
Jürg Lehni
d1b11c6ea9
Rearrange method sequence in Path.
2016-02-09 12:47:37 +01:00
Jürg Lehni
de9653ab45
Fix new exception in unit tests.
2016-02-09 10:07:28 +01:00
Jürg Lehni
da216aa581
Improve handling of view updates and detection of invisible documents.
...
Switch to the new HTML5 Page Visibility API.
2016-02-09 09:59:19 +01:00
Jürg Lehni
80e6246016
Include NPM and Bower badges.
2016-02-08 14:17:16 +01:00
Jürg Lehni
0371f66bda
Do not snap curve points to t = 0 / 1 with epsilon
...
Closes #936 . Also:
- Reduce CLIPPING_EPSILON to 1e-9 to fix errors that were masked by the snapping
- Implement unit tests for edge cases in #936
2016-02-06 15:12:35 +01:00
Jürg Lehni
a59a5354fb
Clean-up unit test for #943 and add edge case from #944
...
See https://github.com/paperjs/paper.js/pull/944#issuecomment-180370569
2016-02-05 21:18:16 +01:00
Jürg Lehni
ffe42a0220
Some comment cleanup.
2016-02-05 20:31:58 +01:00
Jürg Lehni
5a46620768
Merge branch 'winding-fix' into develop
...
; Conflicts:
; src/path/PathItem.Boolean.js
2016-02-05 20:25:25 +01:00
Jürg Lehni
55909b8bd5
Some code cleanup for winding-fix.
2016-02-05 19:43:48 +01:00
Jürg Lehni
23045bb0f7
Merge pull request #943 from iconexperience/replace-path-contains-test
...
Replace unit test in "PathItem_Contains"
2016-02-05 19:12:45 +01:00
Jürg Lehni
ec75985cd1
Merge pull request #944 from iconexperience/fix-getWinding
...
Change the implementation of getWinding() again to pass all unit tests.
2016-02-05 19:11:50 +01:00
iconexperience
5b31aee8bb
Change the implementation of getWinding() again, so we pass all tests. This new version does not count any intersections if the point is on a y-monotonic curve, but at the final calculation it sets the winding to at least 1 if the point is on a curve.
2016-02-05 14:48:27 +01:00
iconexperience
e03c8cd198
Replace the "straight curves with zero-winding" test with a more comprehensive one containing more special cases. Also, this test requires that all points on a curve of a path must be counted as inside the path.
2016-02-05 12:45:33 +01:00
Jürg Lehni
fc4bdf4bd0
Use correct SVG namespace again.
...
It got mixed up in recent refactoring (d68239a541
).
2016-02-03 18:39:00 +01:00
Jürg Lehni
f7b1aca3e4
Revert "Change the way we determine the winding in getWinding()."
2016-02-03 17:46:27 +01:00
Jürg Lehni
0152439627
Fix internalBounds regression caused by 1ac8e46d55
2016-02-03 17:39:03 +01:00
Jürg Lehni
336460b51f
Define unit test for #internalBounds regression.
2016-02-03 17:38:30 +01:00
Jürg Lehni
41aca10112
Clean-up changes from #939
2016-02-03 12:54:54 +01:00
iconexperience
aed9d05bfc
Change the way we determine the winding in getWinding(). Now the windings only get counted if the point is not on any of the y-monotonic curves. If the point is on a curve, the winding will be made odd at the very end.
2016-02-03 11:29:43 +01:00
Jürg Lehni
96d617a5ff
Only attempt to reuse object that importJSON() is called on, when its type matches the root of the imported data.
...
Closes #764
2016-02-03 09:47:49 +01:00
Jürg Lehni
7888d1d107
JSON: Prevent name: undefined
exports.
2016-02-03 09:46:40 +01:00
Jürg Lehni
0f084eaf02
Optimize Emitter._installEvents()
...
Check for #_eventTypes first, no need to do anything if they don't exist.
2016-02-03 09:46:25 +01:00
Jürg Lehni
922a502ee2
Add #interpolate() method to Segment, Path and CompoundPath
...
Closes #624
2016-02-02 22:11:06 +01:00
Jürg Lehni
53269ab169
Merge pull request #938 from iconexperience/getWinding-simplification
...
Simplify getWindings() by using only the 'last' property to understand when a new loop starts.
2016-02-02 21:45:04 +01:00
Jürg Lehni
5e53939006
Do not include text-styles in items that don't relate to text.
...
Closes #934
2016-02-02 21:43:44 +01:00
iconexperience
0716ebb994
Simplify getWindings(), The first curve of a loop always has the 'last' property set. We use this to know when a loop starts. The very rare cases when a loop only consists of horizontal curves are not a problem, because these curves are ignored. Using this simplification also get's rid of the 'length' property, which was set in _getMonoCurves().
2016-02-02 21:23:46 +01:00
Jürg Lehni
8fb7c41537
Implement support for web-workers.
...
Relates to #634 , closes #582
2016-02-02 17:30:38 +01:00
Jürg Lehni
74d188967c
Fix accidentally leaked global variable.
2016-02-02 14:03:25 +01:00
Jürg Lehni
a71c364594
We cannot cache #strokeBounds when #strokeScaling is false.
...
Closes #697
2016-02-02 13:56:08 +01:00
Jürg Lehni
a02d7248c0
Move Path_Bounds tests to Item_Bounds.
...
And add a test for shape.strokeBounds without strokeScaling.
2016-02-02 13:55:36 +01:00
Jürg Lehni
21dce1a655
Implement tests for #697
...
One currently failing due to caching issues.
2016-02-02 13:28:06 +01:00