Commit graph

155 commits

Author SHA1 Message Date
Jürg Lehni
c4c5b070b5 Minor code clean-up. 2011-03-07 16:51:12 +00:00
Jürg Lehni
59cb7e937e Add control over maximum iterations to Numerical.findRoot(). 2011-03-07 11:59:43 +00:00
Jürg Lehni
d9b8809f3c Further clean up getParameter() code. 2011-03-07 11:58:41 +00:00
Jürg Lehni
7956b50886 Use === for undefined comparisons. 2011-03-07 11:52:04 +00:00
Jürg Lehni
1e8dffac08 Clean up getParameter() code. 2011-03-07 11:51:01 +00:00
Jürg Lehni
0ddfc9ef33 Add support for sub ranges and negatives lengths in Curve#getParameter(), a prerequirement for adding dash support. 2011-03-07 11:37:42 +00:00
Jürg Lehni
2ac9a13e2a Give Numerical methods more meaningful names. 2011-03-07 11:12:00 +00:00
Jürg Lehni
08545983d7 Minor clean-ups. 2011-03-07 02:38:07 +00:00
Jürg Lehni
4dd4072f6b Use push() instead fo concat() for better getParameter() performance. 2011-03-07 02:35:06 +00:00
Jürg Lehni
3d7e66053c Simplify getLength() for line ranges. 2011-03-07 02:33:36 +00:00
Jürg Lehni
172212c222 Clean-up code and comments. 2011-03-07 02:28:49 +00:00
Jürg Lehni
add0bcf1fd Yet more optimisations in getParameter(), both for straight lines and curves. 2011-03-07 02:26:59 +00:00
Jürg Lehni
0e8c346888 Further optimise getParameter() / getLength() code by reusing a integrand function and taking advantage of integral ranges. 2011-03-07 02:22:33 +00:00
Jürg Lehni
3447d11a6f Some minor clean-ups. 2011-03-07 01:40:18 +00:00
Jürg Lehni
027a5e67b9 Add getLength() optimisation for straight lines. 2011-03-07 01:37:18 +00:00
Jürg Lehni
f7f5a70b1c Fix recently newly introduced bug in getStrokeBounds(). 2011-03-07 01:30:45 +00:00
Jürg Lehni
e1a7aff2f0 Add copyright notice and license file. 2011-03-07 00:50:44 +00:00
Jürg Lehni
0bfca81140 Clean-up getBounds() code and move to its own scope at the end of Path. 2011-03-07 00:36:44 +00:00
Jürg Lehni
9fdbd0146d Rename MathUtils to Numerical. 2011-03-07 00:21:04 +00:00
Jürg Lehni
58f5c8554e Add comments about initial guess. 2011-03-07 00:17:43 +00:00
Jürg Lehni
65900f8790 Implement Curve#getParameter() using MathUtils.brent(), with the astonishing result that performance can match the Java side on Chrome! 2011-03-07 00:00:45 +00:00
Jürg Lehni
29e57cc521 Replace slow simpson() method with insanely fast Gauss-Legendre Numerical Integration by Jim Armstrong which was further optimised. 2011-03-06 23:24:33 +00:00
Jürg Lehni
c4ad95b0ac More variable chaining... 2011-03-06 22:06:24 +00:00
Jürg Lehni
4c13ca6961 Fix syntax errors (that magically work on Safari). 2011-03-06 22:06:06 +00:00
Jürg Lehni
87981efeb5 Massive refactoring of transform() / getBounds() code: getBounds() / getStrokeBounds() now supports an optional Matrix parameter which is used to on the fly transform all coordinates and stroke definitions before bounds are calculated. This even supports the correct determination of rotated ellipse bounds for round strokes in symbols. 2011-03-06 21:26:38 +00:00
Jürg Lehni
6def2b9d3a Clean-up Path#arcTo() code. 2011-03-06 21:13:55 +00:00
Jürg Lehni
90b94a8d83 Various simplificiations and clean-ups in Path constructors. 2011-03-06 18:46:28 +00:00
Jürg Lehni
deb78b78cf Define fast Rectangle.create() and use it internally where applicable. 2011-03-06 18:45:56 +00:00
Jürg Lehni
4070f98374 Clean up calculateBounds(). 2011-03-06 18:33:52 +00:00
Jürg Lehni
836da3ce47 Make getCurrentSegment() a real private. 2011-03-06 15:21:12 +00:00
Jürg Lehni
dfb11610e7 Define getCurrentSegment() as private and make sure it's not used as a bean. 2011-03-06 15:17:06 +00:00
Jürg Lehni
e533b4edbb Move PostScript commands to the end of Path definition in its own injection block. 2011-03-06 15:15:13 +00:00
Jürg Lehni
f803e1ad1d Remove obsolete comment. 2011-03-06 15:14:57 +00:00
Jürg Lehni
501e42fb9d Add Path#getLength(). 2011-03-06 14:58:10 +00:00
Jürg Lehni
8b32aa9f09 Reactivate commented out code in addBevelJoin(), since it is required in some situations. 2011-03-06 14:51:46 +00:00
Jürg Lehni
2df6dc989a Add comments about changes that need backporting to Scriptographer. 2011-03-06 14:45:44 +00:00
Jürg Lehni
f6a8de8cc6 Finish work on miter caps for Path#getStrokeBounds. 2011-03-06 14:45:32 +00:00
Jürg Lehni
5507482d8f Add support for bevel joins to Path#getStrokeBounds, miter still pending. 2011-03-06 13:26:36 +00:00
Jürg Lehni
407b6d8d33 Add Curve#getPrevious / Next. 2011-03-06 13:26:09 +00:00
Jürg Lehni
de9a406dc0 Add support for all strokeCaps in getStrokeBounds, joins are still pending. 2011-03-06 13:11:25 +00:00
Jürg Lehni
15f124bd9c Link segments to their curves through Segment#getCurve(). 2011-03-06 13:11:04 +00:00
Jürg Lehni
eb09ec2442 Fix error in Curve evaluation. 2011-03-06 13:07:49 +00:00
Jürg Lehni
e19c3bf3c2 Define Curve#toString() and Curve#clone() 2011-03-06 12:56:47 +00:00
Jürg Lehni
f98de38451 Correct Segment#toString() 2011-03-06 12:56:30 +00:00
Jürg Lehni
d15bf94f8f Add curve evaluation methods, untested. 2011-03-06 12:52:13 +00:00
Jürg Lehni
00d58a3e61 Move Path#getCurveLength() to Curve#getLength() and update tests accordingly. 2011-03-06 12:29:17 +00:00
Jürg Lehni
3ca1e4a25e Always update segments when index is set, as segments list might have shifted in the meantime. 2011-03-06 12:25:08 +00:00
Jürg Lehni
909b2a22ba Begin implementing Path#curves list. 2011-03-06 12:24:15 +00:00
Jürg Lehni
474d79db17 Clean up Segment constructor and make sure internal point objects are never replaced, always updated instead. 2011-03-06 12:24:03 +00:00
Jürg Lehni
fd0d409d9e More work on Path#getStrokeBounds(), unfinished. 2011-03-06 11:42:33 +00:00