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 |
|
Jürg Lehni
|
6a29f200e3
|
Always use getIntersection(), even on the first segment.
Now that it works well.
|
2015-09-21 12:44:53 -04:00 |
|
Jürg Lehni
|
51c34444db
|
Some more debugging code clean-up.
|
2015-09-21 12:18:57 -04:00 |
|
Jürg Lehni
|
0f61ce896a
|
Some code clean-up.
|
2015-09-21 10:54:33 -04:00 |
|
Jürg Lehni
|
f6f42fe09b
|
Improve handling of overlap ambiguity in getIntersection()
Two passes are needed, first strict, then non-strict, to prevent 'better' next candiates over 'worse' ones.
|
2015-09-21 09:44:17 -04:00 |
|
Jürg Lehni
|
19a17b2918
|
Prevent infinite loops through circular references of multiple intersections.
|
2015-09-21 09:43:19 -04:00 |
|
Jürg Lehni
|
40570b3e59
|
Furher improve boolean debug logging and drawing.
|
2015-09-21 09:42:47 -04:00 |
|
Jürg Lehni
|
b68be09c87
|
Fix all accidental non-breaking spaces.
|
2015-09-20 22:39:28 +02:00 |
|
Jürg Lehni
|
530b8b7bc8
|
Handle adjusted overlap winding contribution and operator calls through new isValid() function.
|
2015-09-20 15:50:26 +02:00 |
|
Jürg Lehni
|
738cc4c214
|
Yet another improvement in multiple interseections boolean code.
This appears to be the one. The only remaining failing cases seem to be linked to getting the same intersection twice now!
Relates to #787
|
2015-09-20 15:29:54 +02:00 |
|
Jürg Lehni
|
946157f1b1
|
Add note about usage of _originalWinding.
|
2015-09-20 14:19:14 +02:00 |
|
Jürg Lehni
|
20ed1e007c
|
More fixes in handling of multiple intersection locations.
|
2015-09-20 14:17:23 +02:00 |
|
Jürg Lehni
|
5db9703aff
|
No more need to check for crossings since every intersection is now either an overlap or a crossing.
|
2015-09-20 14:16:47 +02:00 |
|
Jürg Lehni
|
53862233e5
|
Improve debug logging of new multiple intersections code.
|
2015-09-19 22:47:57 +02:00 |
|
Jürg Lehni
|
4df65c1809
|
Various improvements to code that handles multiple intersections in same location.
Relates to #787
|
2015-09-19 19:07:44 +02:00 |
|
Jürg Lehni
|
1d6f552212
|
Prevent endless loop through circular references.
|
2015-09-19 13:42:48 +02:00 |
|
Jürg Lehni
|
2c8634793c
|
First attempt at implementing handling of multiple intersections in the same location.
Relates to #787, works pretty well already for many situations.
|
2015-09-19 13:21:29 +02:00 |
|
Jürg Lehni
|
081de1d12a
|
'exclude' operation needs overlap handling too.
|
2015-09-18 22:29:29 +02:00 |
|
Jürg Lehni
|
8cf562c57b
|
Revert "Remove special handling of winding contribution on overlaps"
This reverts commit c6a38589e9 .
The special handling seems to be still necessary in some edge cases, e.g. in BooleanOperations.html
|
2015-09-18 21:10:58 +02:00 |
|
Jürg Lehni
|
c6a38589e9
|
Remove special handling of winding contribution on overlaps
Looks like the new code handles this correclty now!
|
2015-09-18 18:06:15 +02:00 |
|
Jürg Lehni
|
23443dc8f4
|
Clean up boolean code.
|
2015-09-18 17:51:57 +02:00 |
|
Jürg Lehni
|
66b01973f0
|
Simplify exclusion handling for new boolean code.
|
2015-09-18 17:51:43 +02:00 |
|
Jürg Lehni
|
87687d816b
|
Implement PathItem#resolveCrossings() based on the new #getCrossings() method.
|
2015-09-18 17:51:03 +02:00 |
|
Jürg Lehni
|
c70f8cb3cc
|
Simplify overlap calculations by keeping the original winding value.
|
2015-09-18 17:46:46 +02:00 |
|
Jürg Lehni
|
59a23fdd3f
|
Improve debug logging.
|
2015-09-18 17:33:42 +02:00 |
|
Jürg Lehni
|
1508b8fc75
|
Improve debug logging.
|
2015-09-17 01:15:41 +02:00 |
|
Jürg Lehni
|
2750c34090
|
Improve the way intersections are sorted and merged.
Use a binary search to determine insertion index and compare with neighbours to eliminate doubles.
|
2015-09-17 01:03:13 +02:00 |
|
Jürg Lehni
|
30f1441c26
|
Various boolean code clean-ups.
|
2015-09-16 18:34:35 +02:00 |
|
Jürg Lehni
|
857e27e3a8
|
Fix accidental variable leackage.
|
2015-09-16 18:15:26 +02:00 |
|
Jürg Lehni
|
f8bd7a2005
|
Improve debug logging and drawing.
And add more descriptive comments to tracePath().
|
2015-09-16 09:52:41 +02:00 |
|
Jürg Lehni
|
2026e5571e
|
Some code cleanup and comments in isCrossing().
|
2015-09-16 02:54:25 +02:00 |
|
Jürg Lehni
|
ad276ba46a
|
More improvements in tracePaths()
- Use new isCrossing() check
- Correctly switch crossings in exclusion
|
2015-09-15 19:39:35 +02:00 |
|
Jürg Lehni
|
3ce7d88347
|
Second attempt at simplifying boolean code.
This time without endless loops.
|
2015-09-15 16:31:05 +02:00 |
|