Commit graph

3003 commits

Author SHA1 Message Date
Jürg Lehni
1046e440e8 Improve documentation. 2012-12-23 16:01:53 +01:00
Jürg Lehni
734cc1cc61 Undo commit 4445376c0204cb5a2e408c64b77a5b6fa09305ba since it clashes with magnification. 2012-12-21 16:41:57 +01:00
Jürg Lehni
c025c41ec0 Start implementing PathItem#getIntersections(). 2012-12-21 16:13:38 +01:00
Jürg Lehni
d43cc28aac Optimise Curve constructors that construct from 4 arguments (points) and 8 (coordinate values). 2012-12-20 18:03:11 +01:00
Jürg Lehni
e10ef4dba3 Fix comment. 2012-12-19 03:22:57 +01:00
Jürg Lehni
22ddd7a37e Implement CompoundPath#curves. 2012-12-18 14:53:38 +01:00
Jürg Lehni
29a2bc781b Implement the various bounds getter on Curve too, using caching and the new static Path.get*Bounds methods. 2012-12-18 14:35:21 +01:00
Jürg Lehni
4de5f30f72 Improve documentation. 2012-12-18 14:19:22 +01:00
Jürg Lehni
c63e2c8f79 Clean up bounds scope indentation. 2012-12-18 14:19:13 +01:00
Jürg Lehni
9a8dddd7df Move Item#isEmpty() out of bounds scope and define documentation for it. 2012-12-18 14:18:53 +01:00
Jürg Lehni
05ab8910ea Optimise GradientStop constructor for better minification. 2012-12-18 13:49:29 +01:00
Jürg Lehni
15824e7aaf Fix isEmpty for TextItems.
Closes #133.
2012-12-18 05:29:03 +01:00
Jürg Lehni
9022bb232b Simplify getGlobalMatrix(). 2012-12-18 00:22:39 +01:00
Jürg Lehni
87393d130d Make sure converting #saturation getter uses HSB, not HSL.
Fixes #111.
2012-12-17 23:03:02 +01:00
Jürg Lehni
481b2e00ac Handle scroll matrices correctly when drawing selections.
Closes #82.
2012-12-17 22:58:55 +01:00
Jürg Lehni
2218ca31f6 Fix support for double-click events.
Closes #90.
2012-12-17 22:22:58 +01:00
Jürg Lehni
9fb48d1dd4 Fix a bug Base.equals(), causing endless recursion.
Closes #148.
2012-12-17 21:49:48 +01:00
Jürg Lehni
b535d9f843 Implement new Bootstrap feature that allows hiding of getter parameters to make sure beans are produced, and use it across the library. 2012-12-15 19:51:31 +01:00
Jürg Lehni
5a316c244b Directly expose bounds methods as statics rather than using a private scope. 2012-12-15 08:27:37 -08:00
Jürg Lehni
0d2ed108e2 Refactor getBounds code so that functionality can be exposed as static methods on Path. 2012-12-15 08:19:10 -08:00
Jürg Lehni
021009abbc Shorten Path#getBounds() code by using Numerical.solveQuadratic(). 2012-12-15 07:58:20 -08:00
Jürg Lehni
ddf982a446 Add comment to removeOn() code. 2012-12-15 02:40:47 -08:00
Jürg Lehni
09ee9a0689 Exclude 1 in parameter range for crossing counting, as segment points would be counted twice otherwise. 2012-12-15 02:27:36 -08:00
Jürg Lehni
16578e6b15 Clean up code. 2012-12-15 02:24:46 -08:00
Jürg Lehni
a690aa48c1 Inline applyTransform() code, since it's so little code now. 2012-12-15 02:22:25 -08:00
Jürg Lehni
a677e905bf Simplify applyTransform() in SvgImport. 2012-12-15 02:21:03 -08:00
Jürg Lehni
d280d65f82 Fix issues with exporting SVG matrices when they can be resolved to simple rotate / scale / translate statements. 2012-12-15 02:20:37 -08:00
Jürg Lehni
a36d244eb1 Handle impression in Curve#getCrossings(), causing wrong results when handling circles. 2012-12-15 01:52:23 -08:00
Jürg Lehni
9a7f72e163 Clean up getBounds code a bit, by using less local variables and more explicit variable names. 2012-12-14 21:40:25 -08:00
Jürg Lehni
2061cb0517 Fix Path#contains() for unclosed paths that have a fill color. 2012-12-14 21:39:47 -08:00
Jürg Lehni
589d4e6e73 Handle exporting of empty paths. 2012-12-09 18:04:56 -08:00
Jürg Lehni
9d8bf12028 Never return null from #getBounds. 2012-12-09 18:00:23 -08:00
Jürg Lehni
c49a0c6ad4 Check if SVG nodes could be converted before adding them as children. 2012-12-09 16:53:52 -08:00
Jürg Lehni
86a1a17b8d Fix matrix exporting for groups, which ignore x / y attributes for positioning. 2012-12-09 15:46:21 -08:00
Jürg Lehni
62c7bb804b Add comment about caching _css values. 2012-12-08 20:12:36 -08:00
Jürg Lehni
68dc7e8b12 Correctly fix SVG alpha support through opacity attributes. 2012-12-08 20:09:24 -08:00
Jürg Lehni
14e6edb8ee Fix #toString() for event objects. 2012-12-08 19:57:04 -08:00
Jürg Lehni
92e9bb2a6a Change item based onFrame handlers to have their own time and frame counters. 2012-12-03 10:04:10 -08:00
Jürg Lehni
cf5853c8cc Improve handling of item based onFrame handlers, by moving functionality to View and removing handlers properly when the view is destroyed. 2012-12-03 09:53:47 -08:00
Jürg Lehni
5b56bd7fbf Fix item-based onFrame handlers so they can be removed again properly. 2012-12-03 08:49:49 -08:00
Jürg Lehni
a3a7545cb0 Only resize image rasters if the new size is different from the old. 2012-12-02 21:13:03 -08:00
Jürg Lehni
50f810a1ad Remove onLoad workaround, and use #attach('load') instead of #onLoad internally. 2012-12-02 21:08:57 -08:00
Jürg Lehni
523f5c1789 Avoid multiple triggering of Raster.onLoad() on cached rasters. 2012-12-02 21:05:40 -08:00
Jürg Lehni
cdfd1f596a Fix some comments. 2012-12-02 19:47:25 -08:00
Jonathan Puckey
9727874aa2 SVG Importer: implement initial support for importing of images. 2012-12-02 19:42:22 +01:00
Jürg Lehni
86d3a3521b Avoid rgba() colors in SVG output since it's not part of SVG 1.1
Use fill- / stroke-opacity instead.
2012-12-01 12:44:54 -08:00
Jürg Lehni
f1abdccf85 Result of getAlpha() is always defined. 2012-12-01 12:34:45 -08:00
Jürg Lehni
f268c6e152 Rename Color#toCssString() to #toCss(), and only include alpha if its < 1. 2012-12-01 12:31:22 -08:00
Jürg Lehni
d16155f4fe Fix CompoundPath#clone() so that it does not alter the #clockwise state on its children. 2012-12-01 11:31:03 -08:00
Jürg Lehni
f14b685c1d Use #_type comparisson rather than slower instanceof operator wherever we can. 2012-12-01 11:17:09 -08:00
Jürg Lehni
ace1d0f441 No need to set _clockwise since #reverse() already does so. 2012-12-01 11:10:59 -08:00
Jürg Lehni
f90ceb06b3 Simplify code that checks for the need of opacity buffering a bit. 2012-12-01 11:06:23 -08:00
Jürg Lehni
d0cc8b6c16 Fix issue with hit-testing filled paths that are not closed. 2012-11-28 22:13:31 -08:00
Jürg Lehni
07688a685e Switch back from using 'x' in obj to obj.x != null in basic type constructors, since 'x' in <primitive type value> would throw an exception. 2012-11-28 22:09:09 -08:00
Jonathan Puckey
d45a4ce8ad SVG Import: inline variable value. 2012-11-28 21:40:48 +01:00
Jonathan Puckey
808073fa63 SVG Importer: add support for stroke-opacity and fill-opacity. 2012-11-28 20:50:27 +01:00
Jürg Lehni
9ff39eb603 Define Color.random() similar to Point.random(). 2012-11-27 17:35:03 -08:00
Jürg Lehni
398ee1a338 Redraw view once Raster has finished loading. 2012-11-27 14:12:34 -08:00
Jürg Lehni
4d51173881 Keep Path#curves in sync properly when removing the last segment of an open path.
Closes #138.
2012-11-23 13:58:13 -08:00
Jonathan Puckey
e073cafd2c Implement PointText#drawSelected. Closes #127. 2012-11-23 21:49:07 +01:00
Jürg Lehni
906faf7956 Improve handling of nested matrices in hit-testing.
Closes #134.
2012-11-23 12:41:00 -08:00
Jonathan Puckey
157a59d315 Merge branch 'master' of https://github.com/paperjs/paper.js 2012-11-23 21:21:20 +01:00
Jonathan Puckey
4c409b37fb Merge pull request #135 from 0/layer-insert-below
Fix insertBelow for Layer items
2012-11-23 12:05:11 -08:00
Jonathan Puckey
151f7026e1 Fix mistake in previous commit. 2012-11-23 20:55:46 +01:00
Jonathan Puckey
43b3ac6beb Optimize PlacedSymbol#_hitTest a bit.
Use faster Point#_transformPoint function to transform point.
2012-11-23 20:48:34 +01:00
Jonathan Puckey
e835ccf786 Remove accidentally committed logging statement. 2012-11-23 20:43:28 +01:00
Jonathan Puckey
90e475b5f9 Support hit-testing of placed-symbols and add test. Closes #131. 2012-11-23 20:29:36 +01:00
Jürg Lehni
61b6026361 Rename CompoundPath#flatten() to #reduce(), to avoid clash with Path#flatten(). 2012-11-23 01:16:21 -08:00
Jonathan Puckey
1f5af06e74 Merge pull request #136 from bfirsh/leaky-globals
Fixed a bunch of leaking globals
2012-11-22 11:43:41 -08:00
Jürg Lehni
7fe8e3c918 Handle null nodes. 2012-11-21 12:17:01 -08:00
Jürg Lehni
373474d088 Implement loading Rasters from external sources and notify using a 'load' callback. 2012-11-21 10:39:26 -08:00
Jürg Lehni
1e744e3db7 Handle case where no project is created through execution errors. 2012-11-21 10:38:54 -08:00
Jürg Lehni
900f3fe2dd Have ToolEvent#item fallback to returning null, not undefined. 2012-11-21 10:38:29 -08:00
Ben Firshman
8ca26f650a Fixed leaky _handle2 2012-11-20 15:53:31 +00:00
Ben Firshman
73d6c102a6 Fix k leaking into globals 2012-11-20 15:53:04 +00:00
Ben Firshman
dc1161b32a Fix fullLength leaking into globals 2012-11-20 15:53:03 +00:00
Dmitri Iouchtchenko
ae7e6ee6b3 Fix insertBelow for Layer objects 2012-11-19 23:41:04 -05:00
Jürg Lehni
302f23bc5a Update Acorn.js and use it now by default, thanks to Marijn's fast bugfix:
https://github.com/marijnh/acorn/issues/14
2012-11-18 12:25:37 -08:00
Jürg Lehni
b977e18e3b No need to throw operator exceptions since we're checking for their existence in the parsing. 2012-11-18 10:13:50 -08:00
Jürg Lehni
34819e6a73 Switch to using Mozilla's standardized AST model for PaperScript parsing though Acorn.js or Esprima.js and their support for ranges.
No more AST mingling but direct code modification means we're finally getting accurate error messages! Sticking to Esprima for now since Acorn still has some issues with ranges: https://github.com/marijnh/acorn/issues/14
2012-11-18 10:06:16 -08:00
Jürg Lehni
81257a28ec Have item actually nested inside table cell. 2012-11-14 21:16:33 -08:00
Jürg Lehni
61c37f0858 Improve component type guessing. 2012-11-14 18:34:27 -08:00
Jürg Lehni
532a94369e Fix a couple of code typos. 2012-11-14 18:30:33 -08:00
Jürg Lehni
bd8dc0c3de Fix bug when values do not have associated components. 2012-11-14 18:30:22 -08:00
Jürg Lehni
5097bf37ff Fix small newly introduced bug. 2012-11-14 12:56:13 -08:00
Jürg Lehni
4945a45a99 Further simplify Palette code: Directly link values to components, without a private values list, and improve values conversion. 2012-11-14 12:49:03 -08:00
Jürg Lehni
01c936e1b9 Also consider palette component's initial values. 2012-11-14 12:30:13 -08:00
Jürg Lehni
74bce39184 Make sure private values are initialized correctly. 2012-11-14 12:10:39 -08:00
Jürg Lehni
72d64be5e6 Remove unnecessary window reference. 2012-11-14 12:07:08 -08:00
Jürg Lehni
fbe8095d1b Define missing DomElement.remove(). 2012-11-14 12:06:53 -08:00
Jürg Lehni
a646f922d4 Convert values of numeric items to numbers. 2012-11-14 12:06:41 -08:00
Jürg Lehni
26e3090b40 Actually update linked palette values when input items change. 2012-11-14 12:06:06 -08:00
Jürg Lehni
3fe936addf Expose Palettes through PaperScope#palettes. 2012-11-14 12:05:36 -08:00
Jürg Lehni
405198f94d Implement Component#label and Palette#remove(). 2012-11-14 12:05:12 -08:00
Jürg Lehni
0b919d0907 Rename Palette classes. 2012-11-14 10:56:32 -08:00
Jürg Lehni
b122a85512 Make Palette#reset() work. 2012-11-14 10:02:16 -08:00
Jürg Lehni
926e5d0b3a Clean up code. 2012-11-14 10:02:07 -08:00
Jürg Lehni
550d43ae0b Check in first version of Scriptographer-style Palette / Component GUI code, including a basic example.
It kinda works already!
2012-11-14 01:35:34 -08:00
Jürg Lehni
9a180b5377 More work on micro DOM library. 2012-11-14 01:31:49 -08:00
Jürg Lehni
c4a66cff0a Support more than one argument in Callback#fire(). 2012-11-14 01:31:34 -08:00
Jürg Lehni
d671a08205 Introduce Base.toFloat() and rename Base.formatNumber() to Base.formatFloat() 2012-11-14 01:31:08 -08:00
Jürg Lehni
a7320cf2e2 Implement new DomElement micro lib, supporting creation of elements, getting and setting of style, content, and events, in an elegant fashion. 2012-11-13 22:58:03 -08:00
Jürg Lehni
e6c59672ac Update camelize() and hyphenate() to simpler versions. 2012-11-10 22:24:50 -08:00
Jürg Lehni
f871430018 Use 'in' operator instead of typeof checks in basic type constructors. 2012-11-10 16:32:37 -08:00
Jürg Lehni
92eb89fc43 Clean up and shorten code. 2012-11-10 15:48:15 -08:00
Jürg Lehni
86609103fc Allow rectangles to be created from arrays too. 2012-11-10 15:45:23 -08:00
Jürg Lehni
af66bccb64 SvgImporter: Simplify creation of clip group.
No need to move group into place in DOM, since we're returning it instead of item.
2012-11-10 15:05:13 -08:00
Jürg Lehni
6475d61c89 SvgImporter: Fix issue with importText(). 2012-11-10 11:30:34 -08:00
Jürg Lehni
9f6e43454a Make sure items produced outside of importSvg() are inserted in the same place inside the DOM. 2012-11-10 11:28:00 -08:00
Jürg Lehni
dad30d15ec Shorten code a bit. 2012-11-10 11:27:09 -08:00
Jürg Lehni
5489f7f496 Switch back to using allowNull for gradient highlight, now that it works. 2012-11-10 11:20:25 -08:00
Jürg Lehni
d929c3177c SvgImporter: Streamline getValue() helper, and clean up some code depending on it. 2012-11-10 11:19:06 -08:00
Jonathan Puckey
116e782f33 Svg Importer: fix handling of highlight point of radial gradients. 2012-11-10 16:20:59 +01:00
Jonathan Puckey
a86340c088 Svg Importer: clone or place depending on the type 2012-11-10 16:05:47 +01:00
Jonathan Puckey
69b84616ed Svg Importer: more work on symbols and viewboxes. 2012-11-10 15:56:56 +01:00
Jonathan Puckey
81799b9042 SvgImporter: cleanup getValue. 2012-11-10 15:56:12 +01:00
Jonathan Puckey
9adebea69c SvgImporter: getValue: fall back to using getAttribute. 2012-11-10 15:55:09 +01:00
Jonathan Puckey
661afca98f Svg Importer: getValue: make sure the attribute exists first. 2012-11-10 15:45:11 +01:00
Jonathan Puckey
30f63599f1 Merge branch 'master' of https://github.com/paperjs/paper.js 2012-11-10 11:20:07 +01:00
Jürg Lehni
e6913e0013 Shorten importGradient() code. 2012-11-08 15:08:06 -08:00
Jürg Lehni
203c9b16ca Remove need for svg.getAttribute('fx') check. 2012-11-08 15:01:32 -08:00
Jürg Lehni
61c8f76309 Move all import function references to the top of importers list. 2012-11-08 15:01:13 -08:00
Jürg Lehni
df76e0feb8 SvgImporter: Replace SVG getter functions with their more explicit direct calls. 2012-11-08 09:47:07 -08:00
Jürg Lehni
0da2baa617 Prefer String#substring() over #substr().
Using both in the lib seems confusing.
2012-11-08 09:42:51 -08:00
Jürg Lehni
1376d75e61 SvgImporter: Shorten percentage code. 2012-11-08 09:41:58 -08:00
Jürg Lehni
b04f852667 Rename convertStringTo() to convertValue(), and add missing break statement. 2012-11-08 09:38:42 -08:00
Jonathan Puckey
126a631200 SVG Importer: remove handling of default value for path fill color for now. 2012-11-08 18:27:35 +01:00
Jonathan Puckey
56c90839ab SVG Importer: fillcolor of path items should default to black. 2012-11-08 18:02:38 +01:00
Jonathan Puckey
485bc83b65 SVG Importer: ignore viewBox for svg element for now. 2012-11-08 17:48:21 +01:00
Jonathan Puckey
a1e38ee52e SVG Importer: implement initial support for viewBox attributes. 2012-11-08 17:32:07 +01:00
Jonathan Puckey
24ecf7840e SVG Importer: move string conversion code into seperate convertStringTo function for reuse. 2012-11-08 17:31:23 +01:00
Jonathan Puckey
f92e842644 SVG Importer: more work on Symbol importing. 2012-11-08 17:22:32 +01:00
Jonathan Puckey
2cc56c767e SVG Importer: remove todo. 2012-11-08 15:55:50 +01:00
Jonathan Puckey
71d3cca2d8 SVG Importer: support percentage values for gradient stop offset. 2012-11-08 15:55:24 +01:00
Jonathan Puckey
b7c50a16d1 SvgImporter: Various cleanups and improvements. 2012-11-08 14:32:09 +01:00
Jonathan Puckey
494874ec8f Svg Importer: Fix handling of getDefinition for color values. 2012-11-08 14:29:48 +01:00
Jonathan Puckey
6bbc78eaef SVG Importer: initial support for gradients and gradient examples. 2012-11-07 19:32:35 +01:00
Jonathan Puckey
b7486a7e4d SvgImport: Fix typo. 2012-11-07 17:28:09 +01:00
Jonathan Puckey
9e00a6282f SVG Importer: Add support for 'use' element. 2012-11-07 17:21:35 +01:00
Jonathan Puckey
c704d285f2 SVG Importer: Use importGroup to import defs. 2012-11-07 17:21:02 +01:00
Jürg Lehni
d5a9a48db3 Also expose space bar state through Event#modifiers. 2012-11-07 01:02:48 -08:00
Jürg Lehni
0e22430993 Only set opacity and visibility when they differ from the defaults. 2012-11-07 01:02:28 -08:00
Jürg Lehni
01342fa073 Implement onActivate() onDeactivate() handlers on Tool, and remove onSelect() / onDeselect() which never worked. 2012-11-07 01:02:09 -08:00
Jürg Lehni
e9a9066d7f Use group creation without explicit array declaration, as that's been supported all along. 2012-11-06 20:37:50 -08:00
Jürg Lehni
b1c24e2762 Improve importGroup() code a bit by directly filling an Item instead of an array first. 2012-11-06 20:28:20 -08:00
Jürg Lehni
1cb6a7fc3c Clean up Path#smooth() code a bit. 2012-11-06 20:18:59 -08:00
Jürg Lehni
f110038104 Improve clipping mask drawing, and remove some unneeded ctx.save() / ctx.restore() calls. 2012-11-06 20:14:21 -08:00
Jürg Lehni
1581d44c06 Have newly created group parent in applyAttribute() propagate back up. 2012-11-06 20:13:29 -08:00
Jürg Lehni
b6ca26092f SvgImporter: Do not add defs to the DOM. 2012-11-06 20:12:25 -08:00
Jürg Lehni
6d69c86962 Unbox CompoundPaths first when adding to clipping CompoundPaths, as CompoundPaths cannot be nested. 2012-11-06 18:38:09 -08:00
Jürg Lehni
53a8099403 Avoid division with almost zero. 2012-11-06 14:02:07 -08:00
Jürg Lehni
4b6207bdb6 Do not allow adding of items other than paths to CompoundPath. 2012-11-06 14:01:52 -08:00
Jürg Lehni
4e1db6a1d1 Fix a row of documentation issues. 2012-11-06 13:35:50 -08:00
Jürg Lehni
7a0752eb11 No need for private exportItem() / exportProject() functions. 2012-11-06 13:14:39 -08:00
Jürg Lehni
142bf28a70 Convert SvgExporter / SvgImporter code to function scopes that only expose functionality through methods on Item and Project. 2012-11-06 13:07:18 -08:00
Jürg Lehni
88e6ac09d7 Add methods to Item and Project to directly use SvgImporter / Exporter functionality. 2012-11-06 12:49:12 -08:00
Jürg Lehni
c70948c762 Return the inserted item in #addChild() & co, instead of true / false. 2012-11-06 12:44:02 -08:00
Jürg Lehni
28642bd1c8 Rename Path.Oval() to Path.Ellipse(), and deprecate Path.Oval(). 2012-11-06 11:37:00 -08:00
Jürg Lehni
e26197cf1f Optimise loops. 2012-11-06 11:28:50 -08:00
Jürg Lehni
16de863aa5 SvgExporter: Some more work on determineAngle(). 2012-11-06 11:26:00 -08:00
Jürg Lehni
4c463eb1f1 SvgExporter: Some more code shortening. 2012-11-06 11:19:54 -08:00
Jürg Lehni
cd924f066e SvgImporter: Reverse parameter sequence. 2012-11-06 11:14:08 -08:00
Jürg Lehni
eb0fb99b12 SvgExporter: Fix matrix conversion to rotate() command. 2012-11-06 11:06:53 -08:00
Jürg Lehni
00f710b599 SvgExporter: Rearrange code sequence. 2012-11-06 11:00:58 -08:00
Jürg Lehni
b24ee0de66 Document isColinear() and isArc(). 2012-11-06 10:55:53 -08:00
Jürg Lehni
7dc453b58b No need to escape ) inside [] in regular expressions. 2012-11-06 10:52:03 -08:00
Jürg Lehni
19fe762e10 SvgImporter: Rename all attributes and styles related functions to use shorter names. 2012-11-06 10:49:34 -08:00
Jürg Lehni
e26b56f88e SvgImporter: Further optimise style parsing. 2012-11-06 10:43:32 -08:00
Jürg Lehni
dd3a242ee1 SvgImporter: Improve 'none' style handling, and shorten code. 2012-11-06 10:37:03 -08:00
Jürg Lehni
7b32e611b7 Use SVG type to determine Group constructor, not a function factory. 2012-11-06 10:29:14 -08:00
Jürg Lehni
09e845cfd1 SvgImporter: Move importPath() to its own function and restructure importer sequence. 2012-11-06 10:28:34 -08:00
Jürg Lehni
fd8fe9c08e Rename CompoundPath#simplify() to #flatten() to avoid clashes with Path#simplify(), and add Path#flatten(), returning itself. 2012-11-06 10:16:03 -08:00
Jürg Lehni
d9bfc2fa35 Implement Matrix support in SvgExporter. 2012-11-06 10:04:04 -08:00
Jürg Lehni
a6b8201cf4 Minor clean-ups. 2012-11-06 10:04:04 -08:00
Jonathan Puckey
d1eb09176f SVGImporter: add support for clip-path. 2012-11-06 18:14:17 +01:00
Jonathan Puckey
9f3a0fc002 SVGImporter: fix importing of visibility attribute. 2012-11-06 18:12:55 +01:00
Jonathan Puckey
f825969570 SVGImporter: add comments linking to the SVG specification. 2012-11-06 18:11:54 +01:00
Jonathan Puckey
bda7c71fcb Fix problem when calling new Group([]). 2012-11-06 18:07:51 +01:00
Jonathan Puckey
33c13b36a3 Fix drawing of groups where a compound path is used as a clip mask. 2012-11-06 18:07:51 +01:00
Jürg Lehni
88a7fcc92b Convert null to 'none' as style values. 2012-11-06 08:22:22 -08:00
Jürg Lehni
9ad0cb5d63 Implement roundrect conversion properly. 2012-11-06 08:02:46 -08:00
Jürg Lehni
18b6ad4907 Simplify roundrect detection since we assume the same point sequence always. 2012-11-06 07:52:45 -08:00
Jürg Lehni
40390f8309 Make drawCurve() a private function of drawPath(). 2012-11-06 07:49:31 -08:00
Jürg Lehni
3c14b3042b Remove isOrthogonal() as we don't use it anymore. 2012-11-06 07:47:31 -08:00
Jürg Lehni
7acd82b3f5 More work on primitive shape detection.
Implement roundrect properly.
2012-11-06 07:46:59 -08:00
Jürg Lehni
dbdf75c998 Make new drawPath() code actually work. 2012-11-06 07:31:29 -08:00
Jürg Lehni
b354e01f49 Move Base.equals() to Base extension, where it belongs. 2012-11-06 07:19:04 -08:00
Jürg Lehni
1fad063a30 Revert to version without optional digits, for speed reasons.
Since we don't actually use the other version anywhere.
2012-11-06 07:17:14 -08:00
Jürg Lehni
aa35226916 No need for two parameter version of formatPoint(). 2012-11-06 07:16:25 -08:00
Jürg Lehni
ab633f15ac Add optional digits precision to Base.formatNumber, default to 5. 2012-11-06 07:15:01 -08:00
Jürg Lehni
345309867e Implement number formating in SvgExporter, and further simplify drawPath(). 2012-11-06 07:14:11 -08:00
Jürg Lehni
4c51544b6e Implement correct checks for primitives (rect, ellipse, circle). 2012-11-06 01:22:16 -08:00
Jürg Lehni
a6d19ac681 More work on SvgExporter code. 2012-11-05 23:45:23 -08:00
Jürg Lehni
ad76e65119 Further optimise determination of rotation and start implementing rotating of primitives. 2012-11-05 23:27:02 -08:00
Jürg Lehni
a5cdb5492c Optimise Point#rotate(0) 2012-11-05 23:23:25 -08:00
Jürg Lehni
fe4da8e7a4 Embed determineIfTransformed() code into exportPath(). 2012-11-05 21:24:01 -08:00
Jürg Lehni
ce5ee2dae8 Simplify exportPath(). 2012-11-05 21:19:53 -08:00
Jürg Lehni
ab014c3328 Clean up determineType() and roundrect code. 2012-11-05 21:16:36 -08:00
Jürg Lehni
64b9daacd0 Code clean-up. 2012-11-05 21:06:56 -08:00
Jürg Lehni
6e0f29bf4a Rename Path#closed getter to #isClosed() instead of #getClosed(). 2012-11-05 21:06:47 -08:00
Jürg Lehni
400b454177 Introduce Numerical.isZero(), for comparisons against 0 with a tolerance. 2012-11-05 21:06:13 -08:00
Jürg Lehni
125fa1c051 Split SVG exporters apart more, and organise code better. 2012-11-05 20:50:31 -08:00
Jürg Lehni
f576ca3e9e More SvgExporter simplifications. 2012-11-05 20:31:45 -08:00
Jürg Lehni
5a061da4e3 Introduce private getDistance() function for shorter code. 2012-11-05 20:10:31 -08:00
Jürg Lehni
7511511ec7 More SVG path code simplifications. 2012-11-05 20:06:54 -08:00
Jürg Lehni
a9a14fb458 More work on SVG path commands. 2012-11-05 20:03:03 -08:00
Jürg Lehni
d3d74fb513 Further simplify SvgExporter code. 2012-11-05 19:56:49 -08:00
Jürg Lehni
37f87a3c03 Some minor clean-ups in importer. 2012-11-05 19:48:00 -08:00
Jürg Lehni
b559f6e4f3 Merge polyline and polygon code. 2012-11-05 19:47:47 -08:00
Jürg Lehni
2c17ff7831 Directly access private properties rather than using getters. 2012-11-05 19:45:18 -08:00
Jürg Lehni
a0a04a0bc1 Remove separate point, handleIn and handleOut arrays and just use segments instead. 2012-11-05 19:44:23 -08:00
Jürg Lehni
4c93ce546a There is no font attribute on Path#style. 2012-11-05 19:32:39 -08:00
Jürg Lehni
6211bc7ed6 More work on SvgStyles. 2012-11-05 19:26:54 -08:00
Jürg Lehni
03b94a92b5 More work on style meta-data, and fix yet another default style issue. 2012-11-05 19:03:42 -08:00
Jürg Lehni
07ce57c456 Implement SvgStyles as meta information about style-attribute mappings for both Svg Importer and Exporter. 2012-11-05 18:58:16 -08:00
Jürg Lehni
3714cd8706 Fix typo. 2012-11-05 18:27:50 -08:00
Jürg Lehni
05bf52b6af Minor tweaks in SvgImporter code. 2012-11-05 18:27:13 -08:00
Jürg Lehni
f6c7143920 Implement constant substitution for SVG constants. 2012-11-05 18:26:29 -08:00
Jürg Lehni
35568c15f2 Implement transparent constant-substitution in prepro.js to shave of some extra bytes of final distribution file. 2012-11-05 18:11:44 -08:00
Jürg Lehni
65f1e5c66d Improve style handling in SvgExporter. 2012-11-05 09:05:32 -08:00
Jürg Lehni
61531949b0 Rework horizontal / vertical lineto command code a bit. 2012-11-05 08:54:10 -08:00
Jonathan Puckey
6f19f64233 SvgImporter: fix support for vertical and horizontal lineTo commands. 2012-11-05 16:16:36 +01:00
Jürg Lehni
973211bbe2 Improve style handling in SvgExporter.
Work in progress, with some regressions for now.
2012-11-04 09:01:11 -08:00
Jürg Lehni
b979c3b362 Define Base.equals(), supporting Arrays and Objects.
And use it for style comparisons.
2012-11-04 09:00:40 -08:00
Jürg Lehni
0eaabd667c Further clean up exporter code. 2012-11-04 00:09:44 -07:00
Jürg Lehni
e2cf7e1ace Use Path#isPolygon() in SvgExporter. 2012-11-04 00:04:15 -07:00
Jürg Lehni
1050e3314e Implement Segment#isLinear() and Path#isPolygon(). 2012-11-04 00:03:49 -07:00
Jürg Lehni
5577e7e1ee Start restructuring SvgExporter, similar to SvgImporter. 2012-11-03 23:43:45 -07:00
Jürg Lehni
19d145f281 Introduce Item#type, returning a simple item type string identifier. 2012-11-03 23:43:18 -07:00
Jürg Lehni
6ed1d67ada Modernize Bootstrap.js, introduce Base.create() and use it instead of the Constructor.dont hack for object creation without the calling of initialize. 2012-11-03 21:49:37 -07:00
Jürg Lehni
420e62e1dc Simplify compound path support in SvgImporter a little. 2012-11-03 19:45:19 -07:00
Jürg Lehni
07c0b6ce6a Improve Path#moveTo behavior()
Allowing it to be called multiple times before any other drawing commands.
2012-11-03 19:45:02 -07:00
Jürg Lehni
76dab534a9 Add half-assed support for fill-opacity / stroke-opacity. 2012-11-03 19:28:18 -07:00
Jonathan Puckey
b0a82fdc06 SvgImporter: Fix importing of compound-paths. 2012-11-03 22:38:36 +01:00
Jürg Lehni
ddddd499ca Avoid name-clash with recently renamed variable. 2012-11-02 22:57:19 -07:00
Jürg Lehni
93372da384 Further shorten code. 2012-11-02 22:57:06 -07:00
Jürg Lehni
57103545cb Rename some variables. 2012-11-02 22:53:33 -07:00
Jürg Lehni
c755eba0c2 Switch to using Base.camelize(). 2012-11-02 22:53:24 -07:00
Jürg Lehni
4cd6d6f230 Add support for conversion of text-anchor to justification. 2012-11-02 21:11:30 -07:00
Jürg Lehni
81f8c32d7b Replace SVGTransform constants with their numeric values as well. 2012-11-02 20:21:08 -07:00
Jürg Lehni
9fbe1260b2 Comment out ARC code for now. 2012-11-02 20:11:40 -07:00
Jürg Lehni
964eb521ee Clean up and Streamline path importer.
Replacing SVGPathSeg constants with numeric values should reduce code quite a bit.
2012-11-02 20:09:12 -07:00
Jürg Lehni
d600536390 Shorten applyTransform(). 2012-11-02 19:39:59 -07:00
Jürg Lehni
99a39bebc3 Clean up applyAttributeOrStyle().
Do not use style properties directly, but setters instead.
2012-11-02 19:26:15 -07:00
Jürg Lehni
118a02bf05 Restructure SVGImporter code a bit. 2012-11-02 19:16:23 -07:00
Jürg Lehni
d52fff7425 Shorten importAttributesAndStyles() 2012-11-02 19:11:28 -07:00
Jürg Lehni
8790bc5533 Improve loops. 2012-11-02 19:11:16 -07:00
Jürg Lehni
905d1106d4 Fix SVGImporter tests for all polygon related code.
#length was used instead of #numberOfItems.
2012-11-02 19:10:58 -07:00
Jürg Lehni
6937d4c3be Fix index lookup in getValue(). 2012-11-02 19:05:21 -07:00
Jürg Lehni
3c88614a86 Heavily shorten SvgImporter code by introducing a couple of helpers. 2012-11-02 19:04:29 -07:00
Jürg Lehni
95b9b81c81 Refactor SvgImporter to new structure using real private functions and importers lookup-table. 2012-11-02 18:40:41 -07:00
Jürg Lehni
ebadef8b1d A couple of smaller changes. 2012-11-02 18:23:37 -07:00
Jürg Lehni
cc503cb149 Rename fake 'roundRect' type to 'roundrect'. 2012-11-02 18:23:23 -07:00
Jürg Lehni
c2ac16a481 Change for-loops format. 2012-11-02 18:22:38 -07:00
Jürg Lehni
b284a42a56 Rework SvgExporter. _determineType. A lot more work needs to be done... 2012-11-02 18:22:01 -07:00
Jürg Lehni
086334773e Rework and improve SVG documentation and remove too obvious docs for hidden functions. 2012-11-02 18:14:20 -07:00
Jürg Lehni
204eaa9dcc Fix white-spaces in comments. 2012-11-02 17:47:14 -07:00
Jürg Lehni
1ce332756e Rename ImportSvg to SvgImporter, and ExportSvg to SvgExporter. 2012-11-02 17:40:07 -07:00
Jürg Lehni
ab02023adf Do not create extra points when asked to produce a round rectangle with no radius. 2012-11-02 17:04:21 -07:00
Jürg Lehni
80315e3e52 More SVG refactoring: Fix comments, documentation, and for-in loops. 2012-11-02 16:51:42 -07:00
Jürg Lehni
88dff19f73 Define squared parameter in Point#getDistance() as optional. 2012-11-02 16:45:46 -07:00
Jürg Lehni
b22ff5ecca Revert a recent change in selection handling. 2012-11-02 16:27:59 -07:00
Jürg Lehni
69dc8be629 Switch from using classes to object literals for SVG exporter / importer. 2012-11-02 16:19:45 -07:00
Jürg Lehni
ee65ee1026 Clean up and improve PaperScript code a bit. 2012-11-02 15:58:41 -07:00
Jürg Lehni
04df1a0d4a Always set canvas size, to avoid zooming pixels if size is set to a percentage. 2012-10-31 09:49:42 -07:00
Jürg Lehni
bdb74b67e2 Define #isActive() for PaperScopeItems. 2012-10-30 11:43:40 -07:00
Jürg Lehni
96e1765e4f Do not implicitly use getTool() getter since it creates tools when none exists. 2012-10-30 11:43:06 -07:00
Jürg Lehni
155b6046cb Some more SVG code refactoring. 2012-10-27 19:25:52 -07:00
Jürg Lehni
44fc5939e5 Simplify name-space element creation in SVG module. 2012-10-24 20:21:59 -07:00
Jürg Lehni
4a74cf9e29 Improve Paper code editor to also display errors. 2012-10-23 20:05:01 -07:00
Jürg Lehni
7096b37b2e Change the way canvases get temporarily focused when there is more than one and the mouse is outside all of them.
Closes #115.
2012-10-22 18:03:57 -07:00
Jürg Lehni
20797b8cc3 Avoid name clash between View._handlers and Callback._handlers that keeps track of installed handlers.
Closes #109.
2012-10-22 17:38:40 -07:00
Jürg Lehni
46de04d29d Properly rename SVG files.
Case-insensitive file system – an endless source of pain.
2012-10-22 17:31:11 -07:00
Jürg Lehni
d4a60fb62a More SVG code refactoring.
Follow coding conventions and fix some forgotten renamings.
2012-10-22 16:31:08 -07:00
Jürg Lehni
160095d6e3 Rename SVG to Svg to follow naming convention. 2012-10-22 19:17:11 -04:00
Jürg Lehni
6b50641c18 Add documentation for Item#_getChildren(). 2012-10-22 19:07:22 -04:00
Jürg Lehni
659b431404 Merge branch 'refs/heads/Stetson-Team-Alpha-master' 2012-10-22 18:56:50 -04:00
Jürg Lehni
f6f80e4061 Implement CompoundPath#contains() and #hitTest() correctly.
And change the way that styles are stored on CompoundPaths: Not in the first child but in the item itself.
2012-10-22 18:48:51 -04:00
Jürg Lehni
f73717a7e7 Fix issues in Numerical.solveQuadratic(), solveCubic() and Path#contains().
Closes #71.
2012-10-22 18:21:33 -04:00
Jürg Lehni
63640cad03 Fix issue with hit-testing of translated rasters and other items.
Use the untransformed point in the initial bounds check. Closes #45, #86.
2012-10-20 16:54:39 -04:00
Jürg Lehni
317fcf5432 Only include strokeWidth in roughBounds if a strokeColor is actually set. 2012-10-20 16:01:53 -04:00
Jürg Lehni
3b50b3534f Merge branch 'master' of https://github.com/Stetson-Team-Alpha/paper.js into Stetson-Team-Alpha-master
Conflicts:
	build/jsdoc-toolkit
	dist/paper.js
