Jürg Lehni
8bed8cb15d
Define mechanism for flexible reading of named arguments through Base.readNamed() and Base.hasNamed(), and use it to implement property object literal versions of Path.Constructor code.
2012-12-30 18:24:33 +01:00
Jürg Lehni
d0fff09bb0
Allow creation of rectangles from {point, size} and {center, size} object literals.
2012-12-30 18:17:09 +01:00
Jürg Lehni
24b5f870bd
Change Base.isObject() to also check for instances of plain Base objects, and rename it to Base.isPlainObject().
2012-12-30 17:30:13 +01:00
Jürg Lehni
2abefee336
Merge Base.readValue() with Base.read() and rename Base.peekValue() to Base.peek().
...
When called directly on Base, read() reads values, otherwise the specific type of the subclass it is called on.
2012-12-30 16:07:20 +01:00
Jürg Lehni
1b539301ad
Find a better naming convention for the various getLocation* methods (*At for offsets / parameters, *Of for points), implement the missing methods on Curve and use them in Path.
2012-12-27 21:08:03 +01:00
Jürg Lehni
231369fa01
Shorten code a bit, using loops.
2012-12-27 20:46:12 +01:00
Jürg Lehni
cb8f3291d3
Clean up some comments.
2012-12-27 20:19:23 +01:00
Jürg Lehni
5b9d33f32e
Fix imprecision in intersection code by re-introducing tolerance parameter in Curve#isFlatEnough().
2012-12-27 20:13:45 +01:00
Jürg Lehni
3c4978eb04
Rename Curve#getParameter(point) to Curve#getParameterOf(point), to better distinguish from Curve#getParameterAt(length).
2012-12-27 20:09:21 +01:00
Jürg Lehni
00898908d3
Write documentation for PathItem#getIntersections().
2012-12-27 19:26:40 +01:00
Jürg Lehni
68ad4bb5ba
Implement PathItem#getIntersections(path) and Curve#getIntersections(curve) using divide-and-conquer approach, and new Curve.getBounds().
2012-12-27 19:23:03 +01:00
Jürg Lehni
fdb4bab479
Improve arguments reading in Line constructors.
...
Avoid parameter overriding.
2012-12-27 19:12:30 +01:00
Jürg Lehni
03b5d58e79
Merge branch 'refs/heads/master' into intersection
2012-12-27 18:43:43 +01:00
Jürg Lehni
75596e1d03
Move a part of Path.getBounds() code into Curve._addBounds(), and use it to also define Curve.getBounds().
2012-12-27 18:38:55 +01:00
Jürg Lehni
57a9f4fc91
Use constant substitution for Numerical constants as well.
2012-12-27 18:36:59 +01:00
Jürg Lehni
050ca1dcb1
Further clean up Path.getBounds() code.
2012-12-27 17:43:21 +01:00
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
Peter
1bb7c9f1aa
Use Item.draw in rasterize
2012-12-23 17:52:43 +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
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