Commit graph

3286 commits

Author SHA1 Message Date
Jürg Lehni
b9ba2364fe Move Shape#isEmpty() to right place. 2013-10-14 09:15:34 +02:00
Jürg Lehni
198305b75c Remove doc comment since Item#isEmpty() is already documented, and move it to an inline comment. 2013-10-14 09:14:59 +02:00
Oliver Jones
df7f1fe874 Override default isEmpty method for Shape
Fixes (new Group([new Shape.Rectangle(...)])).bounds throwing ReferenceError when using Item's isEmpty
2013-10-12 19:28:45 +01:00
hkrish
e20ff3b0a1 Calculate correct parameter for linear segments 2013-10-11 22:03:07 +02:00
hkrish
f0434548c6 Fix regression issues with Curve-Line intersection code 2013-10-11 20:48:34 +02:00
Jürg Lehni
dfa1687a90 Adapt to new bower_components directory. 2013-10-11 00:20:30 +02:00
Jürg Lehni
60732e8456 No need for default parameter. 2013-10-10 23:09:18 +02:00
Jürg Lehni
c68a7d33da Switch from options.browser and options.node to options.environment 2013-10-10 23:09:00 +02:00
Jürg Lehni
6b45a9382c Replace typeof x !== 'undefined' checks with typeof x === 'object'. 2013-10-10 20:36:33 +02:00
Jürg Lehni
94fac965ec Minor improvement in Base.equals() 2013-10-10 20:15:56 +02:00
Jürg Lehni
c5e43778bc Allow the minification of the undefined variable by defining it as a local parameter inside the paper scope. 2013-10-10 20:15:32 +02:00
Jürg Lehni
d158056899 Optimise DomElement.getPrefixValue() 2013-10-10 16:40:46 +02:00
Jürg Lehni
22e13df102 Implement support for Hi-DPI canvas on Retina screens. 2013-10-10 16:31:24 +02:00
Jürg Lehni
03efd56df7 Fix strange issue on iOS 7 where a simple regular expression appears to cause a complete browser crash.
Closes #306.
2013-10-10 14:47:27 +02:00
Jürg Lehni
24e46bee60 Merge branch 'refs/heads/boolean-fix' 2013-10-08 20:50:47 +02:00
Jürg Lehni
0860cdd941 Clean up code a bit. 2013-10-08 20:49:24 +02:00
Jürg Lehni
367aa8ea28 Do not allow numeric values for Item#name.
Closes #298.
2013-10-08 20:38:16 +02:00
Jürg Lehni
921a68e4a2 Rename _removeFromNamed to _removeNamed. 2013-10-08 20:25:26 +02:00
Jürg Lehni
9103c19e6f Fix issues with #dashOffset when emulating native dashes.
Closes #303.
2013-10-08 10:50:59 +02:00
Jürg Lehni
9c98ef8316 Have paper.install() override existing definitions.
And include a warning about this approach in the documentation.
2013-09-23 11:49:23 -07:00
Jürg Lehni
1ee6bb7e79 Use isZero() when checking for straight curves in Curve.getLength() 2013-09-23 08:13:32 -07:00
Jürg Lehni
509ac48951 Fix indentation levels. 2013-09-22 18:18:22 -07:00
Jürg Lehni
cae4520665 Simplify addCurveLineIntersections() code. 2013-09-22 18:18:03 -07:00
Jürg Lehni
5f8c00fe8d Start implementing Item#globalToLocal() and #localToGlobal() 2013-09-22 18:04:27 -07:00
hkrish
8434b4bebe Fix: Syntax error! 2013-09-22 17:49:10 +02:00
hkrish
f9b4321a56 Boolean -fix: Interpolate to find the parameter of intersection in linear curve segments 2013-09-21 17:26:14 +02:00
hkrish
0a22211393 Conform to paperjs coding style. 2013-09-21 15:26:14 +02:00
hkrish
4f54ac1f4c Boolean -fix: Correctly perform boolean operations regardless of the input paths' winding direction 2013-09-17 19:50:13 +02:00
hkrish
669fb1638a Boolean -fix: Preserve the order of intersections found (Curve-Line) according to the PathItem they belong to. 2013-09-13 02:44:51 +02:00
Jürg Lehni
5a45260740 Docs: Fix shadow example. 2013-09-12 15:30:07 -07:00
hkrish
abe0e5e059 Boolean -fix: CurveLocation now keeps track of the correct segment at intersections 2013-09-13 00:08:43 +02:00
Jürg Lehni
cc29cab671 Fix issue with importing SVG document nodes.
Closes #276.
2013-08-26 16:35:15 -07:00
Jürg Lehni
19c7788617 Fix documentation irregularities. 2013-08-23 19:45:28 -07:00
Jürg Lehni
cd74aaf5a3 Remove caching of inverse transform.
View#matrix can be directly modified, and we don't have change tracking on matrices yet.
2013-08-23 19:29:28 -07:00
Jürg Lehni
19f50be897 No need to pass false for allowNull as it's the default. 2013-08-16 19:20:35 -07:00
Jürg Lehni
40f2547e5f Correctly detect image size on all browsers.
Closes #268.
2013-08-15 11:32:47 -07:00
Jürg Lehni
cb6833176c Use named module AMD syntax for defining paper.
Closes #261.
2013-08-14 14:26:23 -07:00
Jürg Lehni
590c89840c Merge Raster#setImage() and #setCanvas(). 2013-08-14 12:29:56 -07:00
Jürg Lehni
cc565b3fe2 Rename Raster#getSubImage() to #getSubCanvas(), and use insert: false combined with #insertAbove() to correctly insert newly created rasters. 2013-08-14 12:21:47 -07:00
Jürg Lehni
5981ddf89f Implement Raster#getSubRaster() and document both #getSubImage() and #getSubRaster(). 2013-08-14 12:14:28 -07:00
Jürg Lehni
1a1c2674fd Take Item#matrix into account when drawing gradients.
Closes #267.
2013-08-14 11:27:04 -07:00
Jürg Lehni
720dd1b35d Do not apply operator overloading in situations where UpdateExpressions happen inside other contexts that would cause a change of behavior, e.g. array[i++], or if (i++ < 1).
Closes #260.
2013-08-09 10:58:29 -07:00
Jürg Lehni
1120b6012c Merge pull request #262 from huochunpeng/fix_typo_in_matrix
fix typo "Concatentates".
2013-08-08 17:24:40 -07:00
Jürg Lehni
46f6261d38 Merge pull request #265 from duckmaestro/master
Fix to #263: _children undefined inside call to myShape.isEmpty().
2013-08-08 17:24:10 -07:00
Jürg Lehni
6b19f25f4b Fix typos in comments. 2013-08-08 15:21:35 -07:00
Clifford Champion
2d3200c8d7 Fix to #263: _children undefined inside call to myShape.isEmpty(). 2013-07-27 23:47:49 -07:00
Chunpeng Huo
4904a1df1f fix typo "Concatentates". 2013-07-26 15:22:37 +10:00
Jürg Lehni
5e8ec2066b Clean up comment. 2013-07-21 16:52:18 -07:00
Jürg Lehni
16735e23af Simplify code for #insertAbove/Below(), by introducing a private helper.
Making overriding in Layer simpler.
2013-07-21 16:41:45 -07:00
Jürg Lehni
5e210c583a Switch to returning items instead of booleans in #insertAbove/Below() and adjust documentation accordingly. 2013-07-21 16:29:13 -07:00
Jürg Lehni
edfb3a51ab Improve documentation of insertion methods. 2013-07-21 16:26:16 -07:00
Jürg Lehni
e68563af53 Have #insertAbove/Below() return a boolean. 2013-07-21 16:26:03 -07:00
Jürg Lehni
e0809d26f2 Merge code for Item#insertAbove() / #insertBelow() and fix issue with wrong indices.
The previous code was faulty when item was not already in the children list.
2013-07-21 16:22:16 -07:00
Jürg Lehni
949752556b Fix avoiding of name clashes in cloning. 2013-07-21 15:54:03 -07:00
Jürg Lehni
aa4d990c90 Move and unify handling of Item#_set(props) to new Item#_initialize(), and add support for props.insert = false. 2013-07-21 15:45:22 -07:00
Jürg Lehni
5e2654b490 Allow Item#_changed() to function before #_project is set. 2013-07-21 15:44:18 -07:00
Jürg Lehni
86a8f85874 Allow Base#_set() to exclude properties. 2013-07-21 15:43:20 -07:00
Jürg Lehni
93c90d0cd8 Do not insert boolean operation clones into DOM. 2013-07-19 18:46:28 -07:00
Jürg Lehni
6af59f7adf Filter out the insert parameter in _set for now, to prevent issues with cloning().
Work in progress.
2013-07-19 18:45:59 -07:00
Jürg Lehni
b7aea1e527 Use insert: false option in creation of all clones.
Still needs implementing in Item constructor.
2013-07-19 18:42:13 -07:00
Jürg Lehni
20a17f2939 Implement insert parameter in Item#clone() to control DOM insertion.
Defaults to true. Also insert in the right place now, above the original.
2013-07-19 18:27:00 -07:00
Jürg Lehni
588abe7189 Only test for fill in Item#_hitTest() if options.fill is set. 2013-07-19 17:55:31 -07:00
Jürg Lehni
f466473bfb Add support for shadows.
Closes #36.
2013-07-19 17:48:29 -07:00
Jürg Lehni
ec121ca04c Separate requesting and handling of animation frames.
Closes #176.
2013-07-19 17:33:32 -07:00
Jürg Lehni
cd40bd2c9d Fix faulty comment about _handleFrameItems. 2013-07-19 15:49:51 -07:00
Jürg Lehni
3224876e6f Use fire('frame') instead of onFrame(), to correctly handle frame events on Node. 2013-07-19 15:49:16 -07:00
Jürg Lehni
ec4f194b84 Avoid use of 'window' for Node, and pass on reference to root scope instead. 2013-07-19 15:48:50 -07:00
Jürg Lehni
94c192495a Add support for canvas compositing modes to Item#blendMode.
Closes #159.
2013-07-19 15:23:16 -07:00
Jürg Lehni
175091a69f Allow combinations of blendMode and opacity.
Closes #259.
2013-07-19 11:46:13 -07:00
Jürg Lehni
47768779b7 Fix blurriness in Item#rasterize().
Closes #258.
2013-07-18 20:06:22 -07:00
Jürg Lehni
6e1c89234d Define PaperScope#activate()
Closes #256.
2013-07-18 19:21:57 -07:00
Jürg Lehni
098f3e84cc Include Acorn / Esprima only into local PaperScript scope, and locally deactivate AMD.
Closes #255.
2013-07-18 09:49:30 -07:00
Jürg Lehni
85d7237c0f Avoid endless recursion in ToolEvent#middlePoint.
Closes #257.
2013-07-17 16:01:36 -07:00
Jürg Lehni
ef4eee1064 Pass true for isParameter in Curve#divide() calls.
Closes #252.
2013-07-04 19:39:55 -07:00
Jürg Lehni
b874a642ab Merge pull request #251 from amithalb/master
Fix importSVG
2013-07-04 11:23:06 -07:00
Jürg Lehni
affb44e0dd Prevent double execution of onLoad event on Raster. 2013-07-03 19:02:29 -07:00
Jürg Lehni
e87307af41 Fix issue with Image.onLoad() events.
naturalWidth/Height seems unreliable.
2013-07-03 18:49:05 -07:00
Jürg Lehni
f68f1ad518 Docs: Fix some faulty object parameters. 2013-07-02 12:22:45 -07:00
Jürg Lehni
8ee52d2983 Export legacy Color constructors. 2013-07-01 06:50:20 -07:00
Amit Halberstam
96b0603b9c correct reference to document in importSVG 2013-06-30 13:23:38 +03:00
Jürg Lehni
d369984196 Allow math operands larger than 1 when multiplying and dividing colors. 2013-06-28 07:59:33 -07:00
Jürg Lehni
e8765d18d5 Make argument reading more flexible by introducing options object for readNull and clone, and passing it on to the constructor through this.__options for additional values. 2013-06-28 07:37:03 -07:00
Jürg Lehni
2c578d0558 Start implementing math operators for Color. 2013-06-28 07:19:53 -07:00
Jürg Lehni
22df17c192 Docs: Minor cleanups. 2013-06-28 06:41:36 -07:00
Jürg Lehni
b588f3234c Docs: Improve documentation for Color constructors. 2013-06-28 06:41:21 -07:00
Jürg Lehni
16ff78a8ba Import Base into PaperScript scope. 2013-06-28 06:39:00 -07:00
Jürg Lehni
8f254202e8 Use new @operator tag to mark math operator methods. 2013-06-28 05:59:07 -07:00
Jürg Lehni
5b574877e9 Make PaperScript math operator methods 'hidden' and use aliases to visible methods.
Avoids Path#add() being misinterpreted as an operator, and console.log(path + ' hi'); causing weird issues.
2013-06-28 05:15:49 -07:00
Jürg Lehni
5e7209a7bb Clean up math function injection in Point and Size. 2013-06-28 04:58:57 -07:00
Jürg Lehni
6833e9d8e0 Fix {@default 0.5} values in documentation. 2013-06-27 18:15:10 -07:00
Jürg Lehni
fdfb7abe58 Update exportSVG() documentation. 2013-06-27 18:14:51 -07:00
Jürg Lehni
8e153beb36 Implement exportSVG() options parameter.
Supporting asString and precision so far.
2013-06-27 18:14:35 -07:00
Jürg Lehni
09f04a597f Write documentation for Shape constructors. 2013-06-27 18:04:02 -07:00
Jürg Lehni
41746d2d25 Docs: Write documentation for #import/export JSON/SVG, for both Item and Project. 2013-06-27 18:03:49 -07:00
Jürg Lehni
e63edba0b5 Clean up various documentations a bit. 2013-06-27 18:03:03 -07:00
Jürg Lehni
7ade053dea Move Path.Circle constructor above Path.Rectangle. 2013-06-27 17:54:00 -07:00
Jürg Lehni
0bf19d02bd Add asString parameter to exportSVG() methods. 2013-06-27 17:43:24 -07:00
Jürg Lehni
f9925a71ea Improve documentation for Path#split(), Curve#divide() and Curve#split().
Closes #189.
2013-06-27 17:18:57 -07:00
Jürg Lehni
9f5b543ab5 Fix getCurveAt() signature. 2013-06-27 17:13:00 -07:00
Jürg Lehni
38db18c2e1 Remove isParameter from Curve.evaluate() 2013-06-27 17:12:35 -07:00
Jürg Lehni
c123468d7a Clean up Path#join() code. 2013-06-27 16:06:24 -07:00
Jürg Lehni
0c9914285f Return Raster#size as a LinkedSize. 2013-06-27 16:06:11 -07:00
Jürg Lehni
9311b38894 Define Shape#size and #radius. 2013-06-27 16:05:44 -07:00
Jürg Lehni
2b236a3da8 In Path#join, add first segment of second path again at the end after joining, if it was closed.
Closes #249.
2013-06-27 15:43:26 -07:00
Jürg Lehni
fdfdf96357 Make load.sh work for Node.js too 2013-06-27 14:41:25 -07:00
Jürg Lehni
899ec1d360 Make built version of paper.js for node work and work towards using that in NPM. 2013-06-27 14:31:03 -07:00
Jürg Lehni
5245a30930 Improve PaperScript extension code for Node.js 2013-06-27 13:52:30 -07:00
Jürg Lehni
4f5dac8567 Improved PrePro to be able to dynamically load Node.js code too, and improve load.js to handle both environments.
Also moved PaperScript .pjs extension code to PaperScript, and DOM related Node.js code to dom/node.js
2013-06-27 13:49:04 -07:00
Jürg Lehni
94ce1f1312 Fix include statements.
They're not to be indented.
2013-06-27 04:46:20 -07:00
Jürg Lehni
77c27f8a36 Switch to using dependencies as bower components. 2013-06-27 04:21:06 -07:00
Jürg Lehni
f572ad9c0a Improve handling of Stats.
Don't bail out if the library is not loaded.
2013-06-27 04:11:50 -07:00
Jürg Lehni
37f0c7dcd6 Add missing Key class to exports. 2013-06-27 03:58:14 -07:00
Jürg Lehni
214db84b84 Improve src/load.js to directly load the library through PrePro's load.js 2013-06-26 19:14:54 -07:00
Jürg Lehni
4e173a7d35 Switch to the NPM version of PrePro's load.js 2013-06-26 18:57:46 -07:00
Jürg Lehni
a908556956 Fix blend mode detection syntax. 2013-06-26 15:05:43 -07:00
Jürg Lehni
1126c699d2 Improve tests for native blend modes.
Each mode needs to be tested separately, since some browsers implement only a subset (WebKit).
2013-06-26 14:59:07 -07:00
Jürg Lehni
b8d773e129 Rename blendMode parameter to mode. 2013-06-26 14:37:41 -07:00
Jürg Lehni
6d38401f0c Use faster direct Curve constructor instead of Base.create(). 2013-06-25 09:58:18 -07:00
Jürg Lehni
9c5416360c Use direct constructor instead of #initialize(). 2013-06-25 09:56:34 -07:00
Jürg Lehni
52c889428b Remove Curve.create() in favor of direct constructor. 2013-06-25 09:54:13 -07:00
Jürg Lehni
772c83596f Replace Base.create() calls in favor of faster direct constructors. 2013-06-25 09:50:14 -07:00
Jürg Lehni
7e24de7c74 Replace SegmentPoint.create() in favor of normal constructor. 2013-06-25 09:48:51 -07:00
Jürg Lehni
3d5ae373a8 Remove static create() methods from LinkedPoint/Size/Rectangle, and give them initialize() methods instead that also name the classes in debugging. 2013-06-25 09:41:55 -07:00
Jürg Lehni
c6e50375df Expose nativeBlendModes and amend BlendModes example with information about the use of native modes. 2013-06-24 15:55:15 -07:00
Jürg Lehni
1866e4ff15 Remove need for all special arguments in minification, and restructure code to avoid warnings. 2013-06-24 10:15:54 -07:00
Jürg Lehni
7975232ee7 Remove workaround for obscure WebKit bug.
It wasn't fully working either. Solution:
https://bugs.webkit.org/show_bug.cgi?id=109961
2013-06-24 09:37:25 -07:00
Jürg Lehni
b989892c24 Update copyright note about straps.js 2013-06-24 09:12:45 -07:00
Jürg Lehni
78a3e87ca1 Prevent separate View file in docs. 2013-06-24 09:10:26 -07:00
Jürg Lehni
f56794bad4 Remove global variable leakage. 2013-06-24 04:52:13 -07:00
Jürg Lehni
e6bed426d7 Make inclusion of PaperScript optional and build a core version of the library without it. 2013-06-24 04:49:45 -07:00
Jürg Lehni
eef736f3d8 Move define() statement to export.js and remove define hack in PaperScript. 2013-06-24 04:40:35 -07:00
Jürg Lehni
4b53d558f1 Refactor PaperScript code so it can be moved outside of main paper scope.
Allowing for better minifaction and the potential use of strict mode due to absence of with() statements inside the main paper scope.
2013-06-24 04:40:07 -07:00
Jürg Lehni
fa3f91a754 Move PaperScript.get/setAttribute() to PaperScope. 2013-06-24 04:23:34 -07:00
Jürg Lehni
75c1225d4f Prevent overriding exported classes by inheriting classes with same _class value. 2013-06-24 04:22:43 -07:00
Jürg Lehni
a4535edbb9 Bring back _class names, since code minification breaks reliance on constructor.name.
Closes #248.
2013-06-23 20:18:32 -07:00
Jürg Lehni
dff39dff78 Use local bounds for hit-testing.
Fixes issue #247.
2013-06-23 19:49:36 -07:00
Jürg Lehni
9f7167a47f Clean up Item#hitTest() code. 2013-06-23 19:01:48 -07:00
Jürg Lehni
58f697abfc Fix hit-testing for guides. 2013-06-23 19:01:36 -07:00
Jürg Lehni
76426c4cb3 Take #visible state into account when hit-testing.
Closes #243.
2013-06-23 17:55:14 -07:00
Jürg Lehni
1e81176cf1 Merge branch 'master' of github.com:paperjs/paper.js 2013-06-23 17:22:30 -07:00
Jürg Lehni
4b62949318 Fix tests for #246.
This is actually the right behavior: Setting length to negative values should flip around defined vectors.
2013-06-23 17:22:13 -07:00
Chris Barmonde
68626ca62b Fix project.clear() so it removes all layers properly. 2013-06-20 20:14:47 -06:00
Jürg Lehni
ca0513b1b2 Fix namespace for images in SVGExport. 2013-06-19 08:22:20 -07:00
Jürg Lehni
719b9d5e24 Move logic that determines if item can be directly composited into separate per-item #_canComposite() method. 2013-06-19 08:22:08 -07:00
Jürg Lehni
258c404b98 Move curvature calculations into Curve.evaluate(), and define unit tests for it. 2013-06-18 19:00:05 -07:00
Jürg Lehni
619a8f88f8 Clean up code a bit in Curve#getCurvatureAt(). 2013-06-18 18:29:44 -07:00
Jürg Lehni
3d78e3729d Fix issue with PaperScript and array[i++] expressions. 2013-06-18 18:18:39 -07:00
Jürg Lehni
4bda878f5f Fix accidental code removal. 2013-06-18 17:35:49 -07:00
Jürg Lehni
2241329321 Fix id clash in SVGExport. 2013-06-18 17:29:00 -07:00
Jürg Lehni
742ae16de1 Add support for SVG mix-blend-mode attribute.
Browsers have yet to support it though.
2013-06-18 17:19:31 -07:00