Jürg Lehni
|
86478b6873
|
Boolean: Improve handling of branching at crossings.
|
2017-02-25 18:55:11 +01:00 |
|
Jürg Lehni
|
919c42af27
|
Implement Segment#isSmooth() and use it in handling of stroke-joins.
|
2017-02-25 15:45:58 +01:00 |
|
Jürg Lehni
|
f19a50093b
|
Simplify handling of strokeJoin / strokeCap geometries.
|
2017-02-22 22:22:23 +01:00 |
|
Jürg Lehni
|
b40efbf6db
|
Fix Line#getSide() imprecisions when points are on the line.
|
2017-02-22 17:41:51 +01:00 |
|
Jürg Lehni
|
6a4347e75b
|
Optimize Curve#hasLength()
Only check the handles that are actually part of the curve.
Closes #1260
|
2017-02-22 17:29:23 +01:00 |
|
Jürg Lehni
|
919615f168
|
Remove CurveLocation#getOffsetTo() again.
|
2017-02-22 17:05:23 +01:00 |
|
Jürg Lehni
|
e3828d810b
|
When aborting fat-line clipping, attempt an approximation with line intersections.
|
2017-02-22 13:58:27 +01:00 |
|
Jürg Lehni
|
ba2b18c7dc
|
Small improvement in Path#arcTo() to reduce segment account in edge cases.
|
2017-02-22 13:57:51 +01:00 |
|
Jürg Lehni
|
d204175d39
|
Improve and optimize fat-line clipping algorithm.
By checking if subdivided curves are straight and falling back on line-line / line-curve approach if they are.
|
2017-02-21 23:09:30 +01:00 |
|
Jürg Lehni
|
caac1c18e3
|
Implement CurveLocation#getOffsetTo(location)
|
2017-02-21 22:19:38 +01:00 |
|
Jürg Lehni
|
ee48e6cd03
|
Implement caching for CurveLocation#curveOffset.
|
2017-02-21 22:19:17 +01:00 |
|
Jürg Lehni
|
f089c3c620
|
Improve handling of new segments in CurveLocation#divide() and #split()
|
2017-02-21 22:16:55 +01:00 |
|
Jürg Lehni
|
f16b91e0fe
|
Tests: Implement unit test for #1233
|
2017-02-21 22:10:08 +01:00 |
|
Jürg Lehni
|
ed57b82b19
|
Boolean: Improve handling of multiple crossings on the same curve.
|
2017-02-21 22:05:38 +01:00 |
|
Jürg Lehni
|
357ff0dd43
|
Reduce epsilon in fat-line clipping to 1e-12 and adjust unit tests.
These results make much more sense and the algorithm finds less false positives while still behaving reliably in all edge cases.
|
2017-02-16 14:05:05 +01:00 |
|
Jürg Lehni
|
2343ed5ca9
|
Remove checks for begin- and end-points in getCurveIntersections()
See #1239
|
2017-02-16 14:00:18 +01:00 |
|
Jürg Lehni
|
4f9d23da81
|
Use consistent boundary policy when dealing with curve-time.
|
2017-02-16 13:41:53 +01:00 |
|
Jürg Lehni
|
e3c6245979
|
Docs: Improve description of option.class value in #hitTest()
See #632
|
2017-02-15 16:11:33 +01:00 |
|
Jürg Lehni
|
1ff4bc9665
|
More cleanup in curve intersection code.
|
2017-02-12 15:52:56 +01:00 |
|
Jürg Lehni
|
2ead16ca89
|
Rename Curve.getCurvesIntersections() to Curve. getIntersections()
|
2017-02-12 15:47:01 +01:00 |
|
Jürg Lehni
|
bd98e067c3
|
Docs: Some cleanup in Curve.
|
2017-02-12 15:42:12 +01:00 |
|
Jürg Lehni
|
df7323da32
|
Improve handling of excludeStart / excludeEnd in curve intersections.
|
2017-02-12 15:27:59 +01:00 |
|
Jürg Lehni
|
45f5bf84e8
|
Enforce creation of Curve#values getter despite hidden parameter.
|
2017-02-12 12:15:59 +01:00 |
|
Jürg Lehni
|
286765f4b0
|
Further optimizations in getOverlaps()
|
2017-02-11 21:32:11 +01:00 |
|
Jürg Lehni
|
23202d0c80
|
Some code optimizations and cleanup.
|
2017-02-11 21:25:42 +01:00 |
|
Jürg Lehni
|
1b50355585
|
Improve getCurveIntersections() for use with neighboring curves.
As needed by bezier offsetting code.
|
2017-02-11 21:19:47 +01:00 |
|
Jürg Lehni
|
5736ebaa19
|
Merge pull request #1253 from iconexperience/LineGetDistance
Add Line.getDistance() and use it in Curve.getOverlaps()
|
2017-02-11 21:18:31 +01:00 |
|
iconexperience
|
af7b22a708
|
Add Line.getDistance() and use it in Curve.getOverlaps()
|
2017-02-07 16:15:41 +01:00 |
|
Jürg Lehni
|
13f4773985
|
Fix documentation of Project#hitTestAll()
Relates to #536
|
2017-02-06 18:36:00 +01:00 |
|
Jürg Lehni
|
b23c272d69
|
Minor code cleanup.
|
2017-02-06 16:46:22 +01:00 |
|
Jürg Lehni
|
4588a90952
|
Expose Curve.getCurvesIntersections()
To be used in offsetting code to check for self-intersections.
|
2017-02-06 16:37:05 +01:00 |
|
Jürg Lehni
|
fafbd9ad36
|
Expose Curve. getCurveLineIntersections() for curve offsetting.
|
2017-02-05 21:59:56 +01:00 |
|
Jürg Lehni
|
8c3c771891
|
Streamline handling of abscissa and ordinate flipping.
|
2017-02-05 21:59:29 +01:00 |
|
Jürg Lehni
|
1f768c69d2
|
Move private getPeaks() to Curve.getPeaks()
It will be of use in the offsetting code as well.
|
2017-02-05 14:20:43 +01:00 |
|
Jürg Lehni
|
7fc029d98b
|
More quality related tweaks in getWinding()
|
2017-02-04 21:55:44 +01:00 |
|
Jürg Lehni
|
fb4a0b1fe0
|
No need to change the winding values here.
But onPath is crucial. Relates to #1073
|
2017-02-04 21:38:56 +01:00 |
|
Jürg Lehni
|
4d6ebe2f3f
|
Switch to absolute winding values in getWinding()
That’s what the previous code was already doing, but cryptically so. Relates to #1073
|
2017-02-04 21:38:17 +01:00 |
|
Jürg Lehni
|
0e8b304715
|
Improve handling of quality value in getWinding()
Relates to #1073
|
2017-02-04 21:37:05 +01:00 |
|
Jürg Lehni
|
bbcfa644d9
|
Bring back accidentally removed winding object fallback.
|
2017-02-04 20:50:22 +01:00 |
|
Jürg Lehni
|
69c124c36c
|
Merge remote-tracking branch 'origin/improved-reorient' into develop
; Conflicts:
; src/path/PathItem.Boolean.js
|
2017-02-04 20:20:21 +01:00 |
|
Jürg Lehni
|
535607931c
|
Unit tests for boolean operations without crossings.
Closes #1113
|
2017-02-04 20:15:23 +01:00 |
|
Jürg Lehni
|
9af936514e
|
Minor code cleanups.
|
2017-02-04 20:14:35 +01:00 |
|
Jürg Lehni
|
6ad5bfafee
|
Implement unit test for #1073
Closes #1073, closes #1074
|
2017-01-25 07:55:37 -05:00 |
|
Jürg Lehni
|
d18fa8bb03
|
Support multiple gradient offsets at 0
Closes #1241
|
2017-01-24 18:14:56 -05:00 |
|
Jürg Lehni
|
4833c588e5
|
Improve comments.
|
2017-01-24 08:22:03 -05:00 |
|
Jürg Lehni
|
1806b5959e
|
Improve tangent direction handling in isCrossing()
Find unambiguous vectors by taking inception points and “peaks” into account.
Relates to #1073, #1074
|
2017-01-24 07:50:40 -05:00 |
|
Jürg Lehni
|
a410aafaf2
|
Remove unused property.
|
2017-01-24 06:52:27 -05:00 |
|
Jürg Lehni
|
8bbbe149ea
|
More simplifications related to reorientPaths()
|
2017-01-22 12:08:54 -05:00 |
|
Jürg Lehni
|
f77621f67d
|
Various improvements to new reorient() code
- Merge insideWindings object with operators lookup
- Optimize handling of excluded paths
- Improve contour handling in unite operations
|
2017-01-22 11:44:40 -05:00 |
|
Jürg Lehni
|
4e215b0eab
|
Unify naming of bezier coordinates in internal calculations.
|
2017-01-17 12:05:32 +01:00 |
|