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 |
|
Jürg Lehni
|
5a1d31bba7
|
Improve argument reading in PostScript drawing methods.
|
2011-03-06 11:23:21 +00:00 |
|
Jürg Lehni
|
56c10f9196
|
Fix Segment#getHandleIn/OutIfSet and a newly introduced drawing error in Path#draw.
|
2011-03-06 11:18:35 +00:00 |
|
Jürg Lehni
|
7bea7e36de
|
Make use of new Segment#getHandleIn/OutIfSet() where we can.
|
2011-03-06 11:04:41 +00:00 |
|
Jürg Lehni
|
b98abeb416
|
Declare outX, outY outside of draw loop, as it is used from previous iteration.
|
2011-03-06 11:00:25 +00:00 |
|
Jürg Lehni
|
72a1ba8e70
|
Activate beans for Segment and clean up bean / getter / setter mess for point / handleIn / handleOut.
|
2011-03-06 10:57:14 +00:00 |
|
Jürg Lehni
|
e892d4446a
|
More variable definition chaining.
|
2011-03-06 10:15:06 +00:00 |
|
Jürg Lehni
|
49e828ab9d
|
Use chained variable definitions wherever we can to save space.
|
2011-03-06 10:14:12 +00:00 |
|
Jürg Lehni
|
3a51acec88
|
Begin implementing Path#getStrokeBounds().
|
2011-03-06 10:09:37 +00:00 |
|
Jürg Lehni
|
352b3f0d40
|
More work on Bootstrap core, move Base.isArray back to Array.isArray.
|
2011-03-05 13:53:18 +00:00 |
|
Jürg Lehni
|
4908ba5edf
|
Expand shortened name.
|
2011-03-05 01:37:02 +00:00 |
|
Jürg Lehni
|
ce74516228
|
Remove more beans access, this time related to various PathStyle getters / setters.
|
2011-03-05 01:36:27 +00:00 |
|
Jürg Lehni
|
c313e702c9
|
Clean up a whole lot of beans access, and in the process of the refactoring improve canvas, context, size and bounds handling in Raster and PlacedSymbol.
|
2011-03-05 01:26:12 +00:00 |
|
Jürg Lehni
|
815e35fda6
|
Fix Segment#toString().
|
2011-03-04 23:55:49 +00:00 |
|
Jürg Lehni
|
8d5024523c
|
Add Path#first/lastSegment.
|
2011-03-04 23:33:37 +00:00 |
|
Jürg Lehni
|
7355c2d4a7
|
Switch to using Base.isArray.
|
2011-03-04 21:47:00 +00:00 |
|
Jürg Lehni
|
aa4892c0d8
|
Apply same optimisations from DOM methods in Item / Layer to Segment too.
|
2011-03-04 21:34:31 +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 |
|
Jonathan Puckey
|
3837ca1f14
|
Have Path#setSegments convert elements in the passed array to segments.
|
2011-03-04 13:02:11 +01:00 |
|
Jürg Lehni
|
2b6dede883
|
Clean up white-spaces and line lengths.
|
2011-03-03 22:45:17 +00:00 |
|
Jürg Lehni
|
cbe29fd02b
|
Rename Color#getCssString() to #toCssString(), to go with #toString().
|
2011-03-03 17:36:53 +00:00 |
|
Jürg Lehni
|
46a0589547
|
Use Error constructor correctly.
|
2011-03-03 17:29:40 +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
|
c84df5a346
|
Use Segment.read() correctly in Path#initialize().
|
2011-03-03 13:16:14 +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
|
ecbd52cdf7
|
Fix Path.Line() constructor with 4 arguments.
|
2011-03-03 13:10:29 +00:00 |
|
Jürg Lehni
|
e089e080c2
|
Make Path#_add() handle both addition and insertion, and use it consequently so segment.path always gets correctly set.
|
2011-03-03 13:10:17 +00:00 |
|
Jürg Lehni
|
9a2462d147
|
No need to explicitely call Point#toString() in Segment#toString().
|
2011-03-03 13:03:57 +00:00 |
|
Jürg Lehni
|
d4d6d652ec
|
Rename Path#addSegment() to #_add(), to make sure it's supposed to be a private method.
|
2011-03-03 12:51:47 +00:00 |
|
Jürg Lehni
|
53b091b871
|
Rename #transformContent() to #_transform(), to make sure it's supposed to be a private method.
|
2011-03-03 12:47:55 +00:00 |
|
Jürg Lehni
|
490ef78b53
|
Fix error in CompoundPath#closePath(): Forgot to pass 'this' to getCurrentPath().
|
2011-03-03 12:26:28 +00:00 |
|
Jürg Lehni
|
1d37c7b76f
|
Use 'that' variable for private instance method.
|
2011-03-03 12:25:41 +00:00 |
|
Jürg Lehni
|
26ebe2f2c0
|
Refacture CompoundPath to only use injection scope for methods that require getCurrentPath().
|
2011-03-03 12:23:46 +00:00 |
|
Jürg Lehni
|
07fcc000cf
|
Move the new refactored CanvasDraw functionality to static Item.draw() and #draw() instance methods on each prototype.
|
2011-03-03 12:19:43 +00:00 |
|
Jürg Lehni
|
54bb4d5527
|
Merge remote-tracking branch 'origin/master'
|
2011-03-03 10:55:39 +00:00 |
|
Jürg Lehni
|
964dc462e9
|
Add comments to Path#strokeBounds and scafolding for #controlBounds too.
|
2011-03-03 10:55:35 +00:00 |
|
Jonathan Puckey
|
8ff04b6614
|
Unify canvas drawing commands in CanvasDraw.js and rework compositing code.
|
2011-03-03 02:22:21 +01:00 |
|
Jürg Lehni
|
91ec37de9c
|
Add foundations for Path#strokeBounds support.
|
2011-03-02 17:27:20 +00:00 |
|
Jürg Lehni
|
620cb2c754
|
Various clean-ups in Path.
|
2011-03-02 17:23:45 +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 |
|
Jonathan Puckey
|
74f797a9dd
|
Clean up whitespace.
|
2011-02-28 18:30:08 +01:00 |
|
Jonathan Puckey
|
c6d606db0a
|
Path: After calling Path#add(segment), return the added segment. Add todo to Path#insert.
|
2011-02-27 15:50:41 +01:00 |
|
Jonathan Puckey
|
9496ac70bd
|
Clean up Path.RegularPolygon constructor.
|
2011-02-26 19:21:52 +01:00 |
|
Jonathan Puckey
|
eebe7e2731
|
Implement Path.RegularPolygon constructor and add tests for it.
|
2011-02-26 19:19:02 +01:00 |
|
Jürg Lehni
|
506e7c036c
|
Merge remote-tracking branch 'origin/master'
|
2011-02-26 17:27:12 +01:00 |
|
Jürg Lehni
|
6d25dbbd22
|
Add beginning of path length calculations, work in progress.
|
2011-02-26 17:26:54 +01:00 |
|
Jonathan Puckey
|
51f4ee718c
|
As in Scriptographer, we don't worry if there wasn't a moveTo before the first lineTo.
|
2011-02-26 12:44:09 +01:00 |
|
Jonathan Puckey
|
8828ed7e25
|
CompoundPath - check for this.blendMode != 'normal'.
|
2011-02-26 01:02:17 +01:00 |
|
Jonathan Puckey
|
c9d04d33f8
|
Implement BlendMode class.
|
2011-02-25 12:47:52 +01:00 |
|
Jonathan Puckey
|
4d83631230
|
Segment: remove todo.
|
2011-02-24 17:14:59 +01:00 |
|
Jonathan Puckey
|
f65625b591
|
Change CompoundPath#moveBy to be relative to the previous position in lack of an argument.
|
2011-02-24 17:13:41 +01:00 |
|
Jonathan Puckey
|
ad82be1bec
|
Add CompoundPath#bounds
|
2011-02-24 17:11:02 +01:00 |
|
Jürg Lehni
|
0d53167926
|
Simplify calculation of bezier polynomial derivative, by dividing all factors by 3.
|
2011-02-22 10:39:05 +01:00 |
|
Jürg Lehni
|
614f9998de
|
More optimisations in Path#getBounds().
|
2011-02-22 10:35:48 +01:00 |
|
Jürg Lehni
|
a08e3dc366
|
Optimise Path#getBounds() by merging internal f() and bounds() functions and thus reducing calls.
|
2011-02-22 10:33:46 +01:00 |
|
Jürg Lehni
|
452b1e2792
|
Add explanations to Path#getBounds().
|
2011-02-22 10:25:18 +01:00 |
|
Jonathan Puckey
|
b9d37e1b9b
|
Only draw a CompoundPath if it is visible.
|
2011-02-21 03:52:03 +01:00 |
|
Jonathan Puckey
|
357a8af6ec
|
Clean up white spaces.
|
2011-02-21 03:32:39 +01:00 |
|
Jonathan Puckey
|
5e271359b9
|
Add todo.
|
2011-02-21 01:16:53 +01:00 |
|
Jonathan Puckey
|
f83309d6b7
|
Optimize Path#draw.
|
2011-02-20 20:47:13 +01:00 |
|
Jürg Lehni
|
3374e50def
|
Yet another optimisation in Path#transformContent(): Only transform handles if they are not [0, 0].
|
2011-02-20 11:20:23 +01:00 |
|