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
|
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
|
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
|
99909953a8
|
Use colors to distinguish faulty boolean paths.
|
2015-10-09 11:07:43 +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
|
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
|
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
|
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
|
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
|
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
|
8073183010
|
Use getIntersections() with right filter instead of getCrossings() for boolean operations.
|
2015-10-03 17:17:12 -04:00 |
|
Jürg Lehni
|
5af8515d1a
|
Commit some useful debug code, deactivated for now.
|
2015-10-03 16:18:00 -04:00 |
|
Jürg Lehni
|
61fc75ace3
|
Some code clean-up.
|
2015-10-03 10:40:33 -05:00 |
|
Jürg Lehni
|
7496a7c9e2
|
Try linked up intersections first before switching to the other intersecetion.
|
2015-10-02 19:00:32 -05:00 |
|
Jürg Lehni
|
632eb25f19
|
Bring back code removed in 11611c8fe2 again.
But add a _visited check, to get best of both approaches.
|
2015-10-02 18:57:45 -05:00 |
|
Jürg Lehni
|
11611c8fe2
|
Remove isValid() check for current segment before attempting the switch.
This properly fixes example 14 in #784.
|
2015-10-02 01:06:36 -05:00 |
|
Jürg Lehni
|
8dfa721e5a
|
Adjust debug rendering.
|
2015-10-01 21:12:15 -05:00 |
|
Jürg Lehni
|
a808aaf0fa
|
Remove unnecessary check for other === start.
|
2015-10-01 21:11:51 -05:00 |
|
Jürg Lehni
|
de57a7fbc8
|
Simplify tracePaths() code.
|
2015-10-01 21:09:30 -05:00 |
|
Jürg Lehni
|
8aca088bf6
|
Clean-up splitPath() code a bit.
|
2015-10-01 09:41:57 -05:00 |
|
Jürg Lehni
|
b8c6eb46ad
|
Fix weirdness of Curve#divide() modifying the wrong Curve object.
|
2015-10-01 06:52:08 -05:00 |
|
Jürg Lehni
|
c77165be3a
|
Fix issue in Curve#divide() that lead to intersection segments being linked up wrongly.
Relates to #784
|
2015-10-01 06:21:17 -05:00 |
|
Jürg Lehni
|
53dd726057
|
Rename ignoreStraight argument to _setHandles
|
2015-10-01 05:55:22 -05:00 |
|
Jürg Lehni
|
fd927cbe22
|
Properly solve issues with self-intersecting special case.
(e.g. shapes resembling the infinity sign)
|
2015-09-24 12:49:39 -04:00 |
|
Jürg Lehni
|
fc0b5a8858
|
Give the intersection that brings us back to the beginning alwasy the priority.
|
2015-09-24 07:47:39 -04:00 |
|
Jürg Lehni
|
c79166a46f
|
Mark last segment as visited when done.
|
2015-09-23 14:31:12 -04:00 |
|