Commit graph

936 commits

Author SHA1 Message Date
Jürg Lehni
c533dda7b5 Finally found a better and faster alternative for this.base() calls, by setting base on the function object instead.
base can be accessed on named functions very easily, leading to another measurable speed increase. Finally all performance reasons against straps.js are eliminated!
2013-05-27 10:04:05 -07:00
Jürg Lehni
369b329b23 Change straps.js to directly use initialize() as constructor function rather than redirecting calls to it.
Should yield some interesting performance improvements.
2013-05-27 09:11:50 -07:00
Jürg Lehni
f9267e7f5c Some more code clean up and variable renaming. 2013-05-26 17:59:01 -07:00
Jürg Lehni
14962b5c45 Clean up code a bit more. 2013-05-26 17:52:05 -07:00
Jürg Lehni
32709a176b Fix some comments. 2013-05-26 17:48:36 -07:00
Jürg Lehni
7050edd6e4 Fix point sequence. 2013-05-26 17:40:40 -07:00
Jürg Lehni
90f0679700 Further simplify getConvexHull() by using p0 … p3 point objects. 2013-05-26 17:39:13 -07:00
Jürg Lehni
487c4c4aef Further simplify getConvexHull() by inlining cross product calculations. 2013-05-26 17:32:44 -07:00
Jürg Lehni
9edab9c3aa Simplify convex hull algorithm by returning lists of points rather than lines.
We can avoid some data redundancy that way at no performance cost.
2013-05-26 17:18:54 -07:00
Jürg Lehni
9540b7f6a9 Use addLineIntersection() in subdivision algorithm as well. 2013-05-26 17:10:29 -07:00
Jürg Lehni
20737c6664 Rename various intersection methods. 2013-05-26 17:06:23 -07:00
Jürg Lehni
5d7cc2fb40 Use new Line.getSignedDistance(). 2013-05-26 16:58:49 -07:00
Jürg Lehni
80f9f6061c Change the way the Line class handles direction vectors and infinite lines.
The beginning of performance improvements in the Line class.
2013-05-26 15:44:52 -07:00
Jürg Lehni
1fb0a3a13c Always provide t parameter for CurveLocations if we know it. 2013-05-25 11:23:59 -07:00
Jürg Lehni
502c76dbce Start merging fat-line clipping code into Curve class.
And add a prepro option for now.
2013-05-24 22:30:13 -07:00
Jürg Lehni
7f00ef8f05 Fix white-spaces. 2013-05-24 22:25:22 -07:00
Jürg Lehni
7e5f846190 Remove debugging code. 2013-05-24 17:57:13 -07:00
Jürg Lehni
bd3ac02bbe Use Curve instead of this.
Compresses better and allows passing on function as callback.
2013-05-24 17:52:05 -07:00
Jürg Lehni
7c2e57e105 Remove Item#applyMatrix boolean, go back to previous way of directly applying transformations to children in Group and Layer, and introduce new Clip class for non-transformed nested matrices. 2013-05-13 18:57:17 -07:00
Harikrishnan Gopalakrishnan
ce600f4ea4 Fix: #initialize() to correctly convert #getValue() array back to Curve object. 2013-05-11 00:59:30 +03:00
Jürg Lehni
7b8e27ddd9 Further simplify getNearestPoint() algorithm. 2013-05-07 00:07:18 -07:00
Jürg Lehni
d70c9b0464 Minor syntax fixes. 2013-05-05 23:19:22 -07:00
Jürg Lehni
3a7547a255 Bring back accidentally removed static functions on Curve. 2013-05-05 23:14:49 -07:00
Jürg Lehni
db42dfdfc1 Implement simpler strategy to iteratively find nearest points on paths.
Idea based on method described on http://pomax.github.io/bezierinfo/
2013-05-05 23:05:57 -07:00
Jürg Lehni
acb3d6f5f9 Update package.json for publishing to NPM. 2013-05-05 19:22:13 -07:00
Jürg Lehni
0fc4b9f28d Remove intersection caching code. 2013-05-05 16:38:18 -07:00
Jürg Lehni
83b68cdb8e Restore full validation check for resulting paths. 2013-05-05 16:36:25 -07:00
Jürg Lehni
c006b081f6 Fix issue that broke "Maximum possible intersections between 2 cubic bezier curve segments - 9" test. 2013-05-05 16:23:41 -07:00
Jürg Lehni
6da97b894f Improve code comments a bit. 2013-05-04 11:13:38 -07:00
Jürg Lehni
d911c7b12a Write documentation for boolean path operations. 2013-05-04 10:58:50 -07:00
Jürg Lehni
f704b00e00 Implement static Line.intersect() and use it to speed up Curve.getIntersections()
Unfortunately doesn't seem to have any impact!
2013-05-04 10:22:10 -07:00
Jürg Lehni
4eff5bf45e Use variable names that better reflec functionality and original naming. 2013-05-04 09:58:46 -07:00
Jürg Lehni
3ab20ea3e9 Some more minor tweaks. 2013-05-04 03:38:19 -07:00
Jürg Lehni
1e8947af63 Further clean up.
Instead of removing temporary data structure, clone Segment.
2013-05-04 03:33:44 -07:00
Jürg Lehni
31a45bad97 Improve comments. 2013-05-04 03:20:53 -07:00
Jürg Lehni
e1ef69f23a Fix accidental variable leakage. 2013-05-04 03:13:57 -07:00
Jürg Lehni
469d3129a6 One last optimization in computeBoolean(). 2013-05-04 03:08:43 -07:00
Jürg Lehni
7fdaa3e699 more optimizations in computeBoolean().
I think this is done now!
2013-05-04 03:00:31 -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
a5d00e64cf Merge loops in reorientPath(). 2013-05-03 23:25:26 -07:00
Jürg Lehni
37300455a8 Minor cleanup. 2013-05-03 23:08:00 -07:00
Jürg Lehni
4a9e3924c6 More computeBoolean() optimizations and clean up. 2013-05-03 23:03:00 -07:00
Jürg Lehni
1031f4ecfb Clean up computeBoolean().
Work in progress.
2013-05-03 22:38:29 -07:00
Jürg Lehni
d014ed3c68 Clean up reorientCompoundPath(). 2013-05-03 22:09:56 -07:00
Jürg Lehni
25e5582a35 Define CompoundPath#reverse() and #clockwise, and replace reversePath() with it. 2013-05-03 21:41:22 -07:00
Jürg Lehni
bd3031cdff Move fix for faulty _curves list after calls to Path#reverse() to the right place. 2013-05-03 21:33:17 -07:00
Jürg Lehni
f03283804b Improve testOnCurve() code. 2013-05-03 21:24:02 -07:00
Jürg Lehni
99cf8ae9d4 Move private functions into private injection scope. 2013-05-03 21:21:53 -07:00
Jürg Lehni
990e8b4599 Remove names from boolean operator functions and use parameter instead. 2013-05-03 21:16:36 -07:00
Jürg Lehni
fb8effe088 Rewrite PathItem#_splitPath() to use Curve#divide().
Leading to faster code, due to less loop passes.
2013-05-03 21:05:44 -07:00