2012-10-19 09:39:36 -04:00
Jürg Lehni
f87eadecda Correct default value for clockwise in arcTo(). 2012-10-19 09:18:10 -04:00
Jürg Lehni
6441a682a8 Fix new error in quadraticCurveTo().
We don't seem to have test-cases for these yet.
2012-10-18 14:29:53 -07:00
Jürg Lehni
30374ae3b4 Implement proper index independent argument list reading of basic types.
Implemented for Point, Size, Rectangle and Color.
2012-10-18 14:24:15 -07:00
Jürg Lehni
6f2ff18fa1 Bring back fallback scenario in Point#initialize(). 2012-10-15 17:13:20 -07:00
Jürg Lehni
db93544e8c Restructure Point#initialize() to reflect new findings regarding typeof performance.
typeof val === 'undefined' is way faster than val === undefined.
2012-10-15 17:11:11 -07:00
Jürg Lehni
44ad4d885a Update link to Kaspar Fischer's PDF with new URL. 2012-10-15 15:48:38 -07:00
Jürg Lehni
e17e94b50b Implement Item#isEmpty() for the various types.
And use it to tell #getBounds() when to ignore items.
2012-10-10 20:11:11 -07:00
Jürg Lehni
adb2ddc615 Fix CompoundPath#insertChild.
It was not returning success values and thus broke some tests.
2012-10-10 19:54:32 -07:00
Jürg Lehni
ef59ad2875 Improve selection handling and drawing for Path item.
In a way that makes more sense when building tools.
2012-10-10 19:33:42 -07:00
Jürg Lehni
7329f4ef77 Improve handling of owner referencing in colors.
Allow one owner per Color only and clone colors when setting color styles. Gradient can still have multiple GradientColor owners. Closes #124.
2012-10-10 19:27:14 -07:00
Jürg Lehni
4d1920ee8b Improve Base.read() to support cloning of objects that are already provided in the required type. 2012-10-10 19:26:00 -07:00
Jürg Lehni
523736d9e5 Handle view redraws correctly for all selection changes. 2012-10-08 23:12:43 -07:00
Jürg Lehni
ed9037deb1 Fix white-space. 2012-10-08 18:44:08 -07:00
Jürg Lehni
f75386e8fb No need to check _windowHandlers, as DomEvent.remove does the right thing either way. 2012-10-08 18:09:41 -07:00
Jürg Lehni
e9985a04a8 Merge branch 'master' of github.com:paperjs/paper.js 2012-10-08 18:06:27 -07:00
Jürg Lehni
08cb7c76ea Clean up resize handlers when removing resizing views.
Closes #121.
2012-10-08 18:05:44 -07:00
Jonathan Puckey
e3518c29b1 Fix issue where adding the children of one group to another using Item#insertChildren / Item#addChildren does not work.
This fixes #119. To avoid duplication I chose to call
Item#insertChildren from Item#addChildren.
2012-10-06 13:08:07 +02:00
Jürg Lehni
6b08d96c45 Fix issue where out handle was compared to the wrong segment point when drawing.
This should fix #106 but needs to be verified before we can close the bug.
2012-10-05 19:08:31 -07:00
Jürg Lehni
77296c4640 Update documentation a bit. 2012-10-05 16:09:15 -07:00
Jürg Lehni
b29995f376 Clean up code. 2012-09-30 19:50:42 -07:00
Jürg Lehni
c51f2a0d3b Remove unnecessary variable declarations. 2012-09-30 19:50:30 -07:00
Andrew
2508136602 Got rid of swp files 2012-09-30 21:17:02 -04:00
jaroles
981f113652 Update src/svg/ExportSVG.js 2012-09-30 22:11:00 -03:00
skierons
a1bb8651a3 Update src/svg/ExportSVG.js 2012-09-30 19:05:21 -03:00
Andrew
c6c460519e Merging all the magic 2012-09-30 17:51:50 -04:00
Justin Ridgewell
f46c77c699 Reset files to stubs 2012-09-30 17:24:18 -04:00
Jürg Lehni
199d19a237 Minor code clean-up. 2012-09-30 14:09:59 -07:00
Jürg Lehni
59a55f7574 Merge branch 'master' of github.com:paperjs/paper.js 2012-09-30 14:08:44 -07:00
Jürg Lehni
2c5c4ae423 Improve documentation of Rectangle#intersects. 2012-09-30 14:08:02 -07:00
Jürg Lehni
99ac617ded Inject HitResults fields as enumerable, so the default #toString works, and avoid listing getColor. 2012-09-30 14:07:27 -07:00
Jürg Lehni
9e61995282 Handle parameter matching of beginning and ends of curves separately. 2012-09-30 14:06:31 -07:00
Jürg Lehni
93ba19f7e2 Define key-code for tab key. 2012-09-30 14:05:51 -07:00
Jürg Lehni
c3f051583c Remove unnecessary return statement.
This code can never be reached.
2012-09-30 14:05:34 -07:00
AWagenheim
205586bbbd Update src/svg/ImportSVG.js 2012-09-19 16:42:00 -03:00
AWagenheim
bd83a434ff Update src/svg/ImportSVG.js 2012-09-19 16:41:22 -03:00
AWagenheim
ed6007004a Update src/svg/ImportSVG.js 2012-09-18 22:12:28 -03:00
AWagenheim
555d179978 Added comments to ImportSVG.js 2012-09-18 21:11:01 -04:00
AWagenheim
ce7e0cd349 Added comments to ImportSVG.js 2012-09-18 21:08:04 -04:00
skierons
6c1c6bc2d5 Created an SVGRect.html to test exporting and modified SVGCircles.html for
easier testing.
2012-09-17 19:34:46 -04:00
jnighlight
67f7ece09e Added comments
Code should be easier to understand.
2012-09-17 01:30:51 -04:00
jnighlight
aca3ed67a2 Cleaned up ExportSVG for general purpose.
Removed all lines written for testing purposes, saved them in a text
document for possible future reference. Code should look a lot more clean
and linear with all the stuff removed.
2012-09-17 00:34:55 -04:00
skierons
b582e96d76 Made changes to SVGCircles to be able to have an easier time reading the
data from the circle. Also, made an SVGRect html to test rectangles. No
other changes than that. Still working on telling the types of points from
Paths that we make. The curveTo's and arcTo's are giving us the most
trouble. LineTo's are points with 0 values for the handles. Jacob will
clean up the code for the walkthrough tomorrow. There we can figure out
how to solve this problem and hopefully finish up the exportPath method.
2012-09-16 23:52:09 -04:00
jnighlight
f43abe2f32 Mostly more Experimenting, commiting it for practicing across computers.
Noticed that curveto and quadratic bezier curveto can be differentiated by
format of the handleIn/handleOut variables in each segment (we think) If
either handleIn.x and handleOut.x = 0 OR handleIn.y and handleOut.y = 0,
then that means the curve is a simple curveTo tag in SVG. If handleIn.x =
-handleOut.x AND handleIn.y = -handleOut.y, then you have a quadriatic
Bezier Curveto in SVG (using the Q tag). We *HOPE* and think that that
curveTo(through, to) (a method creating an arc that passes through the
"through" point and ends at the "to" point) simply creates 2 segments,
each with a handleIn and Out, which can be read and put into SVG
seperately, making our lives a lot easier. Created more SVG test files.
Made RGBConverter more efficient with another method to help reduce copied
lines of code.
2012-09-16 15:38:22 -04:00
Justin Ridgewell
76303bb756 Merge branch 'ImportSVG' 2012-09-16 01:15:37 -04:00
Justin Ridgewell
799d7cacf1 Merge branch 'master' of git://github.com/Stetson-Team-Alpha/paper.js 2012-09-16 01:12:09 -04:00
Justin Ridgewell
64f34e6dfd Add _importText 2012-09-16 01:02:23 -04:00
Justin Ridgewell
2952e01fc5 Change the import* functions to private 2012-09-16 01:02:00 -04:00
Justin Ridgewell
9218664a67 Remove the initialize function
I'm not using it for anything
2012-09-16 01:01:28 -04:00
skierons
2f5dcce61d Jacob and I added a bit to the exportPath class. The initialize function
was not working correctly and JT said he would fix that. So we initialized
svgObj in the function for the meantime. We added svgRect and svgPoint
objects for testing purposes to figure out the xml svg format. Recovered
points, strokecolor, fillcolor, and stroke width from the input path. The
last thing we need to do for extracting path data is to find the point
definitions for each point in the path. Waiting on response from head
coders to find out what type of path is passed in for simple conversions
(such as: Rectangle path, Circle path, etc.). We added a method called
RGBConverter to covnert colors into hexadecimal format for xml.
2012-09-16 00:13:14 -04:00
Justin Ridgewell
2ce23aacc2 Implement importSVG, importGroup, and importPath 2012-09-16 00:10:14 -04:00
Justin Ridgewell
8cf70ca6e1 Rename the create* functions to import*
Keeps in line with the naming of the other functions
2012-09-16 00:09:39 -04:00
Justin Ridgewell
edd8f67f8d Fix error
Shouldn't have two of these...
2012-09-16 00:09:02 -04:00
Justin Ridgewell
7879b4b61b Convert from 4 spaces to tabs
Oops. Paper.js uses tabs…
2012-09-15 23:58:39 -04:00
Justin Ridgewell
bbef9a9594 Add a few helper functions
These will convert directly from SVG objects to Paper.js equivalents.
2012-09-15 22:26:43 -04:00
Justin Ridgewell
8659c6b44c Reformat the code to match the rest of Paper.js 2012-09-15 22:25:19 -04:00
Justin Ridgewell
9f1d840ada Todos 2012-09-15 22:17:06 -04:00
Justin Ridgewell
d978520ba3 Reformat code to match the rest of Paper.js 2012-09-15 22:16:07 -04:00
Justin Ridgewell
24f0535bb6 Convert tabs to 4 spaces 2012-09-15 19:59:53 -04:00
Justin Ridgewell
1efd36c179 Strip trailing whitespace 2012-09-15 19:58:44 -04:00
Jt Whissel
1ccd5199b5 Added the new classes to work with, that also have the method stubs inside. 2012-09-13 20:45:27 -04:00
Jonathan Puckey
7247c1a5a2 Fix Node.js support. 2012-09-01 19:27:38 +02:00
Jonathan Puckey
2a0f322c22 Point#getLength: access to out of bounds index in arguments array prevented function from being optimized. 2012-07-25 20:02:04 +02:00
Jonathan Puckey
d20fb61c7c Cleanup code. 2012-04-25 20:47:53 +02:00
Jonathan Puckey
10ae88e90c Merge pull request #84 from luckyvoice/merge
_length cache in Curve is not updated when the Path is transformed
2012-04-25 11:38:31 -07:00
Carlo Alberto Ferraris
9e79231198 Remove trailing comma
Closure compiler chokes on it.
2012-04-09 10:28:09 +03:00
Oliver Beattie
457e96ac2b Remove unused delta variable from Item.fitBounds 2012-03-17 17:09:59 +00:00
Oliver Beattie
3c7563a3bf When a path is transformed, the _length cache of its Curves should be invalidated 2012-03-17 17:09:54 +00:00
Jonathan Puckey
08c02a66f1 Fix Item#insertAbove(item) & Item#insertBelow(item). Closes #81 2012-03-13 15:58:52 +01:00
Jonathan Puckey
31b5a0647e Add change tracking to Gradient & GradientStop. 2012-03-04 19:14:13 +01:00
Jonathan Puckey
d78103339d Make sure value exists. 2012-03-03 21:12:11 +01:00
Jonathan Puckey
4d21e219c0 Merge pull request #74 from jonobr1/patch-1
Based on logic, I think the else if statement means to refer to c1 rathe...
2012-03-02 03:30:25 -08:00
Jonathan Puckey
b0aa54bf56 Add missing ImageData relating functions to ProxyContext and fix problem where values weren't being returned. 2012-03-02 12:23:32 +01:00
Jonathan Puckey
2fff5b4f79 Group: fix clipping. Fixes #66 2012-03-02 11:54:11 +01:00
Jonathan Puckey
c339ffca35 Close closed paths when drawing using Context#closePath(). Fixes #72 2012-03-01 23:25:00 +01:00
Jonathan Puckey
b75e75f586 Cleanup and fix ProxyContext. 2012-03-01 23:20:15 +01:00
Jonathan Puckey
507ff8bb23 Add ProxyContext helper class to assist in debugging problems relating to interactions with the canvas' 2d context. 2012-03-01 22:25:35 +01:00
Jonathan Puckey
7093b73d31 Cleanup last merged pull request. 2012-03-01 17:06:39 +01:00
Jonathan Puckey
0d53b284e3 Merge pull request #75 from abuchanan/path-reverse-segment-siblings
Path.reverse() should adjust segment indices
2012-03-01 08:01:20 -08:00
Jonathan Puckey
a343724094 Item#setName: Check for Item#_parent to avoid errors in removed items and top level groups. Fixes #76 2012-03-01 16:43:05 +01:00
Alex Buchanan
f1a6357a05 Path.reverse() should adjust segment indices 2012-02-18 15:13:23 -08:00
Jono Brandel
ad811827fc Based on logic, I think the else if statement means to refer to c1 rather than c0 again, but I'd like to verify with you guys. 2012-02-07 09:10:33 -08:00
Jonathan Puckey
772174cedc Documentation for Tool and View event handling. 2012-02-02 11:45:02 +01:00
Jürg Lehni
1e0f779ea5 Make the hit test point transformation sticky.
So it propagates through the DOM levels.
2011-12-28 09:13:42 +01:00
Jürg Lehni
50e1509ab9 Simplify some code in #getAverageColor(). 2011-12-27 20:39:46 +01:00
Jürg Lehni
96f7d140a7 Use faster Point.create(x, y) internally. 2011-12-27 20:39:28 +01:00
Jürg Lehni
ad2abfb71f Inline drawDashes() code. 2011-12-27 20:18:02 +01:00
Jürg Lehni
24c0d0f87e Fix bug in Raster#getAverageColor(). 2011-12-27 19:55:55 +01:00
Jürg Lehni
5093648bd1 Shorten code a bit. 2011-12-27 19:53:37 +01:00
Jürg Lehni
b832787f7f Fix issues with multiple instances of symbols appearing in the wrong positions.
This was caused by cached bounds rectangles being modified elsewhere.
2011-12-27 19:53:28 +01:00
Jürg Lehni
2280c0cb94 Fix drawing of selected items in zoomed views. 2011-12-27 16:40:49 +01:00
Jürg Lehni
6e3cef6eb4 Implement PaperScope#tool accessor.
For better handling of automatic tool creation in PaperScript.
2011-12-27 16:33:17 +01:00
Jürg Lehni
7b03dbedb9 Move stats update to onFrame handler. 2011-12-27 16:06:47 +01:00
Jürg Lehni
df5c33571f Do not exceed 80 chars per line. 2011-12-27 16:05:02 +01:00
Jürg Lehni
2249f09223 Minor code clean up.
No need to set reference again, since we're directly modifying it.
2011-12-26 11:16:16 +01:00
Jürg Lehni
dbd3eff84b Don't forget to set #_bounds again if recycling.
This fixes the other observed slowdown since the bounds caching code overhaul.
2011-12-26 11:15:47 +01:00
Jürg Lehni
873cd79517 Fix a bug in code that keeps #_position cache up to date.
Only happened in items that assign another type to 'bounds' through _boundsType, e.g. PlacedSymbol, leading to substantial slow downs.
2011-12-26 11:08:09 +01:00
Jürg Lehni
28806fe977 Ue the faster Matrix#_transformPoint().
And reuse Point objects if possible.
2011-12-26 11:06:36 +01:00
Jürg Lehni
d2869cfd55 Cached bounds are no longer LinkedRectangles. 2011-12-26 11:06:04 +01:00
Jürg Lehni
c552925426 Fix issue with Item#removeChildren(from, to) removing too many items. 2011-12-26 02:39:54 +01:00
Jürg Lehni
7af06502bc Fix Path#transform() to also return a reference to 'this'. 2011-12-25 16:39:08 +01:00
Jürg Lehni
783d2782c0 Fix wrong HitResult type when hitting Segment#point. 2011-12-25 16:38:43 +01:00
Jürg Lehni
1e690a68e0 Add TODO about HitResult points requiring transformations. 2011-12-25 12:39:10 +01:00
Jürg Lehni
3b0b1184a3 Implement checkSegment() without relying on #_transformCoordinates(). 2011-12-25 12:34:51 +01:00
Jürg Lehni
951a3aea99 Inverse-transform the passed point on each DOM level in #hitTest(). 2011-12-25 00:19:44 +01:00
Jürg Lehni
c30ff47930 Remove matrix argument from all hit-testing related methods.
We better inverse-transform the point and save the code!
2011-12-25 00:19:01 +01:00
Jürg Lehni
1eadc87b58 No need to calculate matrix before handling cached values. 2011-12-24 12:30:43 +01:00
Jürg Lehni
733d879bb6 Add / improve comments about DOCS. 2011-12-23 22:47:10 +01:00
Jürg Lehni
98c82856ea Override #matrix accessors in Path to do nothing.
For the same reasons as described in the previous commit.
2011-12-23 22:46:53 +01:00
Jürg Lehni
627961627e Have Path always directly apply any transformation to its Segments.
This is required so the coordinates of its bounds, length and SegmentPoints are always in the same space.
2011-12-23 22:43:27 +01:00
Jürg Lehni
97b66582f8 Rename Item#applyMatrix() to shorter #apply(). 2011-12-23 22:41:05 +01:00
Jürg Lehni
61dca0b4d0 Introduce standard way of passing matrices/points to Item constructors. 2011-12-20 23:33:53 +01:00
Jürg Lehni
a21d180150 Use faster Point.create(). 2011-12-20 23:32:53 +01:00
Jürg Lehni
f2d7b85616 Introduce Matrix#setIdentity(). 2011-12-20 23:14:30 +01:00
Jürg Lehni
a8392fbf68 Implement local caching for the calculation of concatenated global matrices in the drawing of selected items in Project#draw(). 2011-12-20 23:09:49 +01:00
Jürg Lehni
16113d5462 Declare all Character/ParagraphStyle properties that change GEOMETRY.
Fixing a failing test that showed up after debugging code was removed in recent commit, which disabled speed optimisations.
2011-12-20 22:37:46 +01:00
Jürg Lehni
0fcee7d8df Move _owner / _style declarations to the top. 2011-12-20 22:36:24 +01:00
Jürg Lehni
8888ca912a The internal Item#_position is no longer a LinkedPoint.
Make sure it stays that way when it's kept up-to-date in Item#transform().
2011-12-20 22:35:06 +01:00
Jürg Lehni
0592038b9f Remove debugging code that lead to slow-down regressions. 2011-12-20 22:34:08 +01:00
Jürg Lehni
93ede28f3b Implement new selection drawing mechanism.
Using the new Item#globalMatrix.
2011-12-20 11:42:00 +01:00
Jürg Lehni
010209c70f Pass on view matrix to Project#draw.
So selection drawing is not zoomed.
2011-12-20 11:41:23 +01:00
Jürg Lehni
daca14efb8 Add optional matrix in Path drawing code.
Required for new selection drawing mechanism to be implemented.
2011-12-20 11:40:31 +01:00
Jürg Lehni
89a1d2fe73 Define Item#globalMatrix.
For now uncached.
2011-12-20 11:39:36 +01:00
Jürg Lehni
5797b78c2c Clean up Matrix concatenation code. 2011-12-20 11:39:10 +01:00
Jürg Lehni
42087071e7 Fix #strokeBounds for square caps.
Calculate the right points at both ends of paths.
2011-12-19 23:30:02 +01:00
Jürg Lehni
1e768e6c83 Fix #strokeBounds for strokes scaled using #matrix.
Gotta do the right thing, not the same buggy thing as Illustrator.
2011-12-19 23:21:13 +01:00
Jürg Lehni
4a46c8ac98 Fix recently introduced error with stroke/fillColor handling
Since CanvasContext#stroke/fillStyle cannot be set to null, we have to keep checking Style#fill/strokeColor even after calling #_setStyles().
2011-12-19 23:07:14 +01:00
Jürg Lehni
e30a0ae26d Define CharacterStyle#getFontStyle()
And use it in PointText.
2011-12-19 23:05:22 +01:00
Jürg Lehni
cc26fdc5d1 Optimise handling and setting of fill and stroke styles.
Handle setting of fillColor and strokeColor in Item#_setStyles() instead of the various #draw() methods, directly access internal styles instead of using accessor calls and fix PointText#draw().
2011-12-19 22:40:14 +01:00
Jürg Lehni
ea0eaf04ea Make TextItem#style a reference to #characterStyle.
Internally, CharacterStyle extends PathStyle and is now stored in TextItem#_style.
2011-12-19 22:26:09 +01:00
Jürg Lehni
19429d9b6d Automate generation of style accessors through Style class.
Shaving off some byes by adding more magic.
2011-12-19 22:14:10 +01:00
Jürg Lehni
9e79514b54 Add documentation about observed discrepancy between TextItem#characterStyle and #style. 2011-12-19 22:03:36 +01:00
Jürg Lehni
f5c1125709 Move Path#_setStyles() to Item, so it can be used in PointText too. 2011-12-19 21:25:39 +01:00
Jürg Lehni
466857659c Unroll loop in Path#_setStyles(). 2011-12-19 21:23:28 +01:00
Jürg Lehni
e89b2e5be1 Remove recursive argument from Item#applyMatrix().
Always apply transforms recursively.
2011-12-19 21:20:10 +01:00
Jürg Lehni
12dbb11ec3 Optimise and simplify ellipse code. 2011-12-19 13:51:26 +01:00
Jürg Lehni
3ccb4a6ebe Fix strokeBounds calculation when a rotation matrix is in use.
The bounding box of the rotated pen ellipse was calculated wrongly.
2011-12-19 13:47:30 +01:00
Jürg Lehni
daa1343155 Add comment about perhaps renaming Path.Oval to Path.Ellipse. 2011-12-19 13:16:29 +01:00
Jürg Lehni
83df011e1d Add missing colon. 2011-12-19 13:16:06 +01:00
Jürg Lehni
4514c63ed4 Merge remote-tracking branch 'origin/master' 2011-12-18 21:30:22 +01:00
Jürg Lehni
e1c8c48f11 Increase default type size to 12px. 2011-12-18 16:56:31 +01:00
Jürg Lehni
e52d2a08b8 Use correct flags in _changed() call. 2011-12-18 16:56:18 +01:00
Jürg Lehni
554047ae38 Expose Item#_getCachedBounds and use it in PlacedSymbol for proper handling of nested matrices. 2011-12-18 16:55:56 +01:00
Jürg Lehni
d2b1c77686 No need to call #getDefinition() internally.
Use private value directly.
2011-12-18 16:55:24 +01:00
Jürg Lehni
9e5eb17264 Improve Item#transform() and implement #applyMatrix() to support nested matrices. Work in progress. 2011-12-18 16:54:21 +01:00
Jürg Lehni
a76d47fcf1 Merge pull request #62 from dram/update-focus-fix
Use break to avoid uncaught exception in View.updateFocus
2011-12-10 11:08:03 -08:00
Jürg Lehni
b0b49d027a Remove unused parameter. 2011-12-10 20:05:26 +01:00
Jürg Lehni
c8f3f3be27 Document Base.hyphenate() 2011-12-10 19:57:18 +01:00
Jonathan Puckey
7fdb01cf77 More work on Item event handling documentation. 2011-12-07 12:45:04 +01:00
Jürg Lehni
120ead209e Define Segment#clone(). 2011-12-07 11:54:41 +01:00
Jürg Lehni
566aaed0be Define Segment#equals(). 2011-12-07 11:53:07 +01:00
Xin Wang
95b3bad6dc Use break to avoid uncaught exception. 2011-12-06 09:41:40 +08:00
Jonathan Puckey
1414500f45 First version of documentation of Item event handlers and MouseEvent. 2011-12-01 11:57:10 +01:00
Jürg Lehni
6e5e54cfe6 Change sequence of position / bounds related properties. 2011-11-30 18:36:44 +01:00
Jürg Lehni
f895d3e6fb Fix recently introduced error in Item#setSelected(). 2011-11-30 18:28:11 +01:00
Jürg Lehni
d8f0105fb2 Document support for dontLink parameter. 2011-11-30 18:19:39 +01:00
Jürg Lehni
a26bc87686 Implement support for Item#matrix in Item#draw(). 2011-11-30 18:19:23 +01:00
Jürg Lehni
a57070e4a3 Fix bounds caching issues on Group. 2011-11-30 18:18:51 +01:00
Jürg Lehni
a3ec184873 Add dontLink argument to Item#getPosition()
And use it to optimise up #setPosition().
2011-11-30 18:18:24 +01:00
Jürg Lehni
bb1d436281 Move creation of LinkedRectangle for 'bounds' to bounds accessor. 2011-11-30 17:20:29 +01:00
Jürg Lehni
3ece08bea1 Fix handling of recursion in Item#setSelected() / #setFullySelected(). 2011-11-30 17:16:52 +01:00
Jürg Lehni
cf4c2b4919 Move #matrix accessor from PlacedItem to Item. 2011-11-29 17:19:31 +01:00
Jürg Lehni
5ff3a07b31 Add comment about 1px rectangle in Raster#getAverageColor(). 2011-11-29 17:19:15 +01:00
Jürg Lehni
b5e46971f0 Replace new Size(x, y) calls with internal Size.create(x, y). 2011-11-29 17:11:15 +01:00
Jürg Lehni
26210fb95b Implement transforming of cached bounds again, if possible. 2011-11-28 23:20:47 +01:00
Jürg Lehni
cadc2e78ca We can directly access Item#_id.
No need to call Item#getId() internally.
2011-11-28 23:14:02 +01:00
Jürg Lehni
cb8c94ef7e Recursively call _clearBoundsCache
If the cache for an item's children is not valid anymore, that needs to propagate up the DOM tree.
2011-11-28 23:13:31 +01:00
Jürg Lehni
d3c83be3bb Correct execution sequence in getBounds so that the parent's _boundsCache is kept up to date even when the child is returning a cached result. 2011-11-28 22:59:25 +01:00
Jürg Lehni
e82deff4b9 Fix the drawing of PlacedSymbol bounds when selected. 2011-11-27 14:55:49 +00:00
Jürg Lehni
ac18786109 Implement bounds caching for all items, even groups and layers, using a smart structure keeping track of which items affect the cache, and automatically clearing it on changes without having to walk the DOM tree. 2011-11-27 13:48:15 +00:00
Jürg Lehni
907d6c0954 Implement Matrix#equals(). 2011-11-26 12:04:44 +01:00
Jürg Lehni
b51cf064b0 Make baseItem to last optional parameter of _getBounds. 2011-11-26 11:55:19 +01:00
Jürg Lehni
f799c85e76 Switch to using 'this' in private getBounds methods to point to path item rather than 'that'. 2011-11-26 11:48:08 +01:00
Jürg Lehni
40a3272cb3 Implement PointText#bounds properly, with matrix support in place now. 2011-11-26 11:40:38 +01:00
Jürg Lehni
a0ad81b576 Pass on the baseItem of a getBounds call, required to implement proper caching later. 2011-11-26 11:24:48 +01:00
Jürg Lehni
8729e9919f Use getBounds.call(item) to use this instead of item, since we're accessing it a lot. 2011-11-26 10:42:38 +01:00
Jürg Lehni
1fd9242fd8 Define private getBounds() function that handles matrix concatenation, bounds caching and calling of _getBounds, leading to further simplifications in PlacedItem. 2011-11-26 10:39:51 +01:00
Jürg Lehni
2605fadcfd Move bounds related code to a proper inejction scope, so we can declare private functions for caching. 2011-11-26 10:18:47 +01:00
Jürg Lehni
de4b5a0d87 Start implementing Item#matrix, work in progress. 2011-11-26 10:15:01 +01:00
Jürg Lehni
92066a6ecb Implement Item#_boundsType as a structure to control bounds handling and caching. 2011-11-24 16:03:05 +01:00
Jürg Lehni
a6b90dea35 Clean up Item documentation. 2011-11-24 16:02:34 +01:00
Jürg Lehni
44b6fe9f0d Fix documentation about bounds beans. 2011-11-24 15:46:06 +01:00
Jürg Lehni
310fbb260b Remove _boundsCache and replace it with easier _simpleBounds flag. 2011-11-24 15:44:26 +01:00
Jürg Lehni
067e0a954b Add comment about LinkedRectangle for 'bounds'. 2011-11-24 15:39:04 +01:00
Jürg Lehni
909b9040d5 Since we only use _createBounds in one place now we can inline it. 2011-11-24 15:38:08 +01:00
Jürg Lehni
569c415b2f Start implementing bounds caching the new way.
Work in progress still.
2011-11-24 15:37:44 +01:00
Jürg Lehni
c989d3ee3f Restructure code a bit for easier reading. 2011-11-24 15:18:57 +01:00
Jürg Lehni
ea87be166e Part one of big refactoring of bouding box handling. Functional, but caching is broken right now. 2011-11-24 15:13:21 +01:00
Jürg Lehni
d9777111dc No need for an injection scope as we can also just use Base.each() in combination with a side-car. 2011-11-24 14:54:04 +01:00
Jürg Lehni
b96cd4e1c8 Add comments about possible optimization of accessing of style properties. 2011-11-24 14:53:38 +01:00
Jürg Lehni
1d6cfeeb9b Add dest and dontNotifty arguments to Matrix#_transformBounds() and use them where appropriate. 2011-11-24 11:29:35 +01:00
Jürg Lehni
3f5e68aa76 Document the private getPendPadding() function. 2011-11-24 10:21:12 +01:00
Jürg Lehni
29aaf38320 Improve comments. 2011-11-24 10:17:31 +01:00
Jürg Lehni
8a53288b1e Add comment about upcoming changes relating to bounds. 2011-11-23 18:13:21 +01:00
Jürg Lehni
cd1810e6a3 Fix arguments check in Path#getHandleBounds(). 2011-11-23 18:13:05 +01:00
Jürg Lehni
11f298c994 Start adding support for PointText#bounds and multi-line text, work in progress. 2011-11-23 18:12:41 +01:00
Jürg Lehni
eb70c4de5d Directly pass matrix argument to _getBounds() instead of whole arguments array. 2011-11-20 18:51:34 +01:00
Jürg Lehni
75072bde4f Directly access project.view. 2011-11-18 20:33:27 +01:00
Jürg Lehni
44291fe33b Support injecting multiple object parameters into Style classes. 2011-11-18 20:08:54 +01:00
Jürg Lehni
5f0da04daf Add empty line at file end. 2011-11-18 19:54:16 +01:00
Jürg Lehni
b9f6c99dcd Add comments and clean up code. 2011-11-17 19:28:05 +01:00
Jürg Lehni
427cc21b3a Fix a comment. 2011-11-17 00:06:21 +01:00
Jürg Lehni
1b484a2f7b Implement MouseEvent#delta for Item#onMouseDrag and #onMouseMove. 2011-11-17 00:04:30 +01:00
Jürg Lehni
cf54b1a7c1 Change parameter sequence in mouse event code. 2011-11-16 23:47:51 +01:00
Jürg Lehni
9061daa935 Simplify event handling code. 2011-11-16 23:41:47 +01:00
Jürg Lehni
80d3763c39 Implement Item#onMouseDrag evnets, and have them silence #onMouseMove events if both are present. 2011-11-16 23:30:14 +01:00
Jürg Lehni
d066ad775d Implement Item#onClick and #onDoubleClick. 2011-11-16 23:18:27 +01:00
Jürg Lehni
b3bf57c8e9 Implement Item#onMouseEnter / #onMouseLeave. 2011-11-16 22:59:39 +01:00
Jürg Lehni
c0e6d5b2ee Remove unused injection scopes. 2011-11-16 22:54:03 +01:00
Jürg Lehni
44bf596e51 Finish implementing Item#onMouseMove and clean up code. 2011-11-16 22:48:38 +01:00
Jürg Lehni
8efc7ce7cd Implement Item#onMouseUp events and work on #onMouseMove. 2011-11-16 22:41:22 +01:00
Jürg Lehni
57bd659023 Move Item base mouse handling code to CanvasView. 2011-11-16 13:12:41 +01:00
Jürg Lehni
577c884a70 Prepend non-public Tool methods with '_'. 2011-11-16 13:10:39 +01:00
Jürg Lehni
1eff9741a4 Separate Canvas related code from View into CanvasView class. 2011-11-14 20:18:08 +01:00
Jürg Lehni
c85f0326c3 Simplify installling of mouse handlers in View. 2011-11-14 13:32:03 +01:00
Jürg Lehni
acbebc2aa4 Remove #idleInterval left-overs. 2011-11-13 00:09:09 +01:00
Jürg Lehni
fcd92c4ac1 Fix updateFocus() documentation. 2011-11-13 00:05:28 +01:00
Jürg Lehni
c8e1a9c959 Merge remote-tracking branch 'origin/master' 2011-11-12 23:57:39 +01:00
Jürg Lehni
e4586cfeeb Commit beginning of item based mouse events. So far only onMousedown / 'mousedown' is supported. 2011-11-12 23:57:25 +01:00
Jürg Lehni
18d44689fa Fix white-space in code example. 2011-11-12 23:56:25 +01:00
Jürg Lehni
36846d6e38 Remove code from previous commit again. 2011-11-12 19:52:36 +01:00
Jürg Lehni
d89d7f1ef7 Commit temporary support for attach() and detach() handler on event entries, to be removed again. 2011-11-12 19:51:51 +01:00
Jürg Lehni
4ba752d42a Add note and TODO about Path#contains() only working correctly for no-zero winding rule, which is not used by Canvas... 2011-11-12 19:49:12 +01:00
Jürg Lehni
ddf7c6534b Fix Path#hitTest() to only consider strokeWidth if a strokeColor is provided too. 2011-11-12 19:48:39 +01:00
Jonathan Puckey
52385451f6 Resolve a few documentation todos. 2011-11-12 18:30:21 +01:00
Jürg Lehni
6e5a81f907 Fix white-spaces in documentation. 2011-11-12 18:26:15 +01:00
Jürg Lehni
c33998c140 Remove support for Tool#eventInterval. 2011-11-12 18:26:03 +01:00
Jürg Lehni
52ad906c97 Add support for onFrame handlers on Item. 2011-11-12 17:44:05 +01:00
Jürg Lehni
d9ba90ea2d Remove white space. 2011-11-12 17:15:04 +01:00
Jürg Lehni
8eaddc759e Fix code sequence when attaching and detaching event handlers. 2011-11-12 17:14:49 +01:00
Jürg Lehni
da5a837da2 Merge remote-tracking branch 'origin/master' 2011-11-12 16:56:35 +01:00
Jürg Lehni
719ae2315c Remove global views list, link View to Project and allow projects to only have one view. 2011-11-12 16:56:23 +01:00
Jonathan Puckey
3ac171a304 Path#smooth() example: select path using fullySelected instead of selected, so we can see its handles. 2011-11-12 16:45:33 +01:00
Jonathan Puckey
d631288dc7 Fire resize event directly after evaluation, so we don't need to call onResize ourselves from PaperScript. 2011-11-12 16:31:22 +01:00
Jürg Lehni
ea689faa43 Fix white space. 2011-11-12 15:50:53 +01:00
Jürg Lehni
07839cf683 Add comment about name being set again in addChild(). 2011-11-12 15:50:35 +01:00
Jürg Lehni
2b5cfa401a Remove obsolete documentation. 2011-11-12 14:41:27 +01:00
Jürg Lehni
24f07dccec Clean up some JSDoc comments. 2011-11-12 13:27:29 +01:00
Jürg Lehni
b1332331b0 Simplify injection scope for removeOn* methods. 2011-11-12 13:22:45 +01:00
Jürg Lehni
a326b189b4 Improve Curve#isFlatEnough() by finding the right threshold through testing, and remove other less precise solutions. 2011-11-12 01:23:41 +01:00
Jürg Lehni
d43b54a531 Shorten Curve.isFlatEnough() code. 2011-11-11 20:58:33 +01:00
Jürg Lehni
fdd4ee8d31 Switch back to Kaspar Fischer's version of Curve.isFlatEnough, as it produces the best results with dashed lines. 2011-11-11 20:55:31 +01:00
Jürg Lehni
3dfb4d3ae5 Make Item#removeOn() calls work with new event callback mechanism. 2011-11-11 20:41:09 +01:00
Jürg Lehni
78d1ce1540 Make new events work properly for key handlers. 2011-11-11 20:12:29 +01:00
Jürg Lehni
e238dea3ac More work to make new events mechanisms work for Tool too. 2011-11-11 19:49:31 +01:00
Jürg Lehni
5fd7753c60 Remove dev comments. 2011-11-11 18:39:12 +01:00
Jürg Lehni
eaa5f97e95 Merge remote-tracking branch 'origin/master' 2011-11-11 18:29:44 +01:00
Jürg Lehni
256e48b511 Define Callback code for callback based event handling (#atach() / #detach() #fire()) and start implementing it in View. 2011-11-11 18:29:28 +01:00
Jonathan Puckey
a96a92caba Add support for hit testing Raster items and getting the color of the pixel that was hit. 2011-11-11 15:00:53 +01:00
Jürg Lehni
af9df0e1b8 Provide point of hit handles and segments too in HitResult. 2011-11-11 14:47:03 +01:00
Jürg Lehni
99a8532cca No need to set beans = true since we're always producing beans. 2011-11-11 14:03:36 +01:00
Jürg Lehni
1124236b8a Use inject() instead of a each() loop to add values to HitResult, so getters can be defined too (required for raster hit testing). 2011-11-11 13:11:10 +01:00
Jürg Lehni
e2eec3476d Add comments about backward compatible Color constructor names. 2011-11-10 20:00:20 +01:00
Jürg Lehni
42d0e722db Rename RGBColor -> RgbColor, to avoid clash with native constructor, and follow same naming convention for HsbColor and HslColor, but keep references to old names for PaperScript scopes for now. 2011-11-10 19:16:34 +01:00
Jürg Lehni
c4bea4d24c Include comment about algorithm modifications. 2011-11-10 18:30:18 +01:00
Jonathan Puckey
eb34e058c0 Fix bug in Item#hitTest and Project#hitTest documentation. Closes #57 2011-11-10 15:14:49 +01:00
Jürg Lehni
34b5d043b3 Implement Matrix#inverseTransform(). 2011-09-23 11:19:03 +02:00
Jürg Lehni
4600fe1e21 Add comments about alternative arguments. 2011-09-23 11:18:25 +02:00
Jürg Lehni
d1d110f085 Document the two versions of Matrix#transform() separately. 2011-09-23 11:17:42 +02:00
Jürg Lehni
f8dac43107 Remove Matrix#determinant and convert getter to private method that only returns determinant if matrix is reversible, simplifying the various places where _getDeterminant is in use. 2011-09-22 21:19:41 +02:00
Jürg Lehni
3397931bb2 Be consistent in Numerical. EPSILON comparison rules. 2011-09-22 21:14:16 +02:00
Jürg Lehni
44e5c30436 Remove misleading alternative parameter comment. 2011-09-22 10:36:27 +02:00
Jürg Lehni
6052e94a2a Add basic code for fine-grained change tracking, as required by on-the fly SVG DOM manipulation. 2011-09-22 10:32:17 +02:00
Jürg Lehni
a2358a0fc0 Also fire key events for modifier keys. Closes #52. 2011-09-18 12:51:03 +02:00
Jürg Lehni
571ca31dbf Move ctx.restore() to same level as ctx.save(). Closes #51. 2011-09-18 10:56:04 +02:00
Jürg Lehni
b51c1286da Add documentation for all color components. Closes #43. 2011-09-18 10:54:26 +02:00
Jürg Lehni
8db7352342 Merge branch 'master' of github.com:paperjs/paper.js 2011-09-18 10:38:33 +02:00
Jürg Lehni
936fd43c37 Implement Item#layer. 2011-09-18 10:38:16 +02:00
Ben Ogle
7ebd4a17bd Adds other keycodes for command keys in different browsers.
- 224 for firefox
 - 93 for the right command key in WebKit browsers.
2011-08-25 18:53:30 -07:00
Jürg Lehni
ae116cd043 Improve comments about change notifications. 2011-08-23 16:36:57 +02:00
Jürg Lehni
7a5ca5609f Have View#_redraw() properly redraw the content even if nothing has changed inside. 2011-08-23 16:36:18 +02:00
Jürg Lehni
79f351e5ee No need to check for _project as it will always bet set. 2011-08-23 16:35:19 +02:00
Jürg Lehni
a775ddec9e Remove obsolete comment. 2011-08-22 11:14:49 +02:00
Jürg Lehni
b54f9f2228 Introduce View#_redraw() and use it in #setViewSize() and #_transform(). 2011-08-22 11:14:38 +02:00
Jürg Lehni
3ca165f413 Move #_transform() up. 2011-08-22 11:13:42 +02:00
Jürg Lehni
a081419a8b Fix View#bounds for zoom levels other than 1. 2011-08-22 11:12:40 +02:00
Jürg Lehni
7c2fabd6a1 Remove redundant scope by sharing one between browser and server code. 2011-08-22 11:05:59 +02:00
Jonathan Puckey
0ee1e80c68 Node.js: add Raster support. 2011-08-21 16:38:06 +02:00
Jonathan Puckey
a28b20dac8 Merge branch 'master' of https://github.com/paperjs/paper.js 2011-08-20 15:55:48 +02:00
Jonathan Puckey
bec8cf967e View: add documentation todos. 2011-08-20 15:51:54 +02:00
Jonathan Puckey
1f9993f894 Move Node.js specific things to dedicated folder. 2011-08-20 15:48:57 +02:00
Jonathan Puckey
70dc88ca91 View: Clean up #exportImage() and #exportFrames(). 2011-08-20 15:46:06 +02:00
Jonathan Puckey
197c2670d6 Implement View#exportImage(uri, param) 2011-08-18 11:11:24 +02:00
Jürg Lehni
76df9d9a92 Fix documentation for beans. 2011-08-16 13:53:36 +02:00
Jürg Lehni
4e1dd90549 Use faster Size.create(). 2011-08-16 13:52:31 +02:00
Jürg Lehni
4dd90b440e Use new dontLink parameter for Path.Constructors optimisations. 2011-08-16 13:52:18 +02:00
Jürg Lehni
c9eb538f7a Support an optional argument 'dontLink' in getters that normalled return LinkedPoint and LinkedSize objects, for internal use. 2011-08-16 13:50:59 +02:00
Jürg Lehni
8f8188a091 Optimise Path.Rectangle constructor. 2011-08-16 13:39:37 +02:00
Jürg Lehni
3c5a46a8af Implement SegmentPoint#isZero() that does not use the x / y accessors but the internal properties directly, for performance reasons, since it is used a lot internally. 2011-08-16 13:38:52 +02:00
Jürg Lehni
7e0307dd6a Correct comments. 2011-08-16 13:36:58 +02:00
Jonathan Puckey
25cb4a7dd1 Support running of PaperScript .pjs files. 2011-08-13 18:26:43 +02:00
Jonathan Puckey
38a4184ab5 Color: Avoid dividing by 0 in rgb-hsl converter. 2011-08-13 15:26:14 +02:00
Jonathan Puckey
8ce7ed578e Allow loading of Paper.js on Node.js without the need for compiling. 2011-08-10 21:02:32 +02:00
Jonathan Puckey
ebc3b3789b Merge branch 'master' of https://github.com/paperjs/paper.js 2011-08-10 18:30:42 +02:00
Jonathan Puckey
e82a838085 Fix problem in Item#rasterize(resolution) where rasterizing the active layer caused the resulting Raster to be positioned wrongly. 2011-08-08 18:43:45 +02:00
Jonathan Puckey
a58bbaf6cf Fix Size#isZero(). 2011-08-04 15:06:35 +02:00
Jonathan Puckey
24f5188c24 Merge remote-tracking branch 'origin/master' 2011-08-04 10:55:02 +02:00
Jonathan Puckey
3a3f5ecabb Segment: notify path of change when selection state of handles changes, so the view is redrawn. 2011-08-04 10:54:56 +02:00
Jürg Lehni
4e78c55859 Simplify PointText#setPoint() 2011-08-03 23:37:56 +02:00
Jürg Lehni
7c95eb7694 Do not usse LinkedPoint internally for PointText#point, since we're returning new instances each time now in #getPoint(). 2011-08-02 16:08:00 +01:00
Jonathan Puckey
fe1b2ca8a0 Fix PointText#setPoint(point) and PointText#setPosition(point). 2011-08-02 14:31:35 +02:00
Jürg Lehni
fe97b94340 Define PaperScopeItem as a private base class for all classes that have lists and references in the PaperScope (Project, View, Tool), so they can share functionality (#initialize(), #activate(), #remove()), and add support for multiple tools. Closes #27 2011-08-02 10:08:08 +01:00
Jonathan Puckey
a9780374f2 Remove logging statements. 2011-08-02 11:07:59 +02:00
Jonathan Puckey
94a6860f7f Add back Node.js related changes to View. 2011-08-02 11:02:04 +02:00
Jonathan Puckey
820ef43f56 Merge remote-tracking branch 'source/master' 2011-08-02 10:53:25 +02:00
Jonathan Puckey
30e2ba5582 Update View. 2011-08-02 10:49:40 +02:00
Jürg Lehni
2d5788540d Hide internal properties even if they are enumerable in Base#toString() 2011-08-02 08:32:55 +01:00
Jürg Lehni
14881b8b19 Let View handle the retrieving of the canvas object. 2011-08-01 16:23:56 +01:00
Jürg Lehni
828c3ae369 Doc: Improve View#initialize(canvas). 2011-08-01 16:21:00 +01:00
Jürg Lehni
9195f026d7 Support passing canvas ids straight to View constructor. 2011-08-01 16:18:17 +01:00
Jürg Lehni
022de4d781 Some documentation fixes for v0.2 2011-08-01 14:25:46 +01:00
Jürg Lehni
ea629fefda Remove debug log. 2011-08-01 12:03:23 +01:00
Jürg Lehni
14895f412c Fix PaperScope#install() so classes actually get injected. 2011-08-01 12:02:50 +01:00
Jürg Lehni
a8c08b3301 Docs: Document Path#getNearestLocation() and #getNearestPoint(). 2011-08-01 11:48:27 +01:00
Jürg Lehni
c8578658ae Docs: Remove |null from @return, since it's verbally described, and null can also be a HitResult. 2011-08-01 11:48:07 +01:00
Jürg Lehni
31cc571e8a Docs: Hide matrix parameter in Item#hitTest() and add "options." in front of each options property. 2011-08-01 11:47:42 +01:00
Jürg Lehni
884ea96a29 Docs: Link HitResult back to #hitTest() functions. 2011-08-01 11:47:08 +01:00
Jürg Lehni
8cdc5ea2aa Change PaperScope#install() to be clever about project, view and tool references and link them through a getter to their current state in PaperScope. 2011-08-01 11:21:22 +01:00
Jürg Lehni
3fc21cd4b6 Always call View#draw() since it won't redraw internally if nothing has changed. 2011-08-01 11:02:00 +01:00
Jürg Lehni
6b6d5909c1 Revert back to PaperScope#setup() and keep #initialize0 simple. 2011-08-01 11:01:27 +01:00
Jürg Lehni
6086165d1a Merge remote-tracking branch 'origin/master' 2011-08-01 08:56:07 +01:00
Jürg Lehni
0e6aeac28c Fix HSLColor documentation. 2011-08-01 08:53:28 +01:00
Jürg Lehni
5b963b13e1 Export classes through PaperScope in dev mode too. 2011-08-01 08:53:07 +01:00
Jürg Lehni
c6cf4f9cf0 Only create an empty Project for a PaperScope if a canvas was provided for it. 2011-08-01 08:52:51 +01:00
Jonathan Puckey
e0650cae73 Document HitResult, Item#hitTest(point, options) and Project#hitTest(point, options). 2011-07-31 22:58:51 +02:00
Jürg Lehni
fc7da5fa13 Docs: Improve HSL example. 2011-07-31 15:46:26 +01:00
Jürg Lehni
42c9f91279 Rename internal Matrix transform parameters to (a, c, b, d, tx, ty), expoes values through Matrix#getValues() and improve documentation. 2011-07-31 15:26:09 +01:00
Jürg Lehni
b14a294430 Delcare DomElement and DomEvent as private namespaces. 2011-07-31 15:23:26 +01:00
Jürg Lehni
13ae51789f Remove reduntant argument, fixing visibility check. 2011-07-31 14:25:23 +01:00
Jürg Lehni
d84f0d34cf Fix errors in DomElement.getOffset() by using native #getBoundingClientRect() in DomElement.getBounds() and relying on that. Closes #29 2011-07-31 14:13:29 +01:00
Jürg Lehni
e1d90c921c Do not parse PaperScript code in exigent mode. Relaxes requirements of semicolons, etc. 2011-07-31 12:14:37 +01:00
Jürg Lehni
7f81184848 Only intersect lines if their lengths are not conflicting with Numerical.EPSILON comparison of the cross product in Line#intersect(). 2011-07-30 11:38:17 +01:00
Jürg Lehni
7d0db22b9b Use squared distances in nearest point algorithm. 2011-07-30 11:37:07 +01:00
Jürg Lehni
293399e5b9 Add optional parameter 'squared' to Point#getLength() and #getDistance(). 2011-07-30 11:36:28 +01:00
Jonathan Puckey
ddec658653 Make Paper.js work on Node.js. 2011-07-30 02:16:30 +02:00
Jürg Lehni
3a7c5286b5 Improve precision of Line#intersect() and other parts that check for a divisor to not be 0, by comparing against the new Numerical.EPSILON rather than Numerical.TOLERANCE. 2011-07-28 11:03:59 +01:00
Jürg Lehni
1519a1d220 Improve documentation for PaperScope. 2011-07-27 22:58:45 +01:00
Jürg Lehni
501fb17365 Add more documentation for global scope. 2011-07-27 22:58:36 +01:00
Jürg Lehni
297aef643d Simplify the way PaperScope objects are created and linked to Canvas elements, in order to facilitate usage through plain JavaScript. 2011-07-27 22:39:58 +01:00
Jürg Lehni
3f76d1ffe6 Merge remote-tracking branch 'origin/master' 2011-07-27 22:04:57 +01:00
Jürg Lehni
c6525ec4fa Fix link to global paper variable. 2011-07-27 22:02:42 +01:00
Jürg Lehni
e197f94669 Fix links and typos. 2011-07-27 22:02:29 +01:00
Jürg Lehni
f5ee4a1ff7 Improve documentation for Matrix#createInverse(). 2011-07-27 22:01:51 +01:00
Jürg Lehni
2736af646d Move documentation for _global_ to a new src/docs/ folder. 2011-07-27 22:00:59 +01:00
Jürg Lehni
afec10c5bf Move prepro.js to lib/and include() statements for test units to their own files inside tests/ 2011-07-27 22:00:31 +01:00
Jonathan Puckey
7a8c9ef41d Merge remote branch 'origin/master' 2011-07-27 20:30:48 +02:00
Jonathan Puckey
60a4292691 Fix the way children of CompoundPath have their orientation set by overriding Item#insertChild(index, item). 2011-07-27 20:30:39 +02:00
bgrins
09e75d9da2 get rid of trailing comma to prevent parser error in IE 2011-07-27 11:09:21 -05:00
Jürg Lehni
ba4ff62052 Clean up white space. 2011-07-26 16:00:49 +01:00
Jürg Lehni
f98c8f29fc Implement Prepro.js for the browser too, in order to be able to load the library from paper.js source files and preprocess on the fly on the browser side. 2011-07-26 12:27:36 +01:00
Jürg Lehni
11cf28b403 Merge remote-tracking branch 'origin/master' 2011-07-26 10:10:10 +01:00
Jürg Lehni
8eaeb7fb5e Remove filepp.pl as preprocessor and switch to our own Prepro.js, a simple preprocesssor for JavaScript that speaks JavaScript, written in JavaScript, allowing preprocessing to either happen at build time or compile time. 2011-07-26 10:09:31 +01:00
Jonathan Puckey
63628be923 Fix bug in CompoundPath#draw(ctx, draw) which was causing an error when a compound path didn't have any children. 2011-07-25 21:41:09 +02:00
Jürg Lehni
a0a426982f Documentation: Fix display of pseudo code. 2011-07-25 09:16:41 +01:00
Jürg Lehni
2c1fdc0744 Clean up Matrix constructor. 2011-07-25 09:15:35 +01:00
Jürg Lehni
68ba8e25e4 Documentation: Fix Matrix properties. 2011-07-25 09:15:18 +01:00
Jürg Lehni
43cc8e45b2 Clean up and separate PaperScript documetation from JavaScript related classes. Work in progress. 2011-07-25 00:25:23 +01:00
Jonathan Puckey
4daffc895a Handlers are no longer passed to Tool#initialize(). 2011-07-21 00:01:33 +02:00
Jürg Lehni
88626e3903 ToolEvent#getItem(): Replace all #parent getters with direct access to internal variable. 2011-07-19 23:55:56 +01:00
Jürg Lehni
688c1671ed Remove all parameters from Tool constructor, to simplify use outside PaperScript. 2011-07-19 23:53:13 +01:00
Jürg Lehni
9f1f4d334e Introduce PaperScope#setup(canvas), as a simple way to setup a standard project when not using PaperScript. 2011-07-19 23:52:32 +01:00
Jürg Lehni
470360301c Improve documentation for PaperScope#install() 2011-07-19 23:51:50 +01:00
Jonathan Puckey
8e816f6bfc HitResult#getOptions: only have fill / stroke / segments options set to true if no options object was provided. 2011-07-15 14:52:38 +02:00
Jonathan Puckey
53a602fb56 Path#_hitTest: check that a stroke hit test was requested. 2011-07-15 14:50:42 +02:00
Jonathan Puckey
611d9e3af3 Item#hitTest: ignore top level layers when hit testing for bounds or center. 2011-07-15 13:00:40 +02:00
Jonathan Puckey
91ab38ffd1 Path#getHandleBounds: remove optimization as it leads to problems when hit testing handles. 2011-07-15 12:58:34 +02:00
Jonathan Puckey
cb80b828a5 ToolEvent#getItem: replace getter with direct access to internal variable. 2011-07-14 19:28:25 +02:00
Jonathan Puckey
1ffb8debc3 Add HitResult tests (work in progress). 2011-07-13 17:35:54 +02:00
Jonathan Puckey
61052a9da9 Merge remote branch 'origin/master' 2011-07-13 16:54:01 +02:00
Jonathan Puckey
0098e2490f Implement ToolEvent#item. 2011-07-13 16:52:44 +02:00
Jürg Lehni
37c1866e5a Merge remote-tracking branch 'origin/master' 2011-07-13 13:27:26 +01:00
Jürg Lehni
86b1d82636 Add VERSION and DATE to headers and support for it in build scripts. 2011-07-13 13:27:14 +01:00
Jonathan Puckey
8aa7b02a23 Merge remote branch 'origin/master' 2011-07-13 14:12:01 +02:00
Jonathan Puckey
595144961d Update View size before calling View#onResize. 2011-07-13 14:10:26 +02:00
Jürg Lehni
a3bfc8fe40 Support all ways of defining a Point in SegmentPoint.create(), through fallback to Point.read(). 2011-07-13 12:46:16 +01:00
Jonathan Puckey
ff685f294a Fix problem with passing a Size to the Segment constructor. 2011-07-13 13:29:50 +02:00
Jürg Lehni
62453a4212 Increase version number. 2011-07-11 12:24:05 +02:00
Jürg Lehni
b5b1e50ccf Improve detection of passed Rectangles or Points in Rectangle#contains() 2011-07-11 12:21:24 +02:00
Jürg Lehni
077a83ca7c Fix documentation error. 2011-07-11 12:15:34 +02:00
Jürg Lehni
254aee47f8 Implement Path#getLocation(point) 2011-07-09 17:12:27 +02:00
Jürg Lehni
55f815cb72 Remove obsolete TODOs. 2011-07-09 17:12:13 +02:00
Jürg Lehni
51df37b8ec Fix recently broken support for text-paperscript mime type. 2011-07-09 17:11:57 +02:00
Jürg Lehni
615a1281e3 Remove obsolete TODO. 2011-07-09 17:03:10 +02:00
Jürg Lehni
5bac5189a4 Implement Item#fullySelected. 2011-07-09 17:02:58 +02:00
Jürg Lehni
6771475ffc Clean up comments. 2011-07-09 16:59:07 +02:00
Jürg Lehni
9abdcb571e Add support for both text/paperscript and text/x-paperscript mime types. 2011-07-09 16:58:53 +02:00
Jürg Lehni
45c7f9c4fc Port back code to prevent tangents and normals of length 0 from Scriptographer. 2011-07-09 11:20:03 +02:00
Jürg Lehni
ebd3bfc092 Introduce faster versions of Rectangle#contains() that do not perform checks. 2011-07-09 11:07:12 +02:00
Jürg Lehni
833d4968ce Change root solvers to not produce new arrays each time but fill a passed one that can be reused. Yields io impressive performance improvements. 2011-07-09 10:50:47 +02:00
Jürg Lehni
839107d341 Remove faulty code for calculation of tangents / normals. 2011-07-09 10:35:22 +02:00
Jürg Lehni
ec00150df2 Remove unused variable. 2011-07-09 10:34:18 +02:00
Jürg Lehni
4e1d613ed8 Fix Curve#getLength() again for straight lines. 2011-07-09 10:21:17 +02:00
Jürg Lehni
17b412ce6f Fix a newly introduced bug in #contains(). 2011-07-09 10:17:06 +02:00
Jürg Lehni
8a6d53766e Explain code a litter better. 2011-07-09 10:11:50 +02:00
Jürg Lehni
8928a7b057 Fix #getCrossings() where calling #getPoint() / #getTangent() was slow and also wrong when a matrix was used. 2011-07-09 10:09:41 +02:00
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
23f38c6e5b Fix Path#flatten(), where we don't want to add last segment again for closed paths. 2011-07-09 09:51:06 +02:00
Jürg Lehni
8e6adbc284 Fix documentation. 2011-07-09 09:28:49 +02:00
Jürg Lehni
f958b41d90 Don't filter for a type by default. 2011-07-09 09:28:36 +02:00
Jürg Lehni
74b23c1882 Use #roughBounds rather than #bounds in #contains() check. 2011-07-09 09:27:54 +02:00
Jürg Lehni
6694d08d0f Fix PaperScript code generation to wrap on new-lines, so missing colons will not cause errors. 2011-07-09 09:20:13 +02:00
Jürg Lehni
b5d3cf2ad0 Add comment about missing documentation. 2011-07-08 23:32:50 +02:00
Jürg Lehni
2dfe4dfa19 Remove invalid comments. 2011-07-08 23:32:38 +02:00
Jürg Lehni
0a7f5a12a5 Fix bug in 'stroke' hit-results. 2011-07-08 23:32:29 +02:00
Jürg Lehni
b1a2a626ad Separate type from name for 'bounds' hit-results. 2011-07-08 23:29:55 +02:00
Jürg Lehni
62ba983432 Implement hit-test options: center and bounds. 2011-07-08 23:26:50 +02:00
Jürg Lehni
c033a5a7bc Implement hit-test options: segments, handles and ends. 2011-07-08 23:26:21 +02:00
Jürg Lehni
9db96ae898 Perform point conversion along with HitResult.getOptions(). 2011-07-08 23:25:27 +02:00
Jürg Lehni
cc00f40532 Have Base.hyphenate() convert the result to lowercase. 2011-07-08 23:09:51 +02:00
Jürg Lehni
bb4e71da81 Clean up isFlatEnough() code. 2011-07-08 22:26:22 +02:00
Jürg Lehni
dfbe3135ad Remove HitResult inheritance from CurveLocation, but have a #location property pointing to it. 2011-07-08 22:25:42 +02:00
Jürg Lehni
a580b23f2a Reverse direction of child-looping in hit-tests, so items that get drawn last are tested first. 2011-07-08 21:15:16 +02:00
Jürg Lehni
48d61b46bf Merge remote-tracking branch 'origin/master' 2011-07-08 21:01:47 +02:00
Jürg Lehni
1b3d4773a3 Optimise hit-testing by checking point to lie within #roughBounds + tolerance first. 2011-07-08 21:01:34 +02:00
Jonathan Puckey
36be78c671 Fix small problem in Item#_hitTest. 2011-07-08 18:41:29 +02:00
Jonathan Puckey
a0f4371803 Fix CurveLocation#getSegment. 2011-07-08 18:39:05 +02:00
Jürg Lehni
fe37ce6bcb Clean up comments. 2011-07-07 23:02:26 +02:00
Jürg Lehni
23c4499d15 Add comments about how to potentially improve getBounds() accuracy. 2011-07-07 23:00:40 +02:00
Jürg Lehni
ca50461fd1 Implement new Curve.isFlatEnough(). 2011-07-07 23:00:16 +02:00
Jürg Lehni
69a7d0bfd4 Implement a first version of Item#hitTest(), so far working only for Path items. Work in progress. 2011-07-07 22:14:58 +02:00
Jürg Lehni
de87c1f97a Define a bit of code that names all our class constructors based on the property name under which they were stored, and use that in Item#toString(). 2011-07-07 22:14:09 +02:00
Jürg Lehni
3bd6122e82 Begin adding support for guides. 2011-07-07 21:02:52 +02:00
Jürg Lehni
133e0fc5cf Document ToolEvent#type. 2011-07-07 20:52:55 +02:00
Jürg Lehni
ced45c4e8f Add HSLColor to documentation. 2011-07-07 20:51:23 +02:00
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
2851d8e403 Define Base#toString() as a mean to render Base objects as object literals, and use it for Key.modifier and onFrame() event objects, through Base.merge() conversion. 2011-07-07 14:10:02 +02:00
Jürg Lehni
baf7136ef7 Compress HSL and HSB converters even more. 2011-07-07 00:19:13 +02:00
Jürg Lehni
adff506751 Rearrange converter sequence. 2011-07-07 00:19:01 +02:00
Jürg Lehni
41e25dc5f7 Remove converters that simply pass through other rgb converters and have Color#convert() handle that for us. 2011-07-07 00:02:38 +02:00
Jürg Lehni
16c31fc683 No need to initialize with 0 since we're always setting them again. 2011-07-06 23:54:34 +02:00
Jürg Lehni
769ae05ad8 Clean up HSB code a bit too. 2011-07-06 23:51:46 +02:00
Jürg Lehni
dfef99aa92 Clean up and further simplify HSL code. 2011-07-06 23:51:30 +02:00
Jürg Lehni
f357eb4a21 Merge pull request #20 from gka/hsl-color
added support for HSL colors
2011-07-06 14:37:19 -07: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
d1185c5f8b Implement support for properly validating 'data-paper-NAME' attribute names, along with the current 'NAME'. 2011-07-06 21:19:38 +02:00
Jürg Lehni
10e7cc994c Fix porting mistakes. 2011-07-06 15:31:36 +02:00
Jürg Lehni
5c3a6f72b6 Fix comments. 2011-07-06 15:31:16 +02:00
gka
e1a61e1d95 added link to original algorithm source 2011-07-06 14:35:12 +02:00
gka
46483ee431 packed hsl-rgb conversion code a bit 2011-07-05 20:25:35 +02:00
Jürg Lehni
99f6597615 Fix check for quadratic curve by using the right coefficient (a instead of d), and checking with tolerance. 2011-07-05 17:03:49 +02:00
gka
0e37d9e93d added support for HSL colors
new class HSLColor, new test script HSLColor.html
2011-07-05 15:38:32 +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
277ab844f2 Add comment about improving Rectangle#contains(). 2011-07-05 01:17:55 +02:00
Jürg Lehni
2a9066c555 Fix comment. 2011-07-05 01:17:37 +02:00
Jürg Lehni
f6f4c917f4 Fix accidentally removed comas. 2011-07-05 01:16:20 +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
24d77c1ece Remove root fixing code again, seems not necessary. 2011-07-05 01:14:20 +02:00
Jürg Lehni
8a2a9409bd Commit experimental root fixing code. 2011-07-05 01:13:58 +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
110cffc14c Improve comments for bounds functions. 2011-07-04 23:28:28 +02:00