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
17356637ac
Clean up new CurveLocation code.
2015-09-17 10:18:45 +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
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
Jürg Lehni
2026e5571e
Some code cleanup and comments in isCrossing().
2015-09-16 02:54:25 +02:00
Jürg Lehni
8f9549dd12
Fix non-breaking spaces.
2015-09-16 02:29:17 +02:00
Jürg Lehni
60a725b527
Implement correct CurveLocation#isCrossing() check.
...
And improve curve caching. Still needs work.
2015-09-15 19:38:28 +02:00
Jürg Lehni
7aef20ae6b
Compare intersection points instead of curve time when deciding to merge.
...
Use same precision indepenent of curve length.
2015-09-14 15:18:44 +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
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
8f13fa54fc
Remove debugger statement.
2015-08-30 13:52:13 +02:00
Jürg Lehni
0e26b53053
Improve CurveLocation.sort() to handle more edge cases.
...
Relates to #648
2015-08-28 16:17:54 +02:00
Jürg Lehni
86fd33c7d5
User correct tolerance in CurveLocation sorting.
2015-08-26 17:06:02 +02:00
Jürg Lehni
a099377ac6
Remove debug logging for CurveLocation.
2015-08-26 16:58:52 +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
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
84b202fd79
Expose and reuse Curve evaluation method names.
2015-08-19 17:26:52 +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
19bcd19b49
Implement path versioning for segment changes.
...
And use it to keep CurveLocation objects up to date. Closes #682
2015-06-16 19:36:22 +02:00
Jürg Lehni
dbac9c06de
Bring back private UIDs for Color.
...
SVG Export for multiple gradients was broken.
2015-06-16 18:12:40 +02:00
Jürg Lehni
27bb8a356f
Implement unique ids, and fix issue with Base.deserialize()
...
Gradient and Symbol were overriding each other in the dictionary, and dictionary entries could not contain references to other dictionary entries.
Closes #690
2015-05-11 19:39:39 +02:00
Jürg Lehni
8ad067ec6c
Use tolerance when comparing curve locations by parameter.
2015-01-02 21:20:28 +01:00
Jürg Lehni
cc8b23894c
Some clean up related to hidden _uncached parameter.
2014-09-27 22:03:54 +02:00
Jürg Lehni
b8530935a7
Streamline CurveLocation#getTangent/Normal/Curvature getter definitions to align with definitions in Curve, Path and PathIterator.
2014-09-27 22:03:20 +02:00
Jürg Lehni
7d69ef1864
Fix documentation of bean properties that are not read-only.
...
@bean can only be used when the property is read-only or both getters and setters are present in the scope.
2014-08-26 10:01:30 +02:00
Jürg Lehni
48cb05a181
Replace tabs with 4 white-spaces.
2014-08-16 19:24:54 +02:00
Jürg Lehni
4d4a39c752
Implement Curve#getOffsetOf(point) / Path#getOffsetOf(point)
...
Closes #463 .
2014-07-31 19:01:37 +02:00
Jürg Lehni
652dbe1e86
Use loop to produce CurveLocation getters, and add CurveLocation#curvature.
2014-07-25 20:05:44 +02:00
Jürg Lehni
d12607dd44
Use a Base object for PaperScope#settings and update straps.js to version that offers Base#set().
2014-04-11 13:32:06 +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
17fb1fb862
Some Straps.js related code changes.
2014-03-31 19:27:04 +02:00
Jürg Lehni
a81063a994
Replace all unsupported Curve#getLength(from, to) calls with #getPartLength(from, to)
2014-03-30 14:17:02 +02:00
Jürg Lehni
f1765d1cbf
Implement CurveLocation#equals()
2014-02-20 15:37:49 +01:00
Jürg Lehni
6cb25fafe3
Use changes in latest Straps.js to remove as many hidden parameters as possible.
...
Hidden parameters through arguments[] are bad news for JS optimizer engines.
2014-01-05 17:40:54 +01:00
Jürg Lehni
e22fa3a664
Update copyright notice.
2014-01-04 01:47:16 +01:00
Jürg Lehni
19c7788617
Fix documentation irregularities.
2013-08-23 19:45:28 -07:00
Jürg Lehni
ef4eee1064
Pass true for isParameter in Curve#divide() calls.
...
Closes #252 .
2013-07-04 19:39:55 -07:00
Jürg Lehni
a4535edbb9
Bring back _class names, since code minification breaks reliance on constructor.name.
...
Closes #248 .
2013-06-23 20:18:32 -07:00
Jürg Lehni
01e48b3322
Improve and clean up fat-line bug fix.
2013-06-13 15:53:28 -07:00
Jürg Lehni
7faf2a9e70
Clean-up @hkrish's changes a bit.
2013-06-09 18:37:08 -07:00
hkrish
d3405115c1
Use parameter on both curves in CurveLocation objects instead of Point in #getIntersection()
2013-06-08 21:37:43 +05:30
Jürg Lehni
10d5de3ed6
Implement a better way to name and export class constructors.
...
This change also simplified the way classes are exported to PaperScope objects.
2013-05-27 12:48:58 -07:00
Jürg Lehni
9aafb46e6c
Remove need for __segment property and further simplify computeBoolean() code.
2013-05-04 02:50:18 -07:00
Jürg Lehni
883e3ad563
Define CurveLocation#intersection as a way to retrieve the CurveLocation on the intersecting path when using Path#getIntersections().
2013-04-30 18:41:26 -07:00