Jürg Lehni
|
66ff8d3a51
|
Fix multiple issues with boolean operations on open paths.
|
2016-01-08 15:17:58 +01:00 |
|
Jürg Lehni
|
dd332e966c
|
Remove unused variable.
Apparently the code that required it was accidentally deleted earlier. Turns out it wasn't needed anymore anyway :)
|
2016-01-08 11:42:48 +01:00 |
|
Jürg Lehni
|
cb3d4341fd
|
paper.browser can still be null when the first key events fire.
|
2016-01-08 11:42:12 +01:00 |
|
Jürg Lehni
|
79508ff78b
|
Various comments adjustments.
|
2016-01-08 11:14:25 +01:00 |
|
Jürg Lehni
|
abafc886cd
|
Clean up propagateWinding() a bit.
|
2016-01-08 10:54:11 +01:00 |
|
Jürg Lehni
|
34a173ee18
|
Merge pull request #893 from sapics/atan2
Replace atan to atan2 for avoiding NaN
|
2016-01-08 10:28:44 +01:00 |
|
Jürg Lehni
|
b95136f673
|
Add additional @author tags to boolean code.
|
2016-01-08 10:27:22 +01:00 |
|
Jürg Lehni
|
a5304443a5
|
Condensate if / else statements into terniary chain.
And apply the same style to all multi-line if-statements.
|
2016-01-08 10:22:11 +01:00 |
|
Jürg Lehni
|
d186c2d356
|
Reformat code of #895 a bit.
- Respect 80 chars line-width
- Indent comments with current indentation level
- Use punctuation in comments
|
2016-01-08 10:05:47 +01:00 |
|
iconexperience
|
07b89c7f18
|
Further simplify and explain winding calculation in getWinding()
|
2016-01-08 08:58:32 +01:00 |
|
sapics
|
5f876adc1c
|
Replace atan to atan2 for avoiding NaN
|
2016-01-08 12:24:53 +09:00 |
|
Jürg Lehni
|
3c66c013d1
|
Implement correct behavior for intersection, subtraction and intersection of fully overlapping paths.
|
2016-01-08 01:25:35 +01:00 |
|
Jürg Lehni
|
ba6c1201fe
|
Improve a couple of comments.
|
2016-01-08 01:09:15 +01:00 |
|
Jürg Lehni
|
eba9601601
|
Implement and brush up @iconexperience's new version of getWinding()
Along with optimizations and simplifications to _getMonoCurves()
Closes #890
|
2016-01-08 00:08:38 +01:00 |
|
Jürg Lehni
|
6136bd8143
|
Fix issue with SVG serialization in newer versions of JSDOM.
And define some meaningful ranges for problematic Node.js modules.
Closes #821
|
2016-01-07 23:08:01 +01:00 |
|
Jürg Lehni
|
56869baaad
|
Only transform canvas if matrix is not the identity.
|
2016-01-07 22:07:26 +01:00 |
|
Jürg Lehni
|
7969e4647c
|
Use shadowBlur instead of shadowColor to clear shadows after fills.
|
2016-01-07 22:06:10 +01:00 |
|
Jürg Lehni
|
d1e4807c6a
|
Allow the use of Formater without additional processing of numbers.
precision >= 16 will output numbers as is.
|
2016-01-07 18:51:30 +01:00 |
|
Jürg Lehni
|
36a98706b3
|
Use epsilons when deciding for horizontal winding and dealing with horizontal mono-curves.
Relates to #890#issuecomment-169672571, fixing the 2nd case of the 2nd example.
|
2016-01-07 15:58:51 +01:00 |
|
Jürg Lehni
|
bc8fb92b9d
|
Rename some variables to be more clear about their role.
|
2016-01-07 15:55:24 +01:00 |
|
Jürg Lehni
|
5e01774c91
|
Further simplify checks of crossing vs touching in getWinding()
Relates to #890
|
2016-01-07 13:09:47 +01:00 |
|
Jürg Lehni
|
231dba83b2
|
No need to filter intersections if there were no overlaps.
|
2016-01-07 12:15:11 +01:00 |
|
Jürg Lehni
|
af797df5ba
|
Remove includeOverlaps parameter from getCrossings()
And write better comments about how overlaps should be dealt with ideally.
|
2016-01-07 11:18:46 +01:00 |
|
Jürg Lehni
|
2fc7684efb
|
Optimize new getWinding() code a bit.
By storing additional information along the first curve of a monoCurve loop.
|
2016-01-07 11:02:51 +01:00 |
|
Jürg Lehni
|
1078e1f8a9
|
Implement winding fix suggested by @iconexperience.
Along with a unit test for the issue.
Closes #890
|
2016-01-07 10:02:43 +01:00 |
|
Jürg Lehni
|
e5a62cb919
|
Fix new failing tests in @iconexperience's test suite.
Relates to comments on 5a16d0cd01
|
2016-01-07 09:50:07 +01:00 |
|
Jürg Lehni
|
2539527864
|
Fix minification warnings.
|
2016-01-06 15:25:37 +01:00 |
|
Jürg Lehni
|
8cec4f972d
|
Handle tiny handles correctly In Curve's evaluate()
If the curve handles are almost zero, reset the control points to the anchors.
Closes #838
|
2016-01-06 15:03:35 +01:00 |
|
Jürg Lehni
|
b9c76f44e8
|
Convert "Note: " comments to "NOTE: " and do some cleanup.
|
2016-01-06 14:23:19 +01:00 |
|
Jürg Lehni
|
7152942719
|
Replace links to issues with short references.
|
2016-01-06 14:13:02 +01:00 |
|
Jürg Lehni
|
156dd661ed
|
Detect and handle fully overlapping paths in boolean operations.
Closes #885
|
2016-01-06 11:54:23 +01:00 |
|
Jürg Lehni
|
feec904288
|
Fix white-space.
|
2016-01-06 11:14:38 +01:00 |
|
Jürg Lehni
|
df580425f4
|
Remove sameDir parameter from isCollinear() agian.
It's not in use anywhere now.
|
2016-01-06 11:08:17 +01:00 |
|
Jürg Lehni
|
5a16d0cd01
|
Implement proper handling of self-touching paths in resolveCrossings().
Closes #874, #887
|
2016-01-06 10:53:50 +01:00 |
|
Jürg Lehni
|
d89995a781
|
Fix winding calculation in rare edge case.
Closes #889
|
2016-01-06 00:34:23 +01:00 |
|
Jürg Lehni
|
17d000266f
|
Deactivate use of sameDir in Path#reduce() for now.
|
2016-01-06 00:27:11 +01:00 |
|
Jürg Lehni
|
cb6afda083
|
Add sameDir parameter it #isCollinear() functions and use it in Path#reduce().
|
2016-01-05 14:51:55 +01:00 |
|
Jürg Lehni
|
0a7bb06d93
|
Implement suggestions by @iconexperience in #887
|
2016-01-05 12:43:38 +01:00 |
|
Jürg Lehni
|
928ad48937
|
Rename start/endConnected to excludeStart/End.
|
2016-01-05 12:14:21 +01:00 |
|
Jürg Lehni
|
a7fc04a9b1
|
Improve comments in new getOverlaps() code.
|
2016-01-05 12:11:56 +01:00 |
|
Jürg Lehni
|
0d172a74f4
|
Start handling self-overlapping paths in getOverlaps()
Relates to #874 and #887
|
2016-01-05 12:04:40 +01:00 |
|
Jürg Lehni
|
d71acb4002
|
Further simplify boolean operator handling.
|
2016-01-05 11:10:59 +01:00 |
|
Jürg Lehni
|
1132de0415
|
Clean up boolean code comments a bit.
|
2016-01-05 11:06:06 +01:00 |
|
Jürg Lehni
|
4a10fe33d3
|
Refactor and improve handling of boolean operators.
Also detect a case where all encountered segments are part of overlaps, and add parameter startInOverlaps that handles this situation.
Closes #870
|
2016-01-05 10:30:33 +01:00 |
|
Jürg Lehni
|
bcf000788e
|
Reduce GEOMETRIC_EPSILON again.
Reverting daaf625ebd
|
2016-01-04 12:53:30 +01:00 |
|
Jürg Lehni
|
34d4115061
|
Do not modify children array directly
Use Item#remove() to remove children, to make sure indices are kept in sync.
|
2016-01-04 11:12:56 +01:00 |
|
Jürg Lehni
|
1543d056a7
|
Add more boolean unit tests from known edge cases.
|
2016-01-04 11:01:42 +01:00 |
|
Jürg Lehni
|
9127b13a01
|
Use GEOMETRIC_EPSILON tolerance when filtering out short curves.
Aligning with tolerances in the rest of the library.
|
2016-01-04 10:38:51 +01:00 |
|
Jürg Lehni
|
daaf625ebd
|
Double GEOMETRIC_EPSILON to cover the last found edge case.
See https://github.com/paperjs/paper.js/issues/784#issuecomment-168614053
|
2016-01-04 10:02:58 +01:00 |
|
Jürg Lehni
|
88634d4d3d
|
The paper.browser object might not be initialized yet.
|
2016-01-03 01:23:17 +01:00 |
|