Jürg Lehni
48bb0a1be4
Address old TODO in getWinding()
2015-10-09 10:33:43 +02:00
Jürg Lehni
0839dbe1f5
New overlap handling is producing new glitches.
...
Turn it off for now, until further analysis has been done.
2015-10-09 10:27:25 +02:00
Jürg Lehni
b2127a83ad
Revert "Do not start with segments with multiple intersections."
...
This reverts commit 5129fb0050
.
2015-10-09 10:22:54 +02:00
Jürg Lehni
514e6651e6
Revert "Avoid all intersections as starting points for boolean paths."
...
This reverts commit 9590578339
.
2015-10-09 10:19:05 +02:00
Jürg Lehni
c45ae4b51a
Revert "Never starting in intersections allows for further code simplifications."
...
This reverts commit 892154e8f8
.
2015-10-09 10:18:45 +02:00
Jürg Lehni
892154e8f8
Never starting in intersections allows for further code simplifications.
2015-10-09 00:03:34 +02:00
Jürg Lehni
9590578339
Avoid all intersections as starting points for boolean paths.
2015-10-08 23:56:18 +02:00
Jürg Lehni
939a9fe034
Improve overlap handling by actually storing overlap curves on intersections objects.
...
And properly comparing against them in tracePaths().
2015-10-08 23:54:00 +02:00
Jürg Lehni
5129fb0050
Do not start with segments with multiple intersections.
...
Simplifies the required checks at the end, and generally reduces number edge cases.
2015-10-08 23:38:41 +02:00
Jürg Lehni
c9eba83cc7
Improve detection of start segments.
...
Segments with multiple intersections need to be checked thoroughly to avoid errors.
2015-10-08 23:13:37 +02:00
Jürg Lehni
e92a71e8c7
Switch to improved version of Line. getSignedDistance()
...
Based on the error analysis by @iconexperience outlined in #799
2015-10-08 22:56:05 +02:00
Jürg Lehni
5c70f47b6f
Fix colors in reportWindings code.
2015-10-07 23:37:09 +02:00
Jürg Lehni
15d797ac55
Improve linkIntersections() to prevent endless recursions in linked intersections.
2015-10-07 17:20:08 +02:00
Jürg Lehni
3e9d7593cf
Some smaller tweaks in tracePaths()
2015-10-07 10:58:29 +02:00
Jürg Lehni
4fac3ee6fc
Rename getIntersection() -> getBestIntersection()
2015-10-07 10:57:43 +02:00
Jürg Lehni
bfa0459c52
Go back to using Group for divide() results.
...
As they may contain multiple CompoundPaths.
2015-10-07 10:57:09 +02:00
Jürg Lehni
1103c7036f
Remove unnecessary isValid() check on segments without intersections.
...
It was only causing issues without solving anything.
2015-10-07 02:02:27 +02:00
Jürg Lehni
8c56a1a110
Include _visited checks in isValid() calls.
...
This magically reduces the remaining glitches in @iconexperience's test-suite to half.
Relates to #784 .
2015-10-06 22:23:43 +02:00
Jürg Lehni
896b068266
Switch from recursion to a simple loop in getIntersection()
2015-10-06 21:30:51 +02:00
Jürg Lehni
8e4bef217a
Change Curve.getParameterOf() to accept a point instead of x, y arguments.
2015-10-06 21:24:58 +02:00
Jürg Lehni
525e35518d
No need to default to 0 anymore.
...
See 1b343d5347 (commitcomment-13622714)
2015-10-06 21:16:49 +02:00
Jürg Lehni
bc736f439f
Have Numerical.CURVETIME_EPSILON / 10 evaluated at preprocess time.
2015-10-06 21:14:43 +02:00
Jürg Lehni
7f4d8d54f0
Reduce epsilon in addCurveIntersections()
...
1/10 of CURVETIME_EPSILON appears to produce good results. It's probably wise to keep it linked.
2015-10-06 21:14:04 +02:00
Jürg Lehni
3ac3df8d32
Rewrite method for linking and choosing multiple intersections in the same location.
...
The special handling of overlaps reduces the amount of remaining glitches substantially.
Relates to #784 .
2015-10-06 21:09:35 +02:00
Jürg Lehni
adabe9126a
Simplify calculation of tMinNew and tMaxNew.
...
As suggested by @iconexperience in https://github.com/paperjs/paper.js/issues/795#issuecomment-145918347
2015-10-06 20:15:15 +02:00
Jürg Lehni
1b343d5347
Rewrite 04cab797db
to only use one return statement.
2015-10-06 16:31:30 +02:00
Jürg Lehni
99d969e962
Merge pull request #798 from iconexperience/Improve-clipConvexHullPart
...
Improve clipConvexHullPart()
2015-10-06 16:21:41 +02:00
Jürg Lehni
3a65c87843
Some code formatting and a fix for a typo in new getConvexHull()
2015-10-06 16:09:35 +02:00
Jürg Lehni
6b421d5f72
Merge pull request #797 from iconexperience/New-getConvexHull
...
Faster simpler and more reliable implementation of getConvexHull()
2015-10-06 16:03:45 +02:00
Jan
04cab797db
Improve clipConvexHullPart()
...
Separately handle special cases
2015-10-06 15:25:40 +02:00
Jan
ea035bd9e4
New getConvexHull()
2015-10-06 15:19:33 +02:00
Jürg Lehni
b3d45b6624
Some code clean-up in addCurveIntersections()
2015-10-05 19:32:13 +02:00
Jürg Lehni
c8132584b9
Pass on original curves to addLocation(), to correctly determine p1 and p2.
...
This fixes one glitch in @iconexperience's test suite.
2015-10-05 19:31:38 +02:00
Jürg Lehni
fcdf916863
Some tweaks to debugging code.
...
Leave open path artifacts clearly visible for now, so they can be more easily detected.
2015-10-05 17:42:01 +02:00
Jürg Lehni
aa3f527ca6
Minor code clean-up.
2015-10-05 17:35:54 +02:00
Jürg Lehni
1f03b00f99
Remove handling of converged fat-line, as it causes issues.
...
Example 23 in #784 was caused by this, and the code's removal has not produced any new issues, while it solved 6 issues in @iconexperience's test suite.
Closes #795
2015-10-05 17:20:56 +02:00
Jürg Lehni
93cacffd06
Improve comments describing isValid() calls.
2015-10-05 10:56:29 +02:00
Jürg Lehni
7494f880f8
Revert previous commit, due to wrong assumption.
2015-10-05 10:44:34 +02:00
Jürg Lehni
90b4cf7292
No need to check for overlap when determining value for unadjusted
...
Since setting only changes behavior if there actually is an overlap.
2015-10-05 05:52:35 +02:00
Jürg Lehni
05bc6afdbb
Always give intersection segment priority over current segment if valid.
...
Fixes example 22 in #784 , doesn't seem to introduce new issues, unlike last time I tried this approach.
2015-10-05 05:34:22 +02:00
Jürg Lehni
bd4874d73e
Improve debug logging of windings.
2015-10-05 04:57:12 +02:00
Jürg Lehni
ba76ed8671
Consider the winding contribution at the intersection of the next segment as well.
...
Fixes both example 20 and example 21 in #784
2015-10-05 04:24:04 +02:00
Jürg Lehni
d2c762997f
Address improvements mentioned by @hkrish in #794
2015-10-04 18:36:18 +02:00
Jürg Lehni
5601e21996
Make sure the two locations are actually part of the same path before comparing index / parameter values.
2015-10-04 10:14:04 +02:00
Jürg Lehni
035a3a1b8c
Remove unnecessary _visited check.
2015-10-04 02:27:56 +02:00
Jürg Lehni
ebc956353f
Move code to adjust segments after split to CurveLocation.
2015-10-04 02:25:33 +02:00
Jürg Lehni
be2f98d91a
Optimize various isCollinear() and isOrthogonal() methods.
2015-10-03 17:42:52 -04:00
Jürg Lehni
8073183010
Use getIntersections() with right filter instead of getCrossings() for boolean operations.
2015-10-03 17:17:12 -04:00
Jürg Lehni
79cb216684
Define CurveLocation#isOverlap() and improve documentation of various related methods.
2015-10-03 17:15:45 -04:00
Jürg Lehni
5af8515d1a
Commit some useful debug code, deactivated for now.
2015-10-03 16:18:00 -04:00