Commit graph

326 commits

Author SHA1 Message Date
Jürg Lehni
f2bb5d07df Let's not go too far with optimizations. 2013-06-11 15:10:02 -07:00
Jürg Lehni
875a766d19 Implement clipPath support in SVGExporter. 2013-06-11 14:50:13 -07:00
Jürg Lehni
d41f79598e Change exportDefinitions() to create an actual <defs> container for definitions. 2013-06-11 14:26:04 -07:00
Jürg Lehni
470cfae9f1 Clean up export code. 2013-06-11 14:15:54 -07:00
Jürg Lehni
a1cab3592b No need to explicitly set fill to 'none' anymore since comparing style with parent handles this for us automatically now. 2013-06-11 14:15:43 -07:00
Jürg Lehni
b4ff0d347e Optimize SVG import for clipped groups. 2013-06-11 12:57:03 -07:00
Jürg Lehni
48651d5fb1 Fix regression in importing SVG viewBox. 2013-06-08 13:44:50 -07:00
Jürg Lehni
cd7db56249 Remove all create() constructors for basic types since new constructors are now faster.
Woop!
2013-05-27 23:57:31 -07:00
Jürg Lehni
15b1ea7af0 Solve issue with SVG gradients on Firefox. 2013-05-27 10:12:23 -07:00
Jürg Lehni
80f9f6061c Change the way the Line class handles direction vectors and infinite lines.
The beginning of performance improvements in the Line class.
2013-05-26 15:44:52 -07:00
Jürg Lehni
7f00ef8f05 Fix white-spaces. 2013-05-24 22:25:22 -07:00
Jürg Lehni
2b4dddbb1f Handle allowNull correctly again in SVGImport. 2013-05-09 16:16:48 -07:00
Jürg Lehni
a4e875cf29 Simplify SVGImport attribute parsing and correctly handle failing tests with invalid coordinates. 2013-05-09 16:08:38 -07:00
Jürg Lehni
093f4cf7ba Fix issue with SVG transformations not being applied to gradient fills. 2013-05-09 02:37:48 -07:00
Jürg Lehni
9e5b47c1ac Implement SVG transform attribute parser, to completely remove dependency on baseVal. 2013-05-09 02:31:10 -07:00
Jürg Lehni
8cc74820a8 Handel issue in node-canvas where color stop offsets cannot be strings. 2013-05-09 01:57:07 -07:00
Jürg Lehni
e9fb78aa08 Start removing dependencies on SVG baseVal. 2013-05-09 01:46:13 -07:00
Jürg Lehni
8cd57743c8 Switch to handling SVG tagNames case-insensitively across the whole codebase.
Since Node's jsdom doesn't provide case-sensitive tagNames.
2013-05-09 01:45:38 -07:00
Jürg Lehni
aa757e1d7b Use DOMParser to handle SVG strings. 2013-05-09 00:22:42 -07:00
Jürg Lehni
6f347c98b3 Fix formatting. 2013-05-08 20:29:37 -07:00
Jürg Lehni
b3d7f5aff6 Export view size and set svg attributes in project.exportSVG() 2013-05-08 20:16:53 -07:00
Jürg Lehni
041f3a6c4d jsdom uses uppercase values for nodeName with SVG too. 2013-05-08 18:18:47 -07:00
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