Jürg Lehni
|
51c34444db
|
Some more debugging code clean-up.
|
2015-09-21 12:18:57 -04:00 |
|
Jürg Lehni
|
84bcc537e1
|
Simplify addCurveLineIntersections() and exclude end points.
|
2015-09-21 12:13:53 -04:00 |
|
Jürg Lehni
|
0f61ce896a
|
Some code clean-up.
|
2015-09-21 10:54:33 -04:00 |
|
Jürg Lehni
|
ce95043e99
|
Lower geometric epsilon.
Differences slightly above 1e-8 where observed.
|
2015-09-21 10:54:17 -04:00 |
|
Jürg Lehni
|
812ac63e60
|
Compare points instead of curve time paramters for better precision and reliability.
|
2015-09-21 10:53:53 -04:00 |
|
Jürg Lehni
|
e36319b71a
|
Give PathItem#getIntersections() a way to filter found intersections right away.
And use it in #getCrossings()
|
2015-09-21 10:41:59 -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
|
1ad95c9020
|
Improve CurveLocation.add() to always merge duplicates.
We nee to check neighbors of the found location too.
|
2015-09-21 07:06:41 -04:00 |
|
Jürg Lehni
|
f47af12b0d
|
Shorten code statement.
|
2015-09-20 23:22:41 +02:00 |
|
Jürg Lehni
|
1302df0cb8
|
Fix variable leackage.
|
2015-09-20 23:22:31 +02: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
|
18c5a06f45
|
Fix colors in animated boolean operations demo.
|
2015-09-18 23:00:47 +02:00 |
|
Jürg Lehni
|
081de1d12a
|
'exclude' operation needs overlap handling too.
|
2015-09-18 22:29:29 +02:00 |
|
Jürg Lehni
|
a95ba12bc3
|
isCrossing() needs parameter checks on both curves.
|
2015-09-18 22:26:09 +02:00 |
|
Jürg Lehni
|
b5af47a7b1
|
Implement a better approach to calculate Path#clockwise...
...merging code with Path#area.
Closes #788
|
2015-09-18 21:41:54 +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
|
10eafccd1a
|
Implement 0.75 * handle scaling in curve bounds checks.
|
2015-09-18 21:09:57 +02:00 |
|
Jürg Lehni
|
17dc5eb51a
|
Allow gettings of unstyled bounds on curves without paths.
|
2015-09-18 20:15:18 +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
|
5af391d333
|
Fix errors in Boolean Operations example.
|
2015-09-18 17:52:14 +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
|
73a9989261
|
Fix CurveLocation#isCrossing() for locations in the middle of curves.
|
2015-09-18 17:32:19 +02:00 |
|
Jürg Lehni
|
ae93652b56
|
Clean up getIntersection() methods.
Now that they filter the results on the fly.
|
2015-09-18 17:31:23 +02:00 |
|
Jürg Lehni
|
85311cfb29
|
Improve Path#getArea() and #isClockwise()
|
2015-09-18 17:27:29 +02:00 |
|
Jürg Lehni
|
17356637ac
|
Clean up new CurveLocation code.
|
2015-09-17 10:18:45 +02:00 |
|
Jürg Lehni
|
9c812335e5
|
Curve._filterIntersections() is now without a job.
|
2015-09-17 09:39:22 +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
|
d0332f843f
|
Renamed Curve#reverse() and Segment#reverse() to #reversed()
Since they don't modify the object. Also introduce new Segment#reverse(), which does.
|
2015-09-16 18:16:48 +02:00 |
|
Jürg Lehni
|
857e27e3a8
|
Fix accidental variable leackage.
|
2015-09-16 18:15:26 +02:00 |
|
Jürg Lehni
|
7061bc0e0a
|
Simplify CurveLocation.sort() code
Relates to #787
|
2015-09-16 10:52:51 +02:00 |
|
Jürg Lehni
|
0980ad3fe9
|
Fix remaining issues with curve location sorting.
Relates to #787
|
2015-09-16 10:44:41 +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
|
197aa4b4cf
|
No need to wrap angles as they're always -PI < a < PI.
|
2015-09-16 02:56:24 +02:00 |
|