Jürg Lehni
|
9762d2c9e6
|
Revert "Simplify circular neighbor checks."
This reverts commit 2bb3df3314 .
|
2015-10-13 09:35:13 +02:00 |
|
Jürg Lehni
|
b5c59c881c
|
Revert "One more simplification."
This reverts commit 0ce825f8c9 .
|
2015-10-13 09:35:08 +02:00 |
|
Jürg Lehni
|
0ce825f8c9
|
One more simplification.
|
2015-10-13 08:34:48 +02:00 |
|
Jürg Lehni
|
2bb3df3314
|
Simplify circular neighbor checks.
Relates to #805.
|
2015-10-13 08:32:05 +02:00 |
|
Jürg Lehni
|
9de6aa97f2
|
Third attempt at correctly handling paths as circular lists.
Relates to #805.
|
2015-10-13 07:59:19 +02:00 |
|
Jürg Lehni
|
f6f6a58fe6
|
Improve handling of paths as circular lists.
|
2015-10-13 07:27:25 +02:00 |
|
Jürg Lehni
|
2e552853fd
|
Handle paths as circular lists in CurveLocation.insert() as well.
Relates to #805
|
2015-10-13 07:23:15 +02:00 |
|
Jürg Lehni
|
0553201de8
|
Add forgotten semi-colon.
|
2015-10-13 00:11:24 +02:00 |
|
Jürg Lehni
|
3d33bbdfa3
|
Clean-up CurveLocation#equals()
|
2015-10-13 00:10:21 +02:00 |
|
Jürg Lehni
|
f77579079e
|
Improve CurveTime#equals() to handle locations that wrap around beginnings / ends of paths.
See https://github.com/paperjs/paper.js/issues/805#issuecomment-147470240 for details.
|
2015-10-13 00:06:34 +02:00 |
|
Jürg Lehni
|
760da612f6
|
Merge pull request #804 from iconexperience/Small-refactoring-in-getConvexHull()
Small refactoring in getConvexHull()
|
2015-10-12 09:04:17 +02:00 |
|
iconexperience
|
f8edf5d8a7
|
Small refactoring in getConvexHull()
Make calculations of distances more concise.
|
2015-10-12 08:42:36 +02:00 |
|
Jürg Lehni
|
588ddbe011
|
Add comments to Curve#getParameterOf()
|
2015-10-11 17:09:04 +02:00 |
|
Jürg Lehni
|
bbc0029252
|
Go back to simple overlap handling.
It appears to produce less glitches.
|
2015-10-11 17:05:23 +02:00 |
|
Jürg Lehni
|
4500e520ea
|
Minor code clean-up.
|
2015-10-11 17:00:23 +02:00 |
|
Jürg Lehni
|
c9f5c02ee4
|
Decrease GEOMETRIC_EPSILON
This appears to be better aligned with the new Curve#getParameterOf() behavior.
|
2015-10-11 17:00:01 +02:00 |
|
Jürg Lehni
|
c1d0bd21b8
|
Improve Curve#getParameterOf() to better handle very small curves.
See #799
|
2015-10-11 16:59:03 +02:00 |
|
Jürg Lehni
|
61db3d9d01
|
Improve handling of boolean debug options.
|
2015-10-11 16:57:43 +02:00 |
|
Jürg Lehni
|
6cdead0e8c
|
Add fallback strategy when ending up in a dead-end in tracePaths().
This simple fix appears to be able to catch quite a few glitches with very small curves.
|
2015-10-11 16:56:41 +02:00 |
|
Jürg Lehni
|
247e80f569
|
Update to latest prepro.js with proper support for strings and scientific numbers.
|
2015-10-11 15:50:25 +02:00 |
|
Jürg Lehni
|
841381f520
|
Reactivate new overlap handling.
It appears to work better with the new Curve.getParameterOf()
|
2015-10-11 10:17:03 +02:00 |
|
Jürg Lehni
|
d20cdf5b73
|
There can only be one self-intersection per curve.
|
2015-10-11 09:48:55 +02:00 |
|
Jürg Lehni
|
8a122e19d8
|
Split self-intersection handling into separate method.
Increasing readability of both methods.
|
2015-10-11 09:26:04 +02:00 |
|
Jürg Lehni
|
7aed221801
|
Some refactoring in static methods of CurveLocation.
|
2015-10-11 09:18:50 +02:00 |
|
Jürg Lehni
|
99909953a8
|
Use colors to distinguish faulty boolean paths.
|
2015-10-09 11:07:43 +02:00 |
|
Jürg Lehni
|
688f580b95
|
Switch to new Curve.getParameterOf()
Simpler code, but improved precision means more glitches to analyze.
|
2015-10-09 10:34:46 +02:00 |
|
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 |
|