Jürg Lehni
|
f15a541468
|
Improve documentation.
|
2011-07-07 16:10:27 +02:00 |
|
Jürg Lehni
|
64ae48af0b
|
Remove solved TODO.
|
2011-07-07 16:10:06 +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
|
56d62108cf
|
Rename PathFlattener#getParameter(offset) -> #getParameterAt(offset)
|
2011-07-06 23:14:18 +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
|
d6b666024b
|
Define #getNearestLocation() / #getNearestPoint() for Path.
|
2011-07-06 22:25:20 +02:00 |
|
Jürg Lehni
|
fadf6e98b5
|
Pass on minDistance to CurveLocation.
|
2011-07-06 22:21:49 +02:00 |
|
Jürg Lehni
|
c35133fae9
|
Add CurveLocation#distance, for Curve#getNearestLocation().
|
2011-07-06 22:19:01 +02:00 |
|
Jürg Lehni
|
0c0807e3e9
|
Streamline handling of undefined properties in CurveLocation.
|
2011-07-06 22:18:40 +02:00 |
|
Jürg Lehni
|
30e92c8a35
|
Simplify CurveLocation#getPoint(), as missing parameter cannot be determined if point is also undefined.
|
2011-07-06 22:14:44 +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
|
45a3e7f873
|
Big refactoring of the way bounds are handled and cached, properly supporting Groups inside Symbols, and also adding #roughBounds, to be used by upcoming hit testing code.
|
2011-07-04 19:45:53 +02:00 |
|
Jürg Lehni
|
e88043a1f4
|
Implement Path#roughBounds, based on an improved Path#getHandleBounds() that supports additional hidden join and stroke padding parameters.
|
2011-07-02 18:27:43 +02:00 |
|
Jürg Lehni
|
3eecb924c8
|
Fix bug in Segment#_transformCoordinates, where handles were not set when they were zero, change was false and no matrix was provided.
|
2011-07-02 06:24:27 +02:00 |
|
Jürg Lehni
|
0644d9d8b5
|
Move TODOs up to where they make sense.
|
2011-07-01 17:40:29 +02:00 |
|
Jürg Lehni
|
51d6ff945e
|
Improve Path#getHandleBounds() and fix bean access for #handleOut.
|
2011-07-01 17:39:39 +02:00 |
|
Jürg Lehni
|
aa9be1d9c5
|
Rename #controlBounds -> #handleBounds, to reflect terminology used elsewhere.
|
2011-07-01 17:23:10 +02:00 |
|
Jürg Lehni
|
9fa51a0457
|
Implement Item#controlBounds and Path#controlBounds, and test it in StrokeBounds example. This is a first step towards fast hit-testing.
|
2011-07-01 12:51:18 +02:00 |
|
Jürg Lehni
|
84bce71b1c
|
Remove unnecessary Segment#getHandleIn/OutIfSet.
|
2011-07-01 12:30:10 +02:00 |
|
Jürg Lehni
|
79c0ad8cc5
|
Update copyright notices.
|
2011-07-01 12:17:45 +02:00 |
|
Jürg Lehni
|
7211e68245
|
Add documentation to PathItem class.
|
2011-07-01 11:22:33 +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
|
0eb033e6bf
|
Only try to simplfy path if there are more than two segments in it.
|
2011-06-27 22:35:02 +02: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
|
cd2fce9bc7
|
Clean up documentation.
|
2011-06-27 12:31:39 +02:00 |
|
Jürg Lehni
|
4a344c8fad
|
Clean up forgotten @lends statements.
|
2011-06-22 23:58:50 +01: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
|
2f2b3ed7e0
|
Fix selection behavior when segment lists are cleared, in which case we expect the path to remain selected.
|
2011-06-20 19:08:34 +01:00 |
|
Jonathan Puckey
|
a2a8939d5d
|
Path# rename #pointsToCurves to #simplify and #curvesToPoints to #flatten.
|
2011-06-20 19:17:07 +02:00 |
|
Jürg Lehni
|
37f5a64dce
|
Improve _bounds handling by introducing Item#_createBounds() that always uses LinkedRectangle class.
|
2011-06-20 17:34:43 +01:00 |
|
Jürg Lehni
|
995c5b4081
|
Fix error in miter calculation in Path#getStrokeBounds(), recently introduced by a fix in Curve#getNormal().
|
2011-06-20 15:56:08 +01:00 |
|
Jürg Lehni
|
c1fcd6f3bb
|
Documentation: Convert more Array return types to Type[].
|
2011-06-20 14:27:54 +01:00 |
|
Jonathan Puckey
|
e23282fe05
|
Documentation: convert Array return types to Type[].
|
2011-06-20 15:19:08 +02:00 |
|
Jürg Lehni
|
7a90f9260e
|
Have subclasses of Item call the base version of _changed().
|
2011-06-19 22:40:49 +01:00 |
|
Jürg Lehni
|
0df909dd71
|
Rename ChangeFlags -> ChangeFlag.
|
2011-06-19 22:21:14 +01:00 |
|
Jürg Lehni
|
f0bc3f115b
|
Have all visual changes include ChangeFlags.APPEARANCE.
|
2011-06-19 22:20:28 +01:00 |
|
Jürg Lehni
|
2594a41b7d
|
Remove the mention of optional parameters in documentation, as they are marked optional already.
|
2011-06-19 21:52:52 +01:00 |
|
Jürg Lehni
|
bbcec27031
|
Move support for _bounds caching to Item and start using it in PlacedSymbol.
|
2011-06-19 18:07:53 +01:00 |
|
Jürg Lehni
|
fe416e294d
|
Fix issue with a path not being selected when one of its segment is selected directly.
|
2011-06-17 19:00:41 +01:00 |
|
Jürg Lehni
|
ca16e43c1f
|
Implement getters / setters for #locked, #visible, #blendMode and #opacity, and call _changed() from setters.
|
2011-06-17 18:53:34 +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
|
5bc4f69856
|
Improve documentation for Path#removeSegments().
|
2011-06-17 17:54:37 +01:00 |
|
Jürg Lehni
|
7dcdb5ca2f
|
Improve documentation for Path#removeSegments().
|
2011-06-17 17:46:42 +01:00 |
|
Jürg Lehni
|
6f4a9d5c7b
|
Merge branch 'master' of github.com:scriptographer/paper.js
Conflicts:
test/tests/Item.js
|
2011-06-17 16:36:58 +01:00 |
|
Jonathan Puckey
|
ea9c9353e3
|
Merge branch 'master' of https://github.com/scriptographer/paper.js
|
2011-06-17 16:59:42 +02:00 |
|
Jonathan Puckey
|
6fc08c6417
|
Item: implement #addChild(item), #insertChild(index, item), #insertAbove(item) and #insertBelow(item) Deprecate: #moveAbove, #moveBelow, #appendTop, #appendBottom.
|
2011-06-17 16:58:41 +02:00 |
|
Jürg Lehni
|
503a031bdf
|
Allow CompoundPath to have named children.
|
2011-06-17 14:11:37 +01:00 |
|
Jürg Lehni
|
f4d15200ee
|
Remove Group#_clipped and solely use Item#_clipMask to handle clipping internally.
|
2011-06-17 13:56:02 +01:00 |
|
Jürg Lehni
|
1615b50b68
|
Fix thrown Error messages.
|
2011-06-17 11:26:35 +01:00 |
|
Jürg Lehni
|
6e16ab81f4
|
Fix a bug in Path#arcTo() where sometimes the arc was drawn on the wrong side when the extent was 180 degrees, thus the center point was lying on the line (from, to).
|
2011-06-16 23:50:14 +01:00 |
|
Jürg Lehni
|
169b58e550
|
Fix argument reading for PathItem#arcTo(to, clockwise).
|
2011-06-16 23:48:46 +01:00 |
|
Jürg Lehni
|
8d49d2377b
|
Fix documentation for PathItem#smooth().
|
2011-06-16 23:37:45 +01:00 |
|
Jürg Lehni
|
c2d425c916
|
Improve Error message thrown when no arc can be drawn.
|
2011-06-16 22:50:59 +01:00 |
|
Jürg Lehni
|
6e7d23faa4
|
Improve #arcTo() documentation.
|
2011-06-16 22:38:58 +01:00 |
|
Jürg Lehni
|
2c83eeb7de
|
Improve handling of Path#arcTo() when the arguments demand an infinitely big circle, by either drawing a line or bailing out.
|
2011-06-16 22:38:43 +01:00 |
|
Jürg Lehni
|
aa825302e4
|
Clean up documentation for PathItem, Path & CompoundPath, by moving shared documentation to PathItem, for methods that are supposed to be abstract in PathItem and shared between the two classes.
|
2011-06-16 22:07:00 +01:00 |
|
Jürg Lehni
|
cb463b74f5
|
Fix @extends tags in documentation: Only the immediately following class is required.
|
2011-06-16 21:43:31 +01:00 |
|
Jürg Lehni
|
9deabbee8d
|
Start adding documentation to PathItem.
|
2011-06-14 23:04:32 +01:00 |
|
Jürg Lehni
|
401c4d5dc4
|
Rearrange @constructor documentation sequence.
|
2011-06-14 23:01:35 +01:00 |
|
Jürg Lehni
|
ffa79f4fd1
|
Clean up white spaces in comments.
|
2011-06-14 22:59:45 +01:00 |
|
Jürg Lehni
|
a7d22b2165
|
Add comment about porting back Path#arcTo().
|
2011-06-14 21:32:14 +01:00 |
|
Jürg Lehni
|
8213dce4a9
|
Have newly added segments selected if path was fully selected before.
|
2011-06-14 15:40:03 +01:00 |
|
Jürg Lehni
|
a32b687bfd
|
Bigger refactoring of handling of segment selection: Have Path#_selectedSegmentState be the summed up value of all Segment's states, and compare it to segments.length * SelectionState.POINT in #fullySelected.
|
2011-06-14 15:37:25 +01:00 |
|
Jürg Lehni
|
ad78474ae4
|
Remove obsolete TODO.
|
2011-06-14 12:46:15 +01:00 |
|
Jürg Lehni
|
50bc64779f
|
Handle special case of infinitely big circle in Path#arcTo(), by cheating using an approximation of a really big circle.
|
2011-06-14 12:45:37 +01:00 |
|
Jürg Lehni
|
2be18b8013
|
Completely rewrite Path#arcTo() using Point class and vector geometry methods.
|
2011-06-14 12:19:14 +01:00 |
|
Jürg Lehni
|
8d0bb3d2ae
|
Path#arcTo(): Fix wrong constant names.
|
2011-06-14 09:32:53 +01:00 |
|
Jürg Lehni
|
b4a210e113
|
Path#arcTo(): Fix the case where through point lies on a line between from and to point.
|
2011-06-14 09:12:18 +01:00 |
|
Jürg Lehni
|
f0c22bc1dc
|
Shorten pre-calculations in Path#arcTo().
|
2011-06-14 09:00:55 +01:00 |
|
Jürg Lehni
|
f6b2672f08
|
Simplify Path#arcTo() arguments check.
|
2011-06-14 09:00:25 +01:00 |
|
Jürg Lehni
|
a3d1875971
|
More clean ups.
|
2011-06-13 19:09:10 +01:00 |
|
Jürg Lehni
|
de739b42a8
|
Clean up white spaces.
|
2011-06-13 19:05:17 +01:00 |
|
Jürg Lehni
|
064f17eaec
|
Fix default value for end in Path#removeSegments(), so the last segment gets removed too.
|
2011-06-13 19:00:39 +01:00 |
|
Jürg Lehni
|
4a23e35eee
|
Merge remote-tracking branch 'origin/master'
|
2011-06-12 18:42:24 +01:00 |
|
Jürg Lehni
|
c341ec220a
|
Fix white space.
|
2011-06-12 18:40:30 +01:00 |
|
Jürg Lehni
|
065777291e
|
Fix filtering of duplace points in path fitting code.
|
2011-06-12 18:40:24 +01:00 |
|
Jonathan Puckey
|
20fc389020
|
Documentation: add see tag to Path#closePath().
|
2011-06-10 13:33:14 +02:00 |
|
Jonathan Puckey
|
87c1b564d2
|
Document Path#lineBy(vector).
|
2011-06-10 13:32:37 +02:00 |
|
Jonathan Puckey
|
ac703f1baa
|
Path: add example of pointToCurves().
|
2011-06-10 00:07:25 +02:00 |
|
Jürg Lehni
|
928b7df01e
|
Fix typo introduced in previous refactoring.
|
2011-06-06 17:18:22 +01:00 |
|
Jürg Lehni
|
046f9cef6e
|
Add comments.
|
2011-06-05 23:14:36 +01:00 |
|
Jürg Lehni
|
2fe21586df
|
Further simplifications of path fitter code.
|
2011-06-05 23:14:28 +01:00 |
|
Jürg Lehni
|
3a4af3f854
|
Rename variables forgotten in previous refactoring.
|
2011-06-05 23:13:45 +01:00 |
|
Jürg Lehni
|
b035077d31
|
Simplify code.
|
2011-06-05 23:00:33 +01:00 |
|
Jürg Lehni
|
9e25047b91
|
Further clean ups.
|
2011-06-05 22:09:19 +01:00 |
|
Jürg Lehni
|
68eb14c00d
|
Clean up code.
|
2011-06-05 22:06:24 +01:00 |
|
Jürg Lehni
|
10e1417dc2
|
Check for denominator == 0 with tolerance.
|
2011-06-05 21:59:42 +01:00 |
|
Jürg Lehni
|
0366752a6f
|
Merge remote-tracking branch 'origin/master'
|
2011-06-05 21:56:17 +01:00 |
|
Jürg Lehni
|
73a188742e
|
Fix bug in singularity check.
|
2011-06-05 21:56:04 +01:00 |
|
Jürg Lehni
|
ee7147d58e
|
Rename forgotten variables in previous refactoring.
|
2011-06-05 21:51:01 +01:00 |
|
Jonathan Puckey
|
b385b859f9
|
Merge remote branch 'origin/master'
|
2011-06-05 22:46:22 +02:00 |
|
Jürg Lehni
|
6ea63fde43
|
Handle case of nearly singular matrix separately.
|
2011-06-05 21:45:29 +01:00 |
|
Jürg Lehni
|
27c7248a2d
|
Clean up and shorten code.
|
2011-06-05 21:44:34 +01:00 |
|
Jonathan Puckey
|
d2759c2371
|
Improve Segment constructor example.
|
2011-06-05 22:44:32 +02:00 |
|
Jonathan Puckey
|
9d4afcfe9c
|
Add another Path#add example.
|
2011-06-05 22:44:01 +02:00 |
|
Jonathan Puckey
|
5513687daa
|
Add Path#smooth examples.
|
2011-06-05 22:43:36 +02:00 |
|
Jürg Lehni
|
12e770c032
|
Merge remote-tracking branch 'origin/master'
|
2011-06-05 21:32:10 +01:00 |
|
Jürg Lehni
|
bcb5df9f04
|
Clean up.
|
2011-06-05 21:31:58 +01:00 |
|
Jürg Lehni
|
ca18b20785
|
Remove Douglas–Peucker algorithm again since it produced ackward results.
|
2011-06-05 21:29:19 +01:00 |
|
Jürg Lehni
|
42f5b5e26e
|
Implement Douglas–Peucker algorithm for point reduction before the curve fitting.
|
2011-06-05 21:28:49 +01:00 |
|
Jürg Lehni
|
aef8dcf2d3
|
Check for determinant singularity and handle separately.
|
2011-06-05 21:27:24 +01:00 |
|
Jürg Lehni
|
7d2742cd94
|
Rename PathFitter#process() -> #fit().
|
2011-06-05 21:26:01 +01:00 |
|
Jürg Lehni
|
4854e56e1d
|
Filter out adjacent duplicate points.
|
2011-06-05 21:25:38 +01:00 |
|
Jonathan Puckey
|
fe901fa96b
|
Add to and improve Path documentation.
|
2011-06-05 22:02:30 +02:00 |
|
Jürg Lehni
|
28c680ac94
|
Implement PathFitter and Path#pointsToCurves().
|
2011-06-05 19:27:18 +01:00 |
|
Jürg Lehni
|
caec7599be
|
Fix a bug with Segment constructor where two passed points with the first one having an x-coordinate of 0 would accidentaly be considered the two coordinate values for the point property.
|
2011-06-05 18:41:58 +01:00 |
|
Jonathan Puckey
|
e4eb463204
|
Path: document arcTo and curveTo.
|
2011-06-05 18:40:33 +02:00 |
|
Jonathan Puckey
|
14e2a61d25
|
Add examples to Path#arcTo docs.
|
2011-06-05 17:22:35 +02:00 |
|
Jonathan Puckey
|
ab09a44dc6
|
Add examples to Path#join documentation.
|
2011-06-05 16:12:31 +02:00 |
|
Jonathan Puckey
|
c10aa01de0
|
Fix a bug in Path#join.
|
2011-06-05 15:56:37 +02:00 |
|
Jonathan Puckey
|
5770ebc9ff
|
Merge remote branch 'origin/master'
|
2011-06-05 15:04:43 +02:00 |
|
Jonathan Puckey
|
deec7512cc
|
Path: fix return type in #getLocationAt documentation.
|
2011-06-05 15:04:34 +02:00 |
|
Jonathan Puckey
|
34b510bf1c
|
Path: add examples to #getPointAt, #getNormalAt and #getTangentAt.
|
2011-06-05 15:00:43 +02:00 |
|
Jonathan Puckey
|
bb956c890f
|
Add documentation stub for Path#arcTo(through, to)
|
2011-06-05 14:52:01 +02:00 |
|
Jonathan Puckey
|
4e0a857ee7
|
Fix a problem in Path#arcTo where it wasn't defaulting to a clockwise arc.
|
2011-06-05 14:51:37 +02:00 |
|
Jürg Lehni
|
b3d771a870
|
Remove Curve#transform() which is currently broken anyhow.
|
2011-06-05 13:27:39 +01:00 |
|
Jürg Lehni
|
e76c4e0de1
|
Implement Path#curvesToPoints() using the new PathFlattener class.
|
2011-06-05 13:21:00 +01:00 |
|
Jürg Lehni
|
74b9da9882
|
Define PathFlattener#evaluate() for curve evaluation at given offsets.
|
2011-06-05 13:20:20 +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
|
3a0f43050e
|
Rename length to offset.
|
2011-06-05 11:34:40 +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
|
47085e44ca
|
Fix drawing of closed paths that was broken in recent commit.
|
2011-06-05 11:20:28 +01:00 |
|
Jürg Lehni
|
6095723e70
|
Fix single equal compare.
|
2011-06-04 21:46:48 +01:00 |
|
Jürg Lehni
|
90be683113
|
Clean up and add more comments.
|
2011-06-04 19:25:50 +01:00 |
|
Jürg Lehni
|
263fa8cbd9
|
Add comments.
|
2011-06-04 18:35:00 +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
|
e097ff1303
|
Include copyright notice and clean up.
|
2011-06-04 16:12:55 +01:00 |
|
Jürg Lehni
|
5fa43efb79
|
Merge remote-tracking branch 'origin/master'
|
2011-06-04 16:08:52 +01:00 |
|
Jürg Lehni
|
6c74ace1ed
|
Implement dashed stroke support. Work in progress.
|
2011-06-04 16:08:40 +01:00 |
|
Jürg Lehni
|
e5290c3f47
|
More work on Path#draw().
|
2011-06-04 15:28:06 +01:00 |
|
Jürg Lehni
|
45a04891ee
|
Clean up.
|
2011-06-04 15:16:30 +01:00 |
|
Jürg Lehni
|
91886211b5
|
Simplify Path#draw() by defining a private drawSegment() that's used to close paths too.
|
2011-06-04 15:16:21 +01:00 |
|
Jonathan Puckey
|
a96b272f7a
|
Documentation edits.
|
2011-06-04 15:50:29 +02:00 |
|
Jürg Lehni
|
ce01d2cc59
|
Start implementing CurveFlattener, as required for dashing.
|
2011-06-04 12:40:58 +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
|
5e05f38df0
|
Path docs: add return tag for #getLocationAt.
|
2011-06-03 23:06:05 +02:00 |
|
Jonathan Puckey
|
d77e9cfb4f
|
Path docs: add Positions on Paths and Curves group title and temporary Path Smoothing group title.
|
2011-06-03 23:05:22 +02:00 |
|
Jonathan Puckey
|
083099a919
|
Add Path#closed example.
|
2011-06-03 23:04:18 +02:00 |
|
Jonathan Puckey
|
7d1297fcf4
|
Path#draw: Fix drawing of selected path handles.
|
2011-06-03 11:33:34 +02:00 |
|
Jürg Lehni
|
29967153c3
|
Clean up TODO comments...
|
2011-06-01 10:49:43 +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 |
|
Jonathan Puckey
|
16f521b8a2
|
Path.Constructors docs: move @example tags to the end of the comments and shorten the lines of the examples.
|
2011-05-30 17:13:19 +02:00 |
|
Jürg Lehni
|
9d00541987
|
Clean up PORT comments.
|
2011-05-29 19:20:10 +01:00 |
|
Jonathan Puckey
|
742d7f809d
|
Segment: document #toString and #selected.
|
2011-05-29 16:57:48 +02:00 |
|
Jonathan Puckey
|
6b63bb8a36
|
Documention: add postscript methods to CompoundPath
|
2011-05-29 16:49:52 +02:00 |
|
Jonathan Puckey
|
41bf1f4543
|
CompoundPath: document #moveTo and #moveBy.
|
2011-05-29 16:13:30 +02:00 |
|
Jonathan Puckey
|
0b9c034e0d
|
Path: document #addSegments and #insertSegments
|
2011-05-29 16:06:23 +02:00 |
|
Jonathan Puckey
|
78ab493709
|
Documentation: add todo to Path#add
|
2011-05-29 16:05:47 +02:00 |
|
Jonathan Puckey
|
cd76c8c0e1
|
Documentation: remove ^n from method names, since this isn't necessary anymore.
|
2011-05-28 02:18:10 +02: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
|
25c3534dc1
|
Documentation: remove part of the constructor explanation of CurveLocation until the mentioned functions have been added.
|
2011-05-27 20:06:57 +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 |
|
Jonathan Puckey
|
373e14dd76
|
Improve CompoundPath documentation.
|
2011-05-27 13:54:34 +02:00 |
|
Jonathan Puckey
|
ca3230c1ad
|
Documentation: reorder functions, add group titles and todos.
|
2011-05-27 13:28:13 +02:00 |
|
Jürg Lehni
|
397d3676ed
|
Merge remote-tracking branch 'origin/master'
|
2011-05-26 21:00:05 +01:00 |
|
Jonathan Puckey
|
6b611add37
|
More documentation edits and function reordering.
|
2011-05-26 20:09:25 +02:00 |
|
Jonathan Puckey
|
65fa7fb01d
|
Path documentation: use Type[] for 'typed' arrays.
|
2011-05-26 16:50:13 +02:00 |
|
Jürg Lehni
|
8130ee458f
|
Rename #_countSelectedSegment() to #_updateSelection().
|
2011-05-26 11:52:28 +01:00 |
|
Jürg Lehni
|
3e7806ae50
|
Move #_countSelectedSegment().
|
2011-05-26 11:38:26 +01:00 |
|
Jürg Lehni
|
e31081f2fc
|
Use Path#_countSelectedSegment() in #removeSegments() as well.
|
2011-05-26 11:38:08 +01:00 |
|
Jürg Lehni
|
c67209f889
|
Optimize Curve#initialize for minifying.
|
2011-05-26 11:09:02 +01:00 |
|
Jürg Lehni
|
362eca7061
|
Further optimize Segment#initialize for minifying.
|
2011-05-26 11:08:07 +01:00 |
|
Jürg Lehni
|
d8fbca0d68
|
Shorten Segment#_changed().
|
2011-05-26 11:04:57 +01:00 |
|
Jürg Lehni
|
5b6bc1263c
|
Allow selection state of Segments to be changed before they are added to a Path (Part two of fixing selection cloning).
|
2011-05-26 10:59:22 +01:00 |
|
Jürg Lehni
|
2d218dbb19
|
Change and optimise the way SegmentPoints are created, so that selected state is actually copied over properly (Part one of fixing selection cloning).
|
2011-05-26 10:58:16 +01:00 |
|
Jonathan Puckey
|
26aa3c00d7
|
Add CurveLocation documentation.
|
2011-05-23 17:39:26 +02:00 |
|
Jonathan Puckey
|
0e63f11b72
|
Add Curve documentation.
|
2011-05-23 17:24:57 +02:00 |
|
Jonathan Puckey
|
a389be30cf
|
Add Path.Constructors documentation.
|
2011-05-23 14:33:22 +02:00 |
|
Jonathan Puckey
|
2a4f5b93f0
|
Path documentation: whitespace.
|
2011-05-23 13:37:40 +02:00 |
|
Jonathan Puckey
|
211635f206
|
Cleanup last commit.
|
2011-05-23 04:20:11 +02:00 |
|
Jonathan Puckey
|
6db1f6c54c
|
Documentation: ignore various classes.
|
2011-05-23 04:18:21 +02:00 |
|
Jonathan Puckey
|
349e4023f3
|
CompoundPath documentation: adjust constructor docs.
|
2011-05-23 01:53:57 +02:00 |
|
Jonathan Puckey
|
ae6606e11c
|
Add CompoundPath docs.
|
2011-05-23 01:49:01 +02:00 |
|
Jonathan Puckey
|
06a6d5cc70
|
Add documentation to Segment.
|
2011-05-23 00:42:22 +02:00 |
|
Jonathan Puckey
|
5cea863ccb
|
Add documentation to Path.
|
2011-05-23 00:26:08 +02:00 |
|
Jonathan Puckey
|
469f72d36f
|
Remove todo.
|
2011-05-21 21:39:27 +02:00 |
|
Jonathan Puckey
|
7cdacc5536
|
Optimize Segment#initialize for minification.
|
2011-05-21 19:21:13 +02:00 |
|
Jürg Lehni
|
2b5d648e96
|
Change SegmentPoint.create() to copy over selected state from a provided other point or object.
|
2011-05-21 14:27:29 +01:00 |
|
Jürg Lehni
|
b15eecc34d
|
Use new internal Item#_clone() to improve Path#clone() and PointText#clone().
|
2011-05-20 08:54:44 +01:00 |
|
Jürg Lehni
|
7401e42316
|
Implement #clone() for Item, Group and Path. Needs testing.
|
2011-05-19 21:56:23 +01:00 |
|
Jürg Lehni
|
2dcb09a662
|
Define Path#clone().
|
2011-05-19 21:34:19 +01:00 |
|
Jürg Lehni
|
09612c4623
|
Remove the versions of #clone() that follow the scheme provided by Base#clone() now.
|
2011-05-19 18:35:38 +01:00 |
|
Jürg Lehni
|
ac213e94b4
|
Fix bug introduced in recent change to #getStrokeBounds(): We need to pass matrix as optional argument to #getBounds().
|
2011-05-18 21:32:00 +01:00 |
|
Jonathan Puckey
|
0a385d56a7
|
Replace accidental beans access with direct access of internal property.
|
2011-05-18 20:22:57 +02:00 |
|
Jonathan Puckey
|
b4807b9b7c
|
Fix Path#getStrokeBounds: use Path#getBounds when no strokeColor or strokeWidth are set.
|
2011-05-18 20:08:10 +02:00 |
|
Jonathan Puckey
|
241d98a1cf
|
Merge remote branch 'origin/master'
|
2011-05-18 16:01:36 +02:00 |
|
Jonathan Puckey
|
8810563a8f
|
Improve Raster#getAverageColor.
|
2011-05-18 16:00:55 +02:00 |
|
Jürg Lehni
|
eafc0d202e
|
Add comment about #clockwise magic happening in #append*() methods.
|
2011-05-16 20:17:14 +01:00 |
|
Jürg Lehni
|
34110fa82d
|
Move #_setStyle() closer to the related styles hash.
|
2011-05-16 19:19:18 +01:00 |
|
Jürg Lehni
|
c8c47bf641
|
get styles directly from _style object rather than passing through getters on Item.
|
2011-05-16 18:57:47 +01:00 |
|
Jonathan Puckey
|
4ad47ed3aa
|
Fix accidental internal bean access to #fillColor and #strokeColor in Path#_transform.
|
2011-05-16 15:11:13 +02:00 |
|
Jürg Lehni
|
cfe968d30e
|
Rename Document -> Project, DocumentView -> ProjectView, paper.document -> paper.project and paper.documents -> paper.projects, to avoid name clashing with window.document.
|
2011-05-16 13:33:15 +01:00 |
|
Jürg Lehni
|
a601cfdd6d
|
Clear the indices and path references of the removed segments.
|
2011-05-16 01:37:31 +01:00 |
|
Jürg Lehni
|
3a15360efc
|
Rename ChangeFlags.PATH to GEOMETRY.
|
2011-05-16 00:01:06 +01:00 |
|
Jürg Lehni
|
ebdf5a2dfd
|
Shorten CompoundPath#moveBy().
|
2011-05-15 19:58:09 +01:00 |
|
Jürg Lehni
|
54161f81f1
|
Add expected parameters to function signature.
|
2011-05-15 19:57:48 +01:00 |
|
Jürg Lehni
|
c4c4f51eb9
|
Shorten getCurrentPath().
|
2011-05-15 19:31:25 +01:00 |
|
Jürg Lehni
|
7ba2fcad2a
|
Allow passing of Paths to CompoundPath constructor as arguments, without an array object.
|
2011-05-15 19:14:09 +01:00 |
|
Jürg Lehni
|
c9d0f982c2
|
Don't set _clockwise in Path#isClockwise(), as it should only be set once the use explicitely does so.
|
2011-05-15 19:02:50 +01:00 |
|
Jürg Lehni
|
4cee442a05
|
Rename items parameter to paths.
|
2011-05-15 18:05:47 +01:00 |
|
Jürg Lehni
|
3d76034600
|
Use Path#setClockwise() in CompoundPath constructor to reverse top path so that the others appear as holes cut out from it.
|
2011-05-15 18:05:00 +01:00 |
|
Jürg Lehni
|
813b70c70b
|
Update comment a bit to make code more clear.
|
2011-05-15 17:59:57 +01:00 |
|
Jürg Lehni
|
40c988b313
|
Add Path#is/setClockwise(), as a way to check and define a path's orientation.
|
2011-05-15 17:59:06 +01: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
|
c91cbe2175
|
Merge remote-tracking branch 'origin/master'
|
2011-05-15 14:37:34 +01:00 |
|
Jürg Lehni
|
057b71ff4c
|
Don't overuse variable chaining - use only were readibility does not suffer.
|
2011-05-15 14:29:00 +01:00 |
|
Jonathan Puckey
|
1a82ef4a34
|
Merge remote branch 'origin/master'
|
2011-05-15 14:09:57 +02:00 |
|
Jürg Lehni
|
51dbd85db5
|
Add experimental orientation detection for Paths.
|
2011-05-15 11:33:09 +01:00 |
|
Jonathan Puckey
|
42ae3ce42e
|
CompoundPath#draw: set param.compound to false when done drawing.
|
2011-05-14 20:36:58 +02:00 |
|
Jürg Lehni
|
0bab694a01
|
Rename Item#children to private Item#_children and add #getChildren getter.
|
2011-05-14 18:07:10 +01:00 |
|
Jonathan Puckey
|
2bfe42da05
|
Have the CompoundPath constructor reverse the segments of all paths passed to it except for the first one. Introduce 'keepDirection' option to allow importing of already existing CompoundPath items.
|
2011-05-14 13:03:18 +02:00 |
|
Jonathan Puckey
|
032d19b0d2
|
Fix bug in CompoundPath where toCssString was being called instead of getCanvasStyle, resulting in problems when gradients were used.
|
2011-05-12 15:30:56 +02:00 |
|
Jonathan Puckey
|
bbccb25184
|
Transform gradient when path is transformed.
|
2011-05-08 14:05:47 +01:00 |
|
Jürg Lehni
|
2f4f003873
|
Have Base.read() clone owned objects such as SegmentPoint or LinkedPoint.
|
2011-05-08 13:38:09 +01:00 |
|
Jürg Lehni
|
327515a9de
|
Add missing header.
|
2011-05-08 09:59:37 +01:00 |
|
Jürg Lehni
|
70d0dd9c0c
|
Move #moveTo() to the same scope as the other drawing commands, and add explaining comments.
|
2011-05-07 17:11:06 +01:00 |
|
Jürg Lehni
|
979bda52ab
|
We don't need the empty #initialize().
|
2011-05-07 17:05:42 +01:00 |
|
Jürg Lehni
|
8c7b253bc2
|
Add Base.splice() to handle lists of items with _index referneces and use it for paper.documents and Item#children.
|
2011-05-07 16:11:05 +01:00 |
|
Jürg Lehni
|
b44e796475
|
Make sure getters dont return undefined but null instead.
|
2011-05-07 16:10:38 +01:00 |
|
Jürg Lehni
|
81c1b2dcce
|
Clean up Path#_add() a bit.
|
2011-05-07 15:38:36 +01:00 |
|
Jürg Lehni
|
59e2783979
|
Use tripple equal operators for string compares now.
|
2011-05-07 14:32:27 +01:00 |
|
Jürg Lehni
|
4e6e855461
|
Change '// TODO: Port' comments to '// PORT:'.
|
2011-05-07 14:18:27 +01:00 |
|
Jürg Lehni
|
dabc2b97ed
|
Implement change-notification in a proper way, using ChangeFlags that tell it what exactly has changed, and clearing caches accordingly.
|
2011-05-07 13:39:17 +01:00 |
|
Jürg Lehni
|
53cc1cd908
|
Apply #position optimisation through caching to all items, not just PlacedSymbol.
|
2011-05-07 13:13:19 +01:00 |
|
Jürg Lehni
|
6af787e475
|
Move access to Numerical.TOLERANCE out of the injection scope into getBounds(), so util files can be included at the end of the library again.
|
2011-05-07 11:23:46 +01:00 |
|
Jürg Lehni
|
0fc7216f1c
|
Fix typos introduced in recent commit.
|
2011-05-06 13:40:43 +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
|
aed1bb0878
|
Use Numerical.TOLERANCE instead of hardcoded one.
|
2011-05-06 12:06:05 +01:00 |
|
Jürg Lehni
|
66602c9cec
|
Remove comment about necessity to reverse coordinate system.
|
2011-05-06 01:27:47 +01:00 |
|
Jürg Lehni
|
0b082289a6
|
Simplify Path#arcTo() a lot (get rid of necessity to reverse coordinate system in y-direction, etc).
|
2011-05-06 01:26:23 +01:00 |
|
Jürg Lehni
|
18ef19649c
|
Remove comment about unnecessary change.
|
2011-05-06 00:45:46 +01:00 |
|
Jürg Lehni
|
680ae49ec8
|
Clean up code a bit and add comment about possible further optimsiations.
|
2011-05-06 00:44:54 +01:00 |
|
Jürg Lehni
|
a3065a59d1
|
Simplify Path#arcTo().
|
2011-05-06 00:42:10 +01:00 |
|
Jürg Lehni
|
a4b37a6278
|
Simplify addJoin().
|
2011-05-06 00:39:44 +01:00 |
|
Jürg Lehni
|
a3da96e8be
|
Remove notify parameter again from _add().
|
2011-05-06 00:18:56 +01:00 |
|
Jürg Lehni
|
20cf32d599
|
Resolve question about wether last segment should be included in join or not.
|
2011-05-06 00:14:09 +01:00 |
|
Jürg Lehni
|
93fe0216d2
|
Add Path#addSegment(s) and #insertSegment(s) and define #add() and #insert() as a switch between these versions based on the amount and nature of parameters.
|
2011-05-05 12:35:14 +01:00 |
|
Jürg Lehni
|
7894a48ace
|
Add parameter to Path#_add() that controls wether path is notified of change.
|
2011-05-05 11:40:46 +01:00 |
|
Jürg Lehni
|
ee6d593620
|
Cache strokeBounds and bounds only if no transformation matrix is passed.
|
2011-05-05 11:21:09 +01:00 |
|
Jürg Lehni
|
1279e820aa
|
Use arc() instead of rect() to draw handles.
|
2011-05-05 11:01:20 +01:00 |
|
Jürg Lehni
|
bc80c58558
|
Add Base.formatNumber() to format numbers in the same way as Scriptographer (precision of up to 5 fractional digits) and use it in the various #toString() functions.
|
2011-05-04 19:42:50 +01:00 |
|
Jürg Lehni
|
a5099fd51d
|
Add support for insertion of multiple segments at once to Path#_add(), #add() and #insert(), and change code that relies on these methods.
|
2011-05-04 18:42:40 +01:00 |
|
Jürg Lehni
|
728bf0441c
|
Clean up Path#moveTo() and #lineTo() commands.
|
2011-05-03 09:12:07 +01:00 |
|
Jürg Lehni
|
52a73e86ce
|
Clean up code (for() -> for ()).
|
2011-05-03 08:54:13 +01:00 |
|
Jürg Lehni
|
3af24e6178
|
Replace hidden getter call with direct access of internal property.
|
2011-05-03 08:47:52 +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
|
98ab342235
|
Shorten #_transformCoordinates() a bit.
|
2011-05-02 08:59:51 +01: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
|
2cdb15f2d6
|
Fix recently renamed functions in commented out code.
|
2011-05-01 23:29:15 +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
|
0680a50fd2
|
Fix yet another two bugs in CurveLocation.
|
2011-05-01 13:18:36 +01:00 |
|
Jürg Lehni
|
08e779d560
|
Fix two bugs in CurveLocation.
|
2011-05-01 13:16:25 +01:00 |
|
Jürg Lehni
|
6bbfd55240
|
Clean up Path#setSegments and begin moving of logic to keep Path#curves in sync away from Path#getCurves() to Path#setClosed(). Requires more work, e.g. Path#_add().
|
2011-04-30 23:44:37 +01:00 |
|
Jürg Lehni
|
6cca355e20
|
Add Curve.create() as faster internal constructor.
|
2011-04-30 23:29:10 +01:00 |
|
Jürg Lehni
|
053fb2d955
|
Move Path#get/setSegments back to top and remove test-code for array object extension.
|
2011-04-30 23:24:39 +01:00 |
|
Jürg Lehni
|
781b315808
|
Add getter/setter for Path#closed.
|
2011-04-30 23:22:29 +01:00 |
|
Jürg Lehni
|
bf3bd13540
|
Simplify Path#cubicCurveTo().
|
2011-04-30 23:17:19 +01:00 |
|
Jürg Lehni
|
6d84dc3351
|
Segment#isSelected() only checks for selection state of point. We need to check _selectionState instead to mirror behaviour in #_setSelected().
|
2011-04-28 19:04:00 +01:00 |
|
Jürg Lehni
|
d098c6e8b2
|
Fix index issue in #removeSegments().
|
2011-04-28 19:03:05 +01:00 |
|
Jürg Lehni
|
121ec5a93f
|
Allow #removeSegments() to be called without arguments, in which case all segments are removed.
|
2011-04-28 19:02:34 +01:00 |
|
Jürg Lehni
|
ea510c2403
|
Separate Path#remove(), #remove(index) & #remove(from, to) into #removeSegment(index) and #removeSegments(from, to).
|
2011-04-28 15:42:16 +01:00 |
|
Jürg Lehni
|
4d999d57e2
|
Replace all type converting string compares with ===, !==.
|
2011-04-28 13:23:17 +01:00 |
|
Jürg Lehni
|
115ef45464
|
Remove unnecessary .0 since numbers are all the same in JavaScript.
|
2011-04-28 13:13:33 +01:00 |
|
Jürg Lehni
|
0d697403b5
|
Clean up Path#curveTo() code.
|
2011-04-28 13:12:21 +01:00 |
|
Jürg Lehni
|
f69153844b
|
Make #setContextStyles() a 'protected' function.
|
2011-04-28 13:04:12 +01:00 |
|
Jürg Lehni
|
a9ea10ca7f
|
Move version of #getBounds() that handles children to Item, to eliminate duplicated code.
|
2011-04-28 10:04:36 +01:00 |
|
Jürg Lehni
|
6a483fa8be
|
Rename CurveLocation related functions to *At(offset), and add optional isParameter argument that defines whether offset is a length or a description of curve index / curve parameter.
|
2011-04-27 21:40:52 +01:00 |
|
Jürg Lehni
|
ea6cf24aae
|
Rename length parameter to more appropriate offset, to reflect recent name changes.
|
2011-04-27 21:23:57 +01:00 |
|
Jürg Lehni
|
3501e14c51
|
Remove comment about pending port that has been backported to Scriptographer.
|
2011-04-27 21:13:32 +01:00 |
|
Jürg Lehni
|
c2fbcbcaa8
|
Use Curve#getLength(from, to) rather than cloning and dividing.
|
2011-04-27 20:52:24 +01:00 |
|
Jürg Lehni
|
346493fb7c
|
Replace calls to getters with their internal property in all cases where getter does not perform additional magic.
|
2011-04-27 20:48:41 +01:00 |
|
Jürg Lehni
|
016f4c15aa
|
Rename CurveLocation#getLength() and #getCurveLength() to #getOffset() and #getCurveOffset(), and seperate Path#getLength([location]) into #getLength() and #_getOffset().
|
2011-04-27 20:08:57 +01:00 |
|
Jürg Lehni
|
b0a1f4b1a9
|
Add missing Path#getPoint(length).
|
2011-04-27 19:28:39 +01:00 |
|
Jürg Lehni
|
c836012d3d
|
Add CurveLocation#getTangent() and #getNormal() and use them in Path's versions.
|
2011-04-27 19:26:03 +01:00 |
|
Jürg Lehni
|
bf0bc81892
|
Fix various minor bugs in CurveLocation: We cannot rely on most of its field to always be set and need to call getters instead.
|
2011-04-27 19:24:40 +01:00 |
|
Jürg Lehni
|
cc06a6f128
|
Remove CurveLocation#getPath() again as its functionality is provided by #getItem() already.
|
2011-04-27 19:22:57 +01:00 |
|
Jürg Lehni
|
ebc9bc88c4
|
Use 0 instead of null for empty bit flag fields.
|
2011-04-27 19:11:22 +01:00 |
|
Jürg Lehni
|
c6d96784ba
|
Further simplify and compress code.
|
2011-04-27 18:16:32 +01:00 |
|
Jürg Lehni
|
f71967f3d3
|
Further simplify and compress code.
|
2011-04-27 17:57:56 +01:00 |
|
Jürg Lehni
|
6b6f27cb6e
|
Add TODOs about not returning -1 for undefined.
|
2011-04-27 17:53:59 +01:00 |
|
Jürg Lehni
|
4bfc56bb6d
|
Simplify and compress code a bit.
|
2011-04-27 17:53:23 +01:00 |
|
Jonathan Puckey
|
81a15379e5
|
Have Path#reverse also reverse the segment handles.
|
2011-04-27 15:49:06 +02: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
|
9671ac6dbc
|
Remove comment about pending port that has been backported to Scriptographer.
|
2011-04-27 12:30:17 +01:00 |
|
Jürg Lehni
|
e6a0f48256
|
Further clean-up code, as we only need previous / next references inside one sub-condition.
|
2011-04-27 12:26:10 +01:00 |
|
Jürg Lehni
|
138ec7d93c
|
No need to perform cyclic looping here now, since #getNext/Previous() does that for us.
|
2011-04-27 12:24:04 +01:00 |
|
Jürg Lehni
|
a251a24347
|
Add some TODOs to check.
|
2011-04-27 12:21:47 +01:00 |
|
Jürg Lehni
|
0e89466a11
|
Add cyclic looping to Segment#previous/next for closed paths.
|
2011-04-27 12:21:31 +01:00 |
|
Jürg Lehni
|
92369bf14f
|
Seperate the private Segment#is/setSelected(point) methods from the newly added getter / setter.
|
2011-04-27 12:15:51 +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
|
776edda51d
|
Cleaned-up Segment#is/setSelected() code a bit.
|
2011-04-27 12:06:44 +01:00 |
|
Jürg Lehni
|
cd2347aa9b
|
Remove comment about pending port that has been backported to Scriptographer.
|
2011-04-27 11:24: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
|
1c9cd9ace4
|
Clean up code in #setContextStyles().
|
2011-04-27 09:53:53 +01:00 |
|
Jürg Lehni
|
b7a4277143
|
Add comment about _x / _y properties and clean up code a bit.
|
2011-04-26 17:57:12 +01:00 |
|
Jürg Lehni
|
ead1600afe
|
Clean-up CurveLocation code and switch from returning -1 to null for #getIndex().
|
2011-04-26 17:49:54 +01:00 |
|
Jürg Lehni
|
c4ede92e81
|
Fix error in Path#getLastCurve().
|
2011-04-26 17:48:36 +01:00 |
|
Jürg Lehni
|
77ad25ffba
|
Clean up port comments.
|
2011-04-26 17:47:30 +01:00 |
|
Jürg Lehni
|
ac5dca4fc0
|
Update various comments about TODOs.
|
2011-04-26 17:04:15 +01:00 |
|
Jürg Lehni
|
bdfe35d93a
|
Consistently name local context variables 'ctx', to save line size and acknowledge the fact that Canvas contexts have a funny API design.
|
2011-04-26 15:39:16 +01:00 |
|
Jürg Lehni
|
a20f988511
|
Minor code cleanup.
|
2011-04-26 12:55:20 +01:00 |
|
Jürg Lehni
|
9d2459d799
|
Rename '// Todo' to '// TODO', which is the convention.
|
2011-04-26 12:39:48 +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
|
5e6630a1f3
|
Speed up drawHandle function.
|
2011-04-23 15:56:27 +02:00 |
|
Jonathan Puckey
|
538f360a6b
|
Fix Document#getSelectedItems & Path#setSegments.
|
2011-04-22 12:30:38 +02:00 |
|
Jonathan Puckey
|
4d89d6c235
|
Path#setSegments: reset _selectedSegmentCount when setting a new segment list.
|
2011-04-22 11:39:12 +02:00 |
|
Jonathan Puckey
|
11063af8df
|
CompoundPath cleanups.
|
2011-04-21 21:12:48 +02:00 |
|
Jonathan Puckey
|
1ea0a811b5
|
Use internal variables in CompoundPath#moveBy and Segment#isSelected.
|
2011-04-21 21:06:35 +02:00 |
|
Jonathan Puckey
|
af0543dac8
|
Some cleanups in Path.
|
2011-04-21 21:01:31 +02:00 |
|
Jonathan Puckey
|
dfb5cbc5eb
|
Fix two bugs in the selected items code.
|
2011-04-21 20:52:28 +02:00 |
|
Jonathan Puckey
|
be8ee90f75
|
Document: use a hash for Document#_selectedItems to speed up adding to and removing from it.
|
2011-04-21 20:43:42 +02:00 |
|
Jonathan Puckey
|
745f002cd3
|
Segment: add todo.
|
2011-04-21 20:00:11 +02:00 |
|
Jonathan Puckey
|
abb0878a25
|
Curve: Implement selection of curves.
|
2011-04-21 19:54:32 +02:00 |
|
Jonathan Puckey
|
cf541901dd
|
Rename getSelected methods to isSelected.
|
2011-04-21 19:51:49 +02:00 |
|
Jonathan Puckey
|
d831d66758
|
Implement SelectionState.js: bitwise flags for segment selection state.
|
2011-04-21 19:37:51 +02:00 |
|
Jonathan Puckey
|
7867a46c35
|
Path#setSelected: do XOR correctly.
|
2011-04-21 18:45:36 +02:00 |
|
Jonathan Puckey
|
cf2faa14e3
|
Path#join: use internal variables.
|
2011-04-21 18:43:22 +02:00 |
|
Jonathan Puckey
|
73b97dbfba
|
Implement segment point selection.
|
2011-04-21 18:06:06 +02:00 |
|
Jonathan Puckey
|
732caec7bf
|
Speed up drawing of selected items.
|
2011-04-21 15:48:21 +02:00 |
|
Jonathan Puckey
|
b2cd8cdec2
|
Path: use the internal SegmentPoint#_x and #_y properties where possible.
|
2011-04-21 15:25:25 +02:00 |
|
Jürg Lehni
|
985aa5aff8
|
Directly access internal _x and _y properties on internal SegmentPoints, to avoid callling getters.
|
2011-04-21 13:33:12 +01:00 |
|
Jürg Lehni
|
96f266b4d2
|
Add beginning of SegmentPoint class.
|
2011-04-21 13:21:56 +01:00 |
|
Jonathan Puckey
|
be9f312110
|
Implement a first version of drawing path selection.
|
2011-04-17 18:46:35 +02:00 |
|
Jonathan Puckey
|
74cee4abef
|
Implement Path#remove() and add tests for it.
|
2011-04-13 16:16:32 +02:00 |
|
Jonathan Puckey
|
6d4d07f2a8
|
Path.Constructors: simply Path.Star constructor.
|
2011-04-13 00:05:46 +02:00 |
|
Jonathan Puckey
|
0d4517c77f
|
Path: add todos for missing functions.
|
2011-04-12 14:36:02 +02:00 |
|
Jonathan Puckey
|
60dca8c2e8
|
Path#cubicCurveTo: convert arguments to points first.
|
2011-04-12 14:35:42 +02:00 |
|
Jonathan Puckey
|
91d8dd1187
|
Path: add todos for missing functions.
|
2011-04-12 14:28:18 +02:00 |
|
Jonathan Puckey
|
491250ef14
|
Simplify Path.Star constructor.
|
2011-04-12 14:20:56 +02:00 |
|
Jonathan Puckey
|
12de77eb42
|
Path.Constructors: implement Path.Star and add tests.
|
2011-04-12 14:18:00 +02:00 |
|
Jonathan Puckey
|
2a9bbd3dee
|
Fix Path#closePath & CompoundPath#closePath.
|
2011-04-11 23:33:08 +02:00 |
|
Jonathan Puckey
|
499c421021
|
Implement Path#join(path) and add tests for it.
|
2011-04-11 23:30:08 +02:00 |
|
Jonathan Puckey
|
594c11fedd
|
CurveLocation: fix mistakes.
|
2011-04-11 19:36:40 +02:00 |
|
Jonathan Puckey
|
aa043428c0
|
CurveLocation: add empty line to end of file.
|
2011-04-11 19:33:34 +02:00 |
|
Jonathan Puckey
|
b46c6d0a29
|
Curve: implement getLocation(length), getLength(location), getTangent(length), getNormal(length)
|
2011-04-11 19:32:19 +02:00 |
|
Jonathan Puckey
|
d396f48c4b
|
Implement CurveLocation.
|
2011-04-11 19:32:04 +02:00 |
|
Jürg Lehni
|
08d0499251
|
Change comment.
|
2011-03-25 19:58:20 +02:00 |
|
Jürg Lehni
|
e83195bb8f
|
Add #first/lastCurve getters.
|
2011-03-25 19:58:02 +02:00 |
|
Jürg Lehni
|
b5fdecf3d1
|
Rename ObservedRectangle to LinkedRectangle, ObservedPoint to LinkedPoint, and add more comments about what it is they are doing.
|
2011-03-22 17:27:46 +00: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
|
2c9d168224
|
Clean up and improve Path drawing commands.
|
2011-03-19 23:09:17 +00:00 |
|
Jürg Lehni
|
1267f41559
|
Add beginning of ObservedRectangle support and test it in animatedStar example.
|
2011-03-16 23:32:46 +01:00 |
|
Jürg Lehni
|
c284b0837e
|
Fix tiny error in Path#smooth()
|
2011-03-14 16:18:12 +01: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
|
195b089424
|
Clean up Path.* constructors and make sure they handle Base.read() returning null.
|
2011-03-08 17:20:30 +00:00 |
|
Jürg Lehni
|
484b2b0c94
|
Test code for Path#segments change observation.
|
2011-03-08 17:20:03 +00:00 |
|
Jürg Lehni
|
3927836441
|
Declare functions that work both as getters for beans and also as callalble functions with optional parameters differently, since they do not inject beans anymore if they declare parameters.
|
2011-03-08 17:19:02 +00:00 |
|
Jürg Lehni
|
74167ff28d
|
Add test code for segments list that detects change.
|
2011-03-08 13:19:08 +00:00 |
|
Jürg Lehni
|
fc0d3efd29
|
Simplify Path constructor further.
|
2011-03-08 13:03:57 +00:00 |
|
Jürg Lehni
|
e35fb1efb6
|
Move populating of segments list to Path#setSegments() and rely on it in constructor.
|
2011-03-08 13:03:11 +00:00 |
|
Jürg Lehni
|
848befe103
|
No need to create a new segments array in setSegments, just set length of existing one instead.
|
2011-03-08 13:00:32 +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
|
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 |
|
Jürg Lehni
|
98837cbe98
|
Further optimise Path#transformContent() by reusing arrays and thus reducing memory footprint.
|
2011-02-20 11:15:40 +01:00 |
|
Jürg Lehni
|
c89d04dca6
|
Optimise Path#getBounds() by not relying on Point#add() but instead doing the calculations in direct math in the per-coordinate loop.
|
2011-02-20 02:05:40 +01:00 |
|
Jürg Lehni
|
6c4121db4b
|
Optimise Path#transformContent() by using Matrix#transform() version that handles arrays of multiple point values for much improved performance.
|
2011-02-20 01:55:43 +01:00 |
|
Jürg Lehni
|
ed752ed744
|
Pass ctor.dont to all constructor calls that are followed with explicit initialize() calls afterwards, to make sure it is only called once.
|
2011-02-20 01:45:53 +01:00 |
|
Jonathan Puckey
|
10623ddb62
|
Implement Gradient, GradientColor, GradientStop.
|
2011-02-19 22:50:37 +01:00 |
|
Jonathan Puckey
|
2b1dee1bd4
|
Add opacity support in Path#draw.
|
2011-02-19 17:33:23 +01:00 |
|
Jonathan Puckey
|
c2849b3692
|
Change PathStyle, CompoundPath and Path to work with new Color classes.
|
2011-02-19 17:25:16 +01:00 |
|
Jonathan Puckey
|
bd5c906047
|
Fix error in CompoundPath.
|
2011-02-19 14:12:05 +01:00 |
|
Jürg Lehni
|
b14c9ae21b
|
For the closure injection to work properly we need an iterator function that provides a scope to the referenced key value. Rely on Base.each() for this, which even in a scaled down Bootstrap will be available and not harmful, as it won't rely on modified native prototypes.
|
2011-02-17 23:34:03 +00:00 |
|
Jürg Lehni
|
bc33ae8084
|
Add missing #closePath() to both Path and CompoundPath.
|
2011-02-17 23:01:18 +00:00 |
|
Jürg Lehni
|
4c2e1ee5c9
|
Optimise and simplfy CompoundPath code, by moving scope into extend() call, and only compiling one fields object inside it that is return at the end.
|
2011-02-17 22:58:56 +00:00 |
|
Jürg Lehni
|
e6dc189310
|
Simplify injection separation by using multiple arguments to extend().
|
2011-02-17 22:46:28 +00:00 |
|
Jürg Lehni
|
5850ef3cfc
|
Seperate Path definition into two parts, one that requires scoped private functions and values, and one that does not, to keep related things closer together and save indentation space.
|
2011-02-17 20:08:37 +00:00 |
|
Jürg Lehni
|
19121c33b2
|
Simplify injection of Path constructors.
|
2011-02-17 20:04:02 +00:00 |
|
Jonathan Puckey
|
deb1699f13
|
Tidy up code.
|
2011-02-17 16:00:03 +01:00 |
|
Jonathan Puckey
|
36de01a6ae
|
Move Path Constructors into seperate file.
|
2011-02-17 15:55:26 +01:00 |
|
Jonathan Puckey
|
1953c17f41
|
CompoundPath: move getCurrentPath into the outer scope and implement smooth and simplify.
|
2011-02-17 14:33:25 +01:00 |
|
Jonathan Puckey
|
0c1f29ce29
|
Implement CompoundPath and move most of PathItem into Path.
|
2011-02-17 13:36:40 +01:00 |
|
Jürg Lehni
|
9d1458e6ae
|
Rely on new Array.isArray() now for array checks.
|
2011-02-15 23:15:13 +00:00 |
|
Jürg Lehni
|
b8816a07f5
|
Reformat to fit 80 chars boundary.
|
2011-02-15 23:10:48 +00:00 |
|
Jürg Lehni
|
3d64b017c5
|
Remove comment about having Point.read() return consumed arguments indices, as after analysing the situation it seem too complex to imeplement easly: Point.read internally relies on Point#initialize for all the heavy lifting, and this would have to report back how many indices were consumed somehow...
|
2011-02-15 22:56:53 +00:00 |
|
Jürg Lehni
|
a154819350
|
Switch to using indexOf() in Segment#index for now.
|
2011-02-14 10:35:40 +00:00 |
|
Jürg Lehni
|
91e8a3b652
|
Update Bootstrap to fix issues with beans (requiring definition of setter when getter is redefined in sub-class), and remove setBounds in PathItem that was introduced for that reason.
|
2011-02-14 10:28:27 +00:00 |
|
Jürg Lehni
|
a6e9ee56d4
|
Cleanup Path constructors by using simple constructor functions instead of Base.extend() classes, use Path.Oval for Path.Circle and optimise Path.Oval through ovalSegments array with real segments (no use to call Segment.read each time).
|
2011-02-14 02:05:54 +00:00 |
|
Jürg Lehni
|
ed55dc39fb
|
Fix PathItem constructor by no redefining arguments variable that results in arguments array changing as well on some browsers.
|
2011-02-14 01:47:56 +00:00 |
|
Jürg Lehni
|
38f4dd353d
|
Make Item#bounds setter work for PathItem, and add two TODO comments about Bootstrap shortcommings that cause it to break.
|
2011-02-14 01:24:22 +00:00 |
|
Jürg Lehni
|
3af5d549f6
|
Add comments about possible optimisations in PathItem#transformContent().
|
2011-02-14 01:14:03 +00:00 |
|
Jürg Lehni
|
ee8c30b518
|
Implement Matrix, Item#position, Item#bounds (setter too), Item#transform(), Item#scale(), Item#rotate(), Item#transalte() and Item#shear(). Some of it work in progress.
|
2011-02-14 01:05:16 +00:00 |
|
Jürg Lehni
|
420ffaa7ea
|
No need to check for existance of handleIn/Out, as they are always defined.
|
2011-02-13 18:56:06 +00:00 |
|
Jürg Lehni
|
eeb7d377e6
|
Add optional index argument to static read() functions, so points, rectangle, sizes and segments can be read from any index in the arguments array.
|
2011-02-13 18:15:55 +00:00 |
|
Jürg Lehni
|
08d4826441
|
Reformating code to follow Scriptotgrapher coding conventions.
|
2011-02-13 16:26:24 +00:00 |
|
Jürg Lehni
|
0ac19a8e82
|
Optimise read() functions to only convert if argument is not of desired type already.
|
2011-02-13 16:05:19 +00:00 |
|
Jürg Lehni
|
d67055b09b
|
Add documentation to PathItem#bounds.
|
2011-02-13 15:59:22 +00:00 |
|
Jürg Lehni
|
515439c4df
|
Optimize PathItem#bounds by using less coordinate lookups.
|
2011-02-13 15:55:43 +00:00 |
|
Jürg Lehni
|
71d1ff3cb3
|
Make PathItem#getBounds() work for closed paths too.
|
2011-02-13 15:51:54 +00:00 |
|
Jürg Lehni
|
d59d514a55
|
Fix bug in PathItem#bounds (wrongly used variable name twice), now works properly for open paths.
|
2011-02-13 15:49:36 +00:00 |
|
Jürg Lehni
|
e08359f49d
|
Beginning of PathItem#bounds and tests to go along with it, not functional yet.
|
2011-02-13 15:40:30 +00:00 |
|
Jürg Lehni
|
a30e4057e3
|
Fix PathItem constructor to support passing of segments both as array and arguments.
|
2011-02-13 15:39:24 +00:00 |
|
Jürg Lehni
|
771d9d0efe
|
Fix a couple of bugs in shape drawing code, and switch to consistently use this.currentSegment rather than this._segments[this._segments.length - 1], to use the internal check for a starting point.
|
2011-02-13 15:12:25 +00:00 |
|
Jürg Lehni
|
a579b8bd3d
|
Make sure Segment#handleIn and #handleOut are always defined, even when not provided, and change compareSegments() to also reflect this change by relying on Segment.read for conversion of comparison values.
|
2011-02-13 15:09:24 +00:00 |
|
Jürg Lehni
|
4b2341b3c2
|
Add gettter/setters for Path#segments, and fix bug in Segment#previous.
|
2011-02-13 13:52:51 +00:00 |
|
Jonathan Puckey
|
c1d2cab5d9
|
Segment.js: fix toString and remove methods. Add test for segment.remove().
|
2011-02-12 19:10:19 +01:00 |
|
Jonathan Puckey
|
9b5e18c795
|
PathItem: replace this.segments.push(segment) to this.addSegment(segment)
|
2011-02-12 19:08:34 +01:00 |
|
Jonathan Puckey
|
c0e2101c32
|
Clean up src directory and move Bootstrap.js into lib.
|
2011-02-12 17:59:39 +01:00 |
|