Jürg Lehni
|
8606f25542
|
Switch from using Function#apply() trick for passing curve values as function parameters to simply passing arrays and looking up the values on then.
|
2011-07-09 10:08:43 +02:00 |
|
Jürg Lehni
|
bb4e71da81
|
Clean up isFlatEnough() code.
|
2011-07-08 22:26:22 +02:00 |
|
Jürg Lehni
|
fe37ce6bcb
|
Clean up comments.
|
2011-07-07 23:02:26 +02:00 |
|
Jürg Lehni
|
ca50461fd1
|
Implement new Curve.isFlatEnough().
|
2011-07-07 23:00:16 +02:00 |
|
Jürg Lehni
|
5655981f6d
|
Clean up white spaces.
|
2011-07-07 16:09:02 +02:00 |
|
Jürg Lehni
|
e573fe5dcd
|
Do not pass prevSlope to Curve#getCrossings(), rely on #getPrevious() instead.
|
2011-07-07 16:08:10 +02:00 |
|
Jürg Lehni
|
4a53503130
|
Add support for optional matrix in Path#contains(), Path#getNearestLocation(), Curve#getValues(), Curve#getCrossings(), Curve#getNearestLocation()
|
2011-07-07 16:07:29 +02:00 |
|
Jürg Lehni
|
9d2148245a
|
Implement Curve#getParameter(point), untested.
|
2011-07-06 23:15:32 +02:00 |
|
Jürg Lehni
|
b13c7622c8
|
Rename Curve#getParameter(length) -> Curve#getParameterAt(offset)
|
2011-07-06 23:13:38 +02:00 |
|
Jürg Lehni
|
778a161ba0
|
Rename Curve.solve() -> Curve.solveCubic()
|
2011-07-06 23:10:16 +02:00 |
|
Jürg Lehni
|
fadf6e98b5
|
Pass on minDistance to CurveLocation.
|
2011-07-06 22:21:49 +02:00 |
|
Jürg Lehni
|
17bdaf6fe4
|
Use CurveLocation for Curve#getNearest*() methods.
|
2011-07-06 22:08:10 +02:00 |
|
Jürg Lehni
|
8b6d9746ce
|
Rename Curve#getCrossingsFor() -> #getCrossings()
|
2011-07-06 22:07:34 +02:00 |
|
Jürg Lehni
|
5c3a6f72b6
|
Fix comments.
|
2011-07-06 15:31:16 +02:00 |
|
Jürg Lehni
|
ccd4113ba3
|
Implement Nearest Point-on-Curve Problem.
|
2011-07-05 13:20:31 +02:00 |
|
Jürg Lehni
|
4630a1bd4a
|
Fix documentation.
|
2011-07-05 13:17:34 +02:00 |
|
Jürg Lehni
|
c1f46977fa
|
Rename Curve.isSufficientlyFlat() to shorter Curve.isFlatEnough()
|
2011-07-05 13:17:07 +02:00 |
|
Jürg Lehni
|
4110a56521
|
Improve comments.
|
2011-07-05 01:20:25 +02:00 |
|
Jürg Lehni
|
6cc7417201
|
Handle edge case in crossing number algorithm where the beam in right x-direction is touching a tip where the curves change y-direction but do not interesect with the shape, by checking for slope changes.
|
2011-07-05 01:15:45 +02:00 |
|
Jürg Lehni
|
4924d683e4
|
Simplify Curve.solve() and improve documentation.
|
2011-07-04 23:42:16 +02:00 |
|
Jürg Lehni
|
c5269ecbab
|
Implement Path#contains(point) efficiently using the crossing number algorithm and our cubic polynomial solver.
|
2011-07-04 23:32:15 +02:00 |
|
Jürg Lehni
|
dad118cc20
|
Fix comments.
|
2011-07-04 23:30:25 +02:00 |
|
Jürg Lehni
|
79c0ad8cc5
|
Update copyright notices.
|
2011-07-01 12:17:45 +02:00 |
|
Richard D. Worth
|
ac39873693
|
Whitespace. Removed all trailing whitespace from .js files
|
2011-06-30 06:01:51 -04:00 |
|
Jürg Lehni
|
50c7649421
|
Improve Segment and Curve documentation.
|
2011-06-27 15:07:08 +02:00 |
|
Jürg Lehni
|
e35b171bec
|
Improve Curve documentation.
|
2011-06-27 14:58:17 +02:00 |
|
Jürg Lehni
|
7cd749e63d
|
Change all documentation to new convention of defining @class outside injection scope, fix some comments and a few errors with examples.
|
2011-06-22 23:56:05 +01:00 |
|
Jürg Lehni
|
3226147e00
|
Use a version of Bootstrap that always produces beans and remove all beans: true instructions.
|
2011-06-17 18:42:29 +01:00 |
|
Jürg Lehni
|
ffa79f4fd1
|
Clean up white spaces in comments.
|
2011-06-14 22:59:45 +01:00 |
|
Jürg Lehni
|
b3d771a870
|
Remove Curve#transform() which is currently broken anyhow.
|
2011-06-05 13:27:39 +01:00 |
|
Jürg Lehni
|
c296eb0883
|
Fix wrong direction of tangent evaluation at t = 1.
|
2011-06-05 13:09:53 +01:00 |
|
Jürg Lehni
|
c2c5955717
|
Rename Curve#getCurvesValues() -> #getValues().
|
2011-06-05 12:40:07 +01:00 |
|
Jürg Lehni
|
cb3834f41c
|
Expose the previously private evalutate() function through Curve.evaluate(), make it work with curve value arrays, and use it the for various evaluation methods (#getPoint/Tangent/Normal).
|
2011-06-05 12:37:43 +01:00 |
|
Jürg Lehni
|
14816a872e
|
Define Curve constructor for 8 parameters and implement Curve#getPart() that returns a new sub curve.
|
2011-06-05 12:36:26 +01:00 |
|
Jürg Lehni
|
ef10c2797c
|
Add Curve#getPart but hide for now as more work is required.
|
2011-06-05 11:34:24 +01:00 |
|
Jürg Lehni
|
b5a0979f58
|
Access internal Curve coordinate properties directly rather than through beans.
|
2011-06-05 11:33:55 +01:00 |
|
Jürg Lehni
|
fafb6d1d76
|
Convert CurveFlattener to PathFlattener, which can handle drawing of parts accross curve boundaries.
|
2011-06-04 18:25:41 +01:00 |
|
Jürg Lehni
|
45a04891ee
|
Clean up.
|
2011-06-04 15:16:30 +01:00 |
|
Jürg Lehni
|
bff3e14155
|
Implement a first crude version of Curve.isSufficientlyFlat()
|
2011-06-04 12:40:36 +01:00 |
|
Jürg Lehni
|
5581eefd0c
|
Define default value of t = 0.5 in Curve.subdivide().
|
2011-06-04 12:40:07 +01:00 |
|
Jonathan Puckey
|
2b8f1b71ec
|
Documentation: use inline code tags for boolean and number values,
|
2011-05-31 14:28:42 +02:00 |
|
Jonathan Puckey
|
17fcb923ff
|
Documentation: rearrange @example tags, improve examples, rename boolean -> Boolean and misc smaller edits.
|
2011-05-30 19:42:17 +02:00 |
|
Jürg Lehni
|
9d00541987
|
Clean up PORT comments.
|
2011-05-29 19:20:10 +01:00 |
|
Jonathan Puckey
|
1520cad144
|
Documentation: capitalize basic types in @ tags.
|
2011-05-27 21:21:49 +02:00 |
|
Jonathan Puckey
|
8e84c79aa6
|
Documentation: capitalize 'string' and 'number' types.
|
2011-05-27 20:15:15 +02:00 |
|
Jonathan Puckey
|
4015b022ad
|
Docs: use @true tag in boolean return descriptions and add Key.isDown param options.
|
2011-05-27 18:43:27 +02:00 |
|
Jürg Lehni
|
c67209f889
|
Optimize Curve#initialize for minifying.
|
2011-05-26 11:09:02 +01:00 |
|
Jonathan Puckey
|
0e63f11b72
|
Add Curve documentation.
|
2011-05-23 17:24:57 +02:00 |
|
Jürg Lehni
|
252a3635dc
|
Replace {@true} tags in documentation ({@true ([^}]*)} -> true $1, false otherwise.)
|
2011-05-15 15:06:10 +01:00 |
|
Jürg Lehni
|
4e6e855461
|
Change '// TODO: Port' comments to '// PORT:'.
|
2011-05-07 14:18:27 +01:00 |
|
Jürg Lehni
|
c36db3a55c
|
Introduce private faster Matrix#_transform* methods that lack arguments checks, and use them internally.
|
2011-05-06 13:28:35 +01:00 |
|
Jürg Lehni
|
a0e211c691
|
Big refactoring of how curves are kept in sync with segments (direct references rather than indices), along with various tests.
|
2011-05-03 00:25:23 +01:00 |
|
Jonathan Puckey
|
2ee7081c14
|
Merge remote branch 'origin/master'
|
2011-05-02 12:25:32 +02:00 |
|
Jonathan Puckey
|
41120cf4d9
|
Various small code cleanups.
|
2011-05-02 12:23:42 +02:00 |
|
Jürg Lehni
|
26b70309a8
|
Improve various #toString() functions.
|
2011-05-02 08:57:55 +01:00 |
|
Jürg Lehni
|
0a4150a5c9
|
Add beginning of value caching (_length, _bounds) and change tracking to invalidate cached values.
|
2011-05-02 00:17:21 +01:00 |
|
Jürg Lehni
|
b0282b9bd4
|
Change Segment to be aware of its index in the segment list and have the curves list update automatically on each change to segments.
|
2011-05-01 13:27:53 +01:00 |
|
Jürg Lehni
|
6cca355e20
|
Add Curve.create() as faster internal constructor.
|
2011-04-30 23:29:10 +01:00 |
|
Jürg Lehni
|
781b315808
|
Add getter/setter for Path#closed.
|
2011-04-30 23:22:29 +01:00 |
|
Jürg Lehni
|
ae3ec6f2d7
|
Remove comment about pending port that has been backported to Scriptographer.
|
2011-04-27 12:36:04 +01:00 |
|
Jürg Lehni
|
a251a24347
|
Add some TODOs to check.
|
2011-04-27 12:21:47 +01:00 |
|
Jürg Lehni
|
6204eef643
|
Remove comment about pending port that has been backported to Scriptographer.
|
2011-04-27 12:08:13 +01:00 |
|
Jürg Lehni
|
41eb09f15f
|
Add forgotten brackets in Curve#isSelected() and remove comments about backporting as it is ported now.
|
2011-04-27 10:52:56 +01:00 |
|
Jürg Lehni
|
77ad25ffba
|
Clean up port comments.
|
2011-04-26 17:47:30 +01:00 |
|
Jürg Lehni
|
a20f988511
|
Minor code cleanup.
|
2011-04-26 12:55:20 +01:00 |
|
Jürg Lehni
|
e8a2a786e0
|
Fix Curve#getParameter() for straight lines.
|
2011-04-26 12:30:58 +01:00 |
|
Jürg Lehni
|
6609dc2307
|
Implement new root finding algorithm, combining Newton-Raphson Method with Bisection, and update Curve#getParameter() to use it.
|
2011-04-26 12:23:09 +01:00 |
|
Jonathan Puckey
|
abb0878a25
|
Curve: Implement selection of curves.
|
2011-04-21 19:54:32 +02:00 |
|
Jürg Lehni
|
08d0499251
|
Change comment.
|
2011-03-25 19:58:20 +02:00 |
|
Jürg Lehni
|
417d015eab
|
Improve curve time parametrization precision by iteratively adding up sub-range lengths, and optimise speed by determining integration precision based on range size.
|
2011-03-20 11:38:06 +00:00 |
|
Jürg Lehni
|
11e70c5069
|
Use fast Newton-Raphson Method for now.
|
2011-03-20 02:02:02 +00:00 |
|
Jürg Lehni
|
02328287cb
|
Use n=16 evaluations in integrations for now.
|
2011-03-20 02:00:15 +00:00 |
|
Jürg Lehni
|
ad71293983
|
Remove Van Wijngaarden–Dekker–Brent method again as it led to imprecise results, and experiment with the very fast Newton-Raphson method (keeping False Position as a possible fallback for now).
|
2011-03-20 00:04:33 +00:00 |
|
Jürg Lehni
|
9d4af0ce9e
|
Clean up recently caused Base.read() mess by introducing _readNull property,m setting it to true on Color and reverting to previous behavior for Point, Size and Rectangle, where dimensions of 0 are read by default if nothing is provided.
|
2011-03-13 18:31:00 +01:00 |
|
Jürg Lehni
|
526e2ea0ba
|
Hide Curve#getLength() parameters from Bootstrap so it injects bean too.
|
2011-03-08 17:31:36 +00:00 |
|
Jürg Lehni
|
6a67052090
|
Update copyright / licensing comments.
|
2011-03-08 01:41:50 +00:00 |
|
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
|
e1a7aff2f0
|
Add copyright notice and license file.
|
2011-03-07 00:50: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
|
2df6dc989a
|
Add comments about changes that need backporting to Scriptographer.
|
2011-03-06 14:45:44 +00:00 |
|
Jürg Lehni
|
407b6d8d33
|
Add Curve#getPrevious / Next.
|
2011-03-06 13:26:09 +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
|
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
|
92bf51a7cc
|
Simplify the way the paper namespace is created and populated.
|
2011-03-04 13:34:31 +00:00 |
|
Jürg Lehni
|
c6d79f964c
|
Generalise all read() functions in Base.read(), fix an issue in by making sure arguments passed to initialie are never larger than length, and have Color's initialize create an RGBColor, to still be able to use Color.read().
|
2011-03-04 13:19:07 +00:00 |
|
Jürg Lehni
|
941c3c7346
|
Declare all classes as local variables, so they can be scoped.
|
2011-03-03 13:33:41 +00:00 |
|
Jürg Lehni
|
3a46ac3b54
|
Allow read() methods to receive an optional length parameter.
|
2011-03-03 13:15:55 +00:00 |
|
Jürg Lehni
|
dbbefa9526
|
index on master: fd4b7b7 Include DocumentView.js in all examples and tests.
|
2011-03-02 16:22:26 +00:00 |
|