Commit graph

202 commits

Author SHA1 Message Date
Jürg Lehni
79cb216684 Define CurveLocation#isOverlap() and improve documentation of various related methods. 2015-10-03 17:15:45 -04:00
Jürg Lehni
1231153553 Start cleaning up code from #773
- Use Line object isntead of static methods
- Do not rely on Math.sign() as it's not supported on all browsers
- Wrap lines at 80 char width.
2015-09-30 13:07:55 -05:00
Jan
ec70fa1806 Fix for #773
Indroduced more reliable method for finding self intersection on curves.
2015-09-30 12:19:09 +02:00
Jürg Lehni
cf5bf38c3b Minor simplification. 2015-09-23 13:33:35 -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
b68be09c87 Fix all accidental non-breaking spaces. 2015-09-20 22:39:28 +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
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
a0730756c1 Use correct term for curve parameter renormalization. 2015-09-12 22:13:18 +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
4770cfe2f8 Minor intersection refactoring clean up. 2015-09-10 05:18:56 +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
155442e706 Increase readability of convex-hull check in self-intersection code. 2015-09-09 08:12:03 +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
3d89cd71bd Some clean-up work on documentation. 2015-09-06 15:54:11 +02:00
Jürg Lehni
fd1f2e56f8 Optimize Item#intersects() by only checking to see if there are at least one intersection. 2015-08-25 11:45:28 +02:00
Jürg Lehni
b541088c6f A whole lot of documentation clean-up. 2015-06-16 17:50:37 +02:00
Jürg Lehni
7a6ee5d5f4 Do not implicitly close paths in SVG compound paths.
Closes #705
2015-06-16 14:49:54 +02:00
Jürg Lehni
993a9df178 Simplify fix for #626 a bit.
Closes #626.
2015-02-28 19:20:48 +01:00
TJ
d3af8483a8
Don't try to iterate a null array
Signed-off-by: TJ <hacker@iam.tj>
2015-01-26 21:21:46 +00:00
Jürg Lehni
efaae89dfc No need to add 0. 2015-01-05 21:47:15 +01:00
BrownBear2
4d36a2d6f4 fixed svg path parsing for arcs with more than one definition 2015-01-05 21:32:21 +01:00
Jürg Lehni
68c53534d6 Use the same precision in PathItem#getIntersections() when handling curve time parameters as in the rest of the library.
TOLERANCE instead of EPSILON.
2015-01-03 20:25:57 +01:00
Jürg Lehni
4ed9ef54f2 Fix bug in Curve.filterIntersections() and clean up code a bit. 2015-01-02 21:19:18 +01:00
Jürg Lehni
b2261fd512 Introduce Curve.filterIntersections() and use it both in PathItems#getIntersections() and Curve#getIntersections() 2015-01-02 21:00:05 +01:00
Jürg Lehni
782bde238c Find a more general implementation for Item#intersects(item). 2014-10-20 18:00:07 +02:00
Jürg Lehni
5ddbc5b07f Implement Item#intersects(item) 2014-10-20 17:00:18 +02:00
Jürg Lehni
b3c7be67fc Support optional hidden matrix argument in #getIntersections()
...in order to provide an alternative matrix for the passed path to check against.
2014-10-20 16:53:49 +02:00
Jürg Lehni
dd99db8d2d Allow 'false' as well as 'off' for hidpi attribute, since that's what's in use for other attributes as well. 2014-09-26 18:03:37 +02:00
Jürg Lehni
48cb05a181 Replace tabs with 4 white-spaces. 2014-08-16 19:24:54 +02:00
hkrish
ccbf4579fd Don't remove the only intersection.
The previous code wrongly compared an intersection with itself while checking for duplicates.
2014-06-21 10:31:07 +02:00
Jürg Lehni
9d7ec13724 Update prepro.js to version that can evaluate whole expressions, and fix a newly introduced issue with it. 2014-05-14 15:14:03 +02:00
Jonathan Puckey
04e90ec3f4 Improve PathItem#getIntersections(path, sorted) docs. 2014-04-28 18:58:19 +02:00
Jürg Lehni
19630d6229 Fix spelling mistakes. 2014-04-24 19:34:49 +02:00
Jürg Lehni
f002c633a7 Remove trailing white spaces and ensure newlines at the end. 2014-04-06 13:48:03 +02:00
Jürg Lehni
59da291d54 Remove tabs in examples in favor of 4 spaces.
To remove all these annoying JSHint complaints.
2014-04-02 21:03:35 +02:00
Jürg Lehni
fa9786b344 Switch to new simpler convention for control of beans creation in straps.js 2014-04-02 20:53:18 +02:00
Jürg Lehni
4108e9487b Add optional joining behavior to PathItem#closePath() again and use it in #setPathData(). 2014-03-31 19:33:38 +02:00
Jürg Lehni
7c447c8c5a Move segment merging logic from Path#closePath() to Path#join()
Closes #435
2014-03-31 18:14:58 +02:00
Jonathan Puckey
400bc69159 Remove unnecessary commas.
Found using jscritic.com.
2014-03-28 14:02:39 +01:00
Jürg Lehni
438de7013a Correctly handle groups as clipping masks.
Closes #370.
2014-03-17 14:51:47 +01:00
Jürg Lehni
2a08a88461 Avoid calling #moveTo() twice in SVG 'zm' path data sequence. 2014-03-16 22:44:46 +01:00
Jürg Lehni
c84c019990 Add TODO and DOC for new #arcTo(to, radius, rotation, clockwise, large) 2014-03-13 17:46:31 +01:00
Jürg Lehni
42558fa057 Changes to new #arcTo(): Rename sweep -> clockwise and change argument sequence, as clockwise is more often used than large. 2014-03-13 16:35:56 +01:00
Jürg Lehni
6c7c4d0798 Close previous paths if followed by a new M command. 2014-03-13 03:28:46 +01:00
Jürg Lehni
10c28a301e Fix compare statements. 2014-03-13 01:04:31 +01:00
Jürg Lehni
e80991658b Fix issue with relative commands after Z.
Closes #413.
2014-03-13 00:52:24 +01:00
Jürg Lehni
afcabea1a7 Fix issue with Z in the middle of SVG path data, not followed by a M command.
Closes #413.
2014-03-12 23:24:09 +01:00