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 |
|
Jürg Lehni
|
089738478c
|
Bring back boolean exclusion handling to reverted code.
|
2015-09-15 15:03:12 +02:00 |
|
Jürg Lehni
|
7b3f8598f4
|
Make sure all results of boolean operations are styled and inserted in the sample way.
|
2015-09-15 14:11:27 +02:00 |
|
Jürg Lehni
|
e4b4037721
|
Revert "Improve handling of exclude() operations."
This reverts commit e85586d0fe .
|
2015-09-15 13:01:52 +02:00 |
|
Jürg Lehni
|
5e327f7a48
|
Revert "Substantial simplifications in boolean code."
This reverts commit a665175a89 .
|
2015-09-14 15:23:46 +02:00 |
|
Jürg Lehni
|
fec479167c
|
Improve debug logging and drawing.
|
2015-09-14 15:16:52 +02:00 |
|
Jürg Lehni
|
a665175a89
|
Substantial simplifications in boolean code.
These were probably made possible thanks to increased precision elsewhere in the lib.
|
2015-09-14 01:20:03 +02:00 |
|
Jürg Lehni
|
e85586d0fe
|
Improve handling of exclude() operations.
Determine wether to switch to other intersection or not based on tangents.
Closes #781 again.
|
2015-09-14 00:51:46 +02:00 |
|
Jürg Lehni
|
b532c9cce2
|
Handle boolean exclusion as a special case.
Switching each time an intersection is encountered.
Closes #781
|
2015-09-13 22:12:04 +02:00 |
|
Jürg Lehni
|
e2d2c836e5
|
Some boolean code clean-up.
|
2015-09-13 14:19:56 +02:00 |
|
Jürg Lehni
|
d84a84c67f
|
Change the way winding contributions are propagated
The new approach preserves segment sequence.
Relates to #777
|
2015-09-13 13:06:01 +02:00 |
|
Jürg Lehni
|
d62caf6faa
|
Introduce CURVETIME_EPSILON, to be used when handling curve time parameters.
Relates to #777
|
2015-09-12 22:55:58 +02:00 |
|
Jürg Lehni
|
8047f90ccf
|
Switch to using GEOMETRIC_EPSILON in getWinding() code.
|
2015-09-12 22:20:31 +02:00 |
|
Jürg Lehni
|
ef45a5f62c
|
Clean up tMin / tMax uses.
|
2015-09-12 22:14:04 +02:00 |
|
Jürg Lehni
|
2fb203ddd1
|
Adjust notes since we now support boolean operations on self-intersecting Paths items
|
2015-09-12 11:58:17 +02:00 |
|
Jürg Lehni
|
cdd0cee623
|
Activate resolving of self-intersections in boolean code.
Relates to #779
|
2015-09-12 10:24:19 +02:00 |
|
Jürg Lehni
|
c69ea345da
|
Correctly handle self-intersections when deciding to switch segments.
Closes #765
|
2015-09-10 05:21:47 +02:00 |
|
Jürg Lehni
|
04452730dd
|
Simplify CurveLocation data structures.
Directly creating and linking intersections simplifies things a lot.
|
2015-09-09 17:17:49 +02:00 |
|
Jürg Lehni
|
78e0bae6aa
|
Activate code that handles self-intersection directly now.
Relates to #765, #761
|
2015-09-09 08:24:02 +02:00 |
|
Jürg Lehni
|
1c1e19614e
|
Avoid matching connected start- and end points when self-intersecting curves.
Partial fix for #765.
|
2015-09-09 07:28:08 +02:00 |
|
Jürg Lehni
|
9d12a0a82c
|
Rename Curve#isLinear() to #isStraight()
Relates to #652
|
2015-09-06 17:35:27 +02:00 |
|
Jürg Lehni
|
dd1f5ba3d1
|
Remove Path#isLinear() and use Path#getArea() instaed in boolean code.
|
2015-09-06 16:35:15 +02:00 |
|
Jürg Lehni
|
fa9eb8be99
|
Merge remote-tracking branch 'origin/develop' into boolean-fix
; Conflicts:
; src/path/PathItem.Boolean.js
|
2015-09-06 15:36:40 +02:00 |
|
Jürg Lehni
|
8b67d8a1dc
|
Remove #isStraight() in favor of #hasHandles() and implement #clearHandles()
Relates to #652
|
2015-09-06 12:47:35 +02:00 |
|
Jürg Lehni
|
0651eee0c2
|
No more need for special handling of 'subtract' overlaps.
This is now taken care of in the code that handles overlaps itself, and the additional code was causing additional issues.
|
2015-08-30 19:58:32 +02:00 |
|
Jürg Lehni
|
4379e0b0f0
|
Improve boolean debug code.
|
2015-08-30 19:56:17 +02:00 |
|
Jürg Lehni
|
31771aa01d
|
Insert results of boolean operations above whichever of the two paths appear further up in the stack.
|
2015-08-30 14:47:46 +02:00 |
|
Jürg Lehni
|
b4755ea699
|
Deactivate debug logging code.
|
2015-08-30 14:38:18 +02:00 |
|
Jürg Lehni
|
e07d8f55ea
|
Add debug logging for intersections again.
|
2015-08-28 16:18:14 +02:00 |
|