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
|
4f04dae20f
|
Use the correct GEOMETRIC_EPSILON when matching beginnings and ends of curve in Curve.getParameterOf()
Relates to #777
|
2015-09-12 22:26:16 +02:00 |
|
Jürg Lehni
|
a0730756c1
|
Use correct term for curve parameter renormalization.
|
2015-09-12 22:13:18 +02:00 |
|
Jürg Lehni
|
085cdd74a2
|
Use GEOMETRIC_EPSILON when comparing curve start / end points.
Relates to #777
|
2015-09-12 21:56:53 +02:00 |
|
Jürg Lehni
|
3da921a0b0
|
Improve CompoundPath#reduce() to properly reduce suppaths.
Relates to #779
|
2015-09-12 11:43:41 +02:00 |
|
Jürg Lehni
|
fb5f8c0115
|
Introduce GEOMETRIC_EPSILON, for isOrthogonal(), isCollinear() and overlap checks.
Relates to #777
|
2015-09-12 10:35:47 +02:00 |
|
Jürg Lehni
|
35f3ac87bf
|
Change checks for startConnected / endConnected to support compound-paths.
Closes #778
|
2015-09-12 10:12:17 +02:00 |
|
Jürg Lehni
|
86f404123e
|
Minor code tweaks.
|
2015-09-11 12:07:27 +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
|
abf70378fe
|
Some more code fixes.
One was breaking unit tests.
|
2015-09-09 08:15:43 +02:00 |
|
Jürg Lehni
|
70f8f1912f
|
Some code clean-up.
|
2015-09-09 08:06:59 +02:00 |
|
Jürg Lehni
|
332b09c534
|
More curve interesection optimizations.
Only evaluate points if locations are actually added.
|
2015-09-09 07:46:48 +02:00 |
|
Jürg Lehni
|
dae8bb630b
|
Avoid checking curves if completely out of control bounds.
This leads to a huge speed increase! Relates to #765
|
2015-09-09 07:34:28 +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
|
3f53aa78ce
|
Do not access curve objects for geometry since they might be subdivided.
Partial fix for #765
|
2015-09-09 07:26:39 +02:00 |
|
Jürg Lehni
|
b96036fb03
|
Fix strange curve check.
Something went wrong in prior refactoring here. Also, no need to check curve beginnings and ends again, just handles.
|
2015-09-09 06:25:37 +02:00 |
|
Jürg Lehni
|
98d7703b5c
|
Finish implementing Curve#isStraight and #isLinear()
Closes #652
|
2015-09-06 18:02:15 +02:00 |
|
Jürg Lehni
|
31d9e1cd6e
|
Implement Curve#isLinear() to check for parametrical linearity.
Along with some unit tests for it.
|
2015-09-06 17:56:12 +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
|
9dab662a1f
|
Clean-up various Segment and Curve tests.
Moving functionality back to Path#toShape() since it was too specific, and missleading as part of the exposed Segment API.
|
2015-09-06 17:27:33 +02:00 |
|
Jürg Lehni
|
b52d343527
|
Use same notation for all injection scopes.
|
2015-09-06 16:48:23 +02:00 |
|
Jürg Lehni
|
cf813faa75
|
Remove all mention of points and square points as units.
And some other doc clean-ups.
|
2015-09-06 16:37:10 +02:00 |
|
Jürg Lehni
|
3d89cd71bd
|
Some clean-up work on documentation.
|
2015-09-06 15:54:11 +02:00 |
|
Jürg Lehni
|
66717868cd
|
Address failing #isLinear() tests.
|
2015-09-06 14:10:15 +02:00 |
|
Jürg Lehni
|
26e35322a4
|
Some reworking of code and comments.
|
2015-09-06 13:20:57 +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
|
3fa385ac7c
|
Fix typo in previous commit.
|
2015-09-05 09:56:37 +02:00 |
|
Jürg Lehni
|
af355dc82c
|
Fix false positives in Curve#isLinear() and Segment#isLinear().
|
2015-09-03 09:01:07 +02:00 |
|
Jürg Lehni
|
041c31a88a
|
Prevent variable leackage.
|
2015-09-02 15:54:14 +02:00 |
|
Jürg Lehni
|
b9a07ca538
|
Address code comments by @iconexperience in #762.
|
2015-08-31 22:01:18 +02:00 |
|
Jürg Lehni
|
20222be5c6
|
Minor clean-up in fat-line code.
|
2015-08-30 19:59:13 +02:00 |
|
Jürg Lehni
|
bd61390f9d
|
improve break-off condition in curve interesection code.
To prevent arbitrary incorrect solutions occuring when tDiff is very close to zero.
Closes #762.
|
2015-08-30 14:37:21 +02:00 |
|
Jürg Lehni
|
27aae8b261
|
Add support for values array and toString object format to Curve constructor.
|
2015-08-30 14:14:52 +02:00 |
|
Jürg Lehni
|
0cbce044aa
|
Define Curve#_serialize()
|
2015-08-28 16:18:28 +02:00 |
|
Jürg Lehni
|
d85b4f0c80
|
Fix issues with wrong sorting of CurveLocation in Curve.filterIntersections()
|
2015-08-26 16:56:28 +02:00 |
|
Jürg Lehni
|
815991d556
|
Some minor adjustments and fixes.
|
2015-08-26 11:43:39 +02:00 |
|
Jürg Lehni
|
2c4dcb96c2
|
Streamline addOverlap() code a bit.
|
2015-08-26 11:26:55 +02:00 |
|
Jürg Lehni
|
3946bcb04e
|
Remove unnecessary segments between two collinear curves in Path#reduce()
|
2015-08-24 12:49:33 +02:00 |
|
Jürg Lehni
|
75f669d839
|
Implement proper method to determine which segment to choose when encountering overlaps.
|
2015-08-24 04:36:49 +02:00 |
|
Jürg Lehni
|
85d21c84b8
|
Start implementing support for touching and overlapping shapes in boolean operations.
Relates to #449, #450, #648, #719
|
2015-08-23 21:19:19 +02:00 |
|
Jürg Lehni
|
9bd399b5b8
|
Introduce Curve#isStraight() and use it in splitPath() and divide() to keep the result of splitting straight curves straight.
Do not use Curve#isLinear(), as that would include curves with collinear handles, and we don't want to set these straight.
|
2015-08-22 22:06:42 +02:00 |
|
Jürg Lehni
|
bddff95fe3
|
Remove workarounds in splitPath() thanks to improved precision of Numerical.solveCubic().
|
2015-08-22 14:24:31 +02:00 |
|
Jürg Lehni
|
716d21e369
|
Always use fat-line clipping since fallback doesn't behave the same way.
|
2015-08-21 16:39:41 +02:00 |
|
Jürg Lehni
|
0436b2749a
|
Fix some comments.
|
2015-08-19 17:28:41 +02:00 |
|
Jürg Lehni
|
84b202fd79
|
Expose and reuse Curve evaluation method names.
|
2015-08-19 17:26:52 +02:00 |
|
Jürg Lehni
|
9fe93d1434
|
Move Curve evaluate() method to private scope.
|
2015-08-19 17:19:42 +02:00 |
|
Jürg Lehni
|
da82116501
|
Rework handling of weighted and normalized curve tangents and normals.
Relates to #563
|
2015-08-19 17:15:41 +02:00 |
|
Jürg Lehni
|
59eec1f27b
|
Implement Curve#isLinear(), #isCollinear() & co without depending on the segments being part of a path.
|
2015-08-19 11:43:37 +02:00 |
|
Jürg Lehni
|
e476672748
|
Use better epsilon values in Numerical.solveQuadratic() and solveCubic()
To finally satisfy both #541 and #708.
With this change in place, https://github.com/paperjs/boolean-test is also finally back to run with 0 errors. Woop!
|
2015-08-18 23:47:28 +02:00 |
|
Jürg Lehni
|
4ee68e5782
|
Various changes to #isCollinear(), #isOrthogonal(), #isArc()
- Rename #isArc() - > #isOrthogonalArc()
- Implement versions for Curve
- Write proper documentation
|
2015-08-17 14:33:48 +02:00 |
|