Commit graph

330 commits

Author SHA1 Message Date
Jürg Lehni
b9c58d1732 Fix issue with text positioning.
HTML ignores white space before / after content.
2013-03-01 13:29:48 -08:00
Jürg Lehni
a38809d3e3 Handle viewBox correctly for normal nodes again. 2013-03-01 13:10:05 -08:00
Jürg Lehni
835ca80eff SVG nodeNames are case sensitive. 2013-03-01 12:59:43 -08:00
Jürg Lehni
f1fe2575a8 Remove SVG clipPaths from DOM. 2013-03-01 12:54:27 -08:00
Jürg Lehni
0499dd06f4 Support default black fill when importing SVG. 2013-03-01 12:32:24 -08:00
Jürg Lehni
08fbf0f5b4 Fix Symbol clipping. 2013-03-01 12:14:21 -08:00
Jürg Lehni
1c8e3a5db1 Fix an error in applyTextAttribute() handling. 2013-03-01 12:09:01 -08:00
Jürg Lehni
bec61c6829 Implement Symbol clipping and handle positioning correctly.
Complicated stuff...
2013-03-01 11:19:47 -08:00
Jürg Lehni
2706c32924 Implement a way for applyAttribute() methods to query other attributes / styles. 2013-03-01 11:18:50 -08:00
Jürg Lehni
6571c28256 Fold applyAttribute() into applyAttributes(). 2013-03-01 10:31:42 -08:00
Jürg Lehni
417cfde795 Simplify and clean up applyTextAttribute(). 2013-03-01 10:27:19 -08:00
Jürg Lehni
afeb8cbe70 No need to expand CSS 'font' shorthand property, since we're now iterating all style properties. 2013-03-01 10:21:19 -08:00
Jürg Lehni
01026c0896 Fix support for viewBox when importing SVG symbols. 2013-03-01 10:08:17 -08:00
Jürg Lehni
9379b37d26 Remove accidentally checked in file. 2013-02-28 19:42:07 -08:00
Jürg Lehni
78b3621cf6 Implement PathItem#pathData getter and setter for SVG style path data.
And use it fro SvgImport too.
2013-02-28 19:14:06 -08:00
Jürg Lehni
1a37bb7252 Minor clean up. 2013-02-28 19:14:06 -08:00
Jürg Lehni
027c944d3e Add missing parameters again to viewBox. 2013-02-28 19:14:06 -08:00
Jürg Lehni
f142a9d015 Optimize code a bit by changing parameter sequence. 2013-02-28 19:14:06 -08:00
Jürg Lehni
c29a7e38a0 Improve SvgImport to support styles that come from CSS style sheet rules. 2013-02-28 19:14:05 -08:00
Jürg Lehni
84f3f041e3 Further simplify SVG attribute / style handling by merging in SvgStyles. 2013-02-28 19:14:05 -08:00
Jürg Lehni
8585556584 Use applyAttribute() lookup table in SvgImport instead of switch statement. 2013-02-28 19:14:05 -08:00
Jürg Lehni
9d8cddbe42 Implement new private Format object that handles formatting of number, point, size and rectangle. 2013-02-28 19:14:05 -08:00
Jürg Lehni
e392496f9d Remove Base.toFloat() and replace with direct parseFloat() calls. 2013-02-28 19:14:05 -08:00
Jürg Lehni
c3b5035aed Fix importing of SVG groups with styles applied to them.
Closes #149.
2013-02-14 21:42:50 -08:00
Jürg Lehni
741c0b7855 Fix error in parsing of empty SVG array attributes. 2013-02-14 21:09:44 -08:00
Jürg Lehni
66c491a8fd Minor code clean up. 2013-02-12 17:23:56 -08:00
Jürg Lehni
7df4338ef5 Fix linear gradient orientation when shape substitution is applied. 2013-02-12 17:22:31 -08:00
Jürg Lehni
f554bdce2a Fix issues with SVG gradient export. 2013-02-12 17:05:54 -08:00
Jürg Lehni
85d2700eb1 Implement namespaces for SVG properties in SvgExport. 2013-02-11 19:46:05 -08:00
Jürg Lehni
629e16144a Define #_type property for both Symbol and Gradient and use it in SvgExport. 2013-02-11 18:23:41 -08:00
Jürg Lehni
435341f30b Fix name clash due to recent renaming. 2013-02-11 14:36:44 -08:00
Jürg Lehni
efaae62799 Reuse attrs variable. 2013-02-10 19:40:44 -08:00
Jürg Lehni
20011d912a Fix typo. 2013-02-10 19:40:15 -08:00
Jürg Lehni
e0d0eb175a Implement exporting of Gradients to SVG. 2013-02-10 19:38:35 -08:00
Jürg Lehni
199fc046bf Rename 'svg' variables to more meaningful 'node'. 2013-02-10 19:37:19 -08:00
Jürg Lehni
de4e928045 Clean up SvgExport code. 2013-02-10 19:02:53 -08:00
Jürg Lehni
f06701055d Implement exporting of Symbols to SVG. 2013-02-10 10:23:49 -08:00
Jürg Lehni
49728665e6 Clear definitions lookup at the end of SVG import. 2013-02-09 13:59:04 -08:00
Jürg Lehni
0f846098c4 Support CompoundPath in SvgExport. 2013-02-09 13:38:22 -08:00
Jürg Lehni
b10454a83c Rename Matrix#createInverse() to #inverted() and #createShiftless() to #shiftless(). 2013-02-09 12:18:40 -08:00
Jürg Lehni
d70fdb69d3 Adapt to recent changes to Matrix#decompose() in SvgExport code. 2013-02-09 12:11:56 -08:00
Jürg Lehni
15c8652747 Add support for Raster to SvgExport. 2013-02-09 09:44:25 -08:00
Jürg Lehni
e438ac8223 Implement proper matrix decomposition and use it in SvgExport. 2013-02-08 23:02:20 -08:00
Jürg Lehni
75adbd0adc Disable transformation detection for now, until issues with Matrix#getRotation() and Matrix#getScaling() are solved. 2013-02-08 14:36:49 -08:00
Jürg Lehni
6c9c16ad3d Update copyright information comments, and year. 2013-01-28 18:03:27 -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
589d4e6e73 Handle exporting of empty paths. 2012-12-09 18:04:56 -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
68dc7e8b12 Correctly fix SVG alpha support through opacity attributes. 2012-12-08 20:09:24 -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
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
f268c6e152 Rename Color#toCssString() to #toCss(), and only include alpha if its < 1. 2012-12-01 12:31:22 -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
61b6026361 Rename CompoundPath#flatten() to #reduce(), to avoid clash with Path#flatten(). 2012-11-23 01:16:21 -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
92eb89fc43 Clean up and shorten code. 2012-11-10 15:48:15 -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
0e22430993 Only set opacity and visibility when they differ from the defaults. 2012-11-07 01:02:28 -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
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
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
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
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
aa35226916 No need for two parameter version of formatPoint(). 2012-11-06 07:16:25 -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
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
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