Commit graph

354 commits

Author SHA1 Message Date
Jürg Lehni
96d9b6730f Rename Svg acronyms in API to SVG. 2013-04-23 07:19:08 -07:00
Jürg Lehni
e1807214f4 Large refactoring of Style handling for notable speed improvements. 2013-04-19 19:31:29 -07:00
Jürg Lehni
98f7c020bd Use Item#type instead of instanceof checks for better performance. 2013-04-19 19:27:02 -07:00
Jürg Lehni
bf9acd4499 Correct Numerical.KAPPA value. 2013-04-19 18:57:31 -07:00
Jürg Lehni
90f2614d52 Export Numerical object and move KAPPA constant there. 2013-04-19 17:03:41 -07:00
Jürg Lehni
9efbc288a1 Merge Path.Rectangle and Path.RoundRectangle. 2013-04-19 12:36:49 -07:00
Jürg Lehni
e9aad895ae Import and export Item#data in SVG as well.
Closes #188.
2013-04-09 17:53:26 -07:00
Jürg Lehni
fbe8a558bd Refactor Format literal to Formatter class that keeps precision stored. 2013-04-09 17:32:19 -07:00
Jürg Lehni
b4a99415d0 Merge PathStyle, CharacterStyle and ParagraphStyle into Style.
Closes #130.
2013-04-09 16:46:20 -07:00
Jürg Lehni
b9532f6a1a Rename Color#hilite -> Color#highlight. 2013-04-09 08:51:14 -07:00
Jürg Lehni
da7b32a18e Clean up code references to GradientColor. 2013-04-09 08:36:17 -07:00
Jürg Lehni
5209e97c8d Merge GradientColor into Color.
Work in progress.
2013-04-09 01:21:36 -07:00
Jürg Lehni
9cdc4b9372 Switch back to only one Gradient constructor for both linear and radial Gradients. 2013-04-08 20:52:21 -07:00
Jürg Lehni
4bc3882c82 Do not access internal _alpha property. 2013-04-06 18:14:45 +02:00
Jürg Lehni
18ed9010a6 Derive Item#type from Item#_class and use that instead in code that depends on Item types. 2013-04-06 18:07:30 +02:00
Jürg Lehni
f43b322d2a Rename Base#_type property to #_class. 2013-04-06 09:16:08 +02:00
Jürg Lehni
8a69fcd1e5 Actually use precision setting in Path#getPathData(). 2013-03-03 16:51:31 -08:00
Jürg Lehni
ae14cedc7f Remove SVG constants, as we don't use them anymore. 2013-03-02 08:11:47 -08:00
Jürg Lehni
a63e8ac54c Avoid empty d attributes in SVG nodes, since they throw errors. 2013-03-01 21:29:45 -08:00
Jürg Lehni
58fad6ed72 Switch from Gradient#type to separate LinearGradient / RadialGradient classes.
But remain backward compatible through direct calls to Gradient constructor.
2013-03-01 17:39:36 -08:00
Jürg Lehni
3f5d0a6925 Merge constructor._name with _type and use CamelCase for Item types. 2013-03-01 17:13:22 -08:00
Jürg Lehni
1cd4d278fc Fix issue with path clipping. 2013-03-01 15:30:57 -08:00
Jürg Lehni
5527ab1da8 Support point translations for normals defs in SvgImport. 2013-03-01 14:52:20 -08:00
Jürg Lehni
b79e32194c Fix issue with SVG tests.
Should really look closer at what's going on there.
2013-03-01 14:17:31 -08:00
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