Commit graph

2373 commits

Author SHA1 Message Date
Jürg Lehni
3a1f2eec3f Restructure Path#getBounds() code so Curve bounds calculations can be moved to Curve. 2012-12-27 15:19:42 +01:00
Jürg Lehni
2673991620 Have Path#_serializeFields inherit from Item#_serializeFields. 2012-12-27 13:04:38 +01:00
Jürg Lehni
8c33e5be88 Fix null exception in Matrix#equals(). 2012-12-27 13:04:21 +01:00
Jürg Lehni
f45c04a359 Remove overridden Path#matrix getters and setters, since we now control behavior through #applyMatrix. 2012-12-27 13:04:07 +01:00
Jürg Lehni
4f83e0eee6 Commit first version of serialization / deserialization mechanism.
It appears to work fine already for Paths and Groups.
2012-12-27 12:45:55 +01:00
Jürg Lehni
ae4e5d4be5 Rename Item#setProperties() to hidden #_setProperties() and add public Item#set() to use same functionality from outside. 2012-12-27 00:52:09 +01:00
Jürg Lehni
0fb89bd3e0 Rename Color#_colorType to #_type, to prepare for serialization mechanism. 2012-12-27 00:48:56 +01:00
Jürg Lehni
3b88bffff1 Document #setProperties() method. 2012-12-26 13:29:40 +01:00
Jürg Lehni
3ac039bd66 Implement properties object literal initialization for all Item constructors. 2012-12-25 22:12:25 +01:00
Jürg Lehni
6b0b6911b4 Clean up code a bit. 2012-12-25 18:09:42 +01:00
Jürg Lehni
ded73142a9 Simplify pointOrMatrix parameters and only allow points. Also remove internal _point cache from PointText and directly link #point to #matrix. 2012-12-25 17:57:04 +01:00
Jürg Lehni
623bed4c4a Also clone the applyMatrix property. 2012-12-25 17:08:17 +01:00
Jürg Lehni
947afe85f0 Simplify Path#initialize() code. 2012-12-25 16:59:05 +01:00
Jürg Lehni
8f093f6dd7 Remove all PORT comments, since we won't port back features to Scriptographer. 2012-12-25 16:07:48 +01:00
Jürg Lehni
b54bdadaff Rename Item#transformContent to #applyMatrix. 2012-12-24 17:39:24 +01:00
Jürg Lehni
9d47bfcf0b Suppress weird JSdoc warnings. 2012-12-24 17:20:00 +01:00
Jürg Lehni
4731a8909d Update copyright / library information. 2012-12-24 16:50:10 +01:00
Jürg Lehni
1e283fe113 Implement Raster#source and clean up #initialize() 2012-12-24 01:12:41 +01:00
Jürg Lehni
d6fceb928f Implement Item#transformContent property, which controls wether Item#transform() directly applies transformations to contents, or simply stores them in Item#matrix. 2012-12-24 00:39:42 +01:00
Jürg Lehni
e21ea457a7 Remove Item#apply() and clean up #applyMatrix() and simplify handling. 2012-12-24 00:29:09 +01:00
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