<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.synfig.org/index.php?action=history&amp;feed=atom&amp;title=Sif2svg.xsl</id>
		<title>Sif2svg.xsl - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.synfig.org/index.php?action=history&amp;feed=atom&amp;title=Sif2svg.xsl"/>
		<link rel="alternate" type="text/html" href="https://wiki.synfig.org/index.php?title=Sif2svg.xsl&amp;action=history"/>
		<updated>2026-04-30T19:31:24Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>https://wiki.synfig.org/index.php?title=Sif2svg.xsl&amp;diff=23306&amp;oldid=prev</id>
		<title>Bazza: Created page with &quot;&lt;pre&gt; &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:math=&quot;http://exslt.org/math&quot; xmlns:str=&quot;http:...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.synfig.org/index.php?title=Sif2svg.xsl&amp;diff=23306&amp;oldid=prev"/>
				<updated>2018-12-30T16:43:22Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt; &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt; &amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:math=&amp;quot;http://exslt.org/math&amp;quot; xmlns:str=&amp;quot;http:...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:math=&amp;quot;http://exslt.org/math&amp;quot; xmlns:str=&amp;quot;http://exslt.org/strings&amp;quot; xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; xmlns:xlink=&amp;quot;http://www.w3.org/1999/xlink&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:output method=&amp;quot;xml&amp;quot; indent=&amp;quot;yes&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;canvas&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;svg version=&amp;quot;1.1&amp;quot; width=&amp;quot;{@width}&amp;quot; height=&amp;quot;{@height}&amp;quot; filter=&amp;quot;url(#gamma)&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;viewBox&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:variable name=&amp;quot;view-box&amp;quot; select=&amp;quot;str:split(@view-box)&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;0+$view-box[1]&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;-$view-box[2]&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;-$view-box[1]+$view-box[3]&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;$view-box[2]-$view-box[4]&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;@antialias=0&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;shape-rendering&amp;quot;&amp;gt;optimizeSpeed&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
			&amp;lt;defs&amp;gt;&lt;br /&gt;
				&amp;lt;filter id=&amp;quot;gamma&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;feComponentTransfer&amp;gt;&lt;br /&gt;
						&amp;lt;feFuncR type=&amp;quot;gamma&amp;quot; exponent=&amp;quot;0.45&amp;quot;/&amp;gt;&lt;br /&gt;
						&amp;lt;feFuncG type=&amp;quot;gamma&amp;quot; exponent=&amp;quot;0.45&amp;quot;/&amp;gt;&lt;br /&gt;
						&amp;lt;feFuncB type=&amp;quot;gamma&amp;quot; exponent=&amp;quot;0.45&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/feComponentTransfer&amp;gt;&lt;br /&gt;
				&amp;lt;/filter&amp;gt;&lt;br /&gt;
			&amp;lt;/defs&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;layer|name|desc&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/svg&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;title&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;desc&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;desc&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/desc&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;layer&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;error type=&amp;quot;{@type}&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;layer[@type='PasteCanvas']&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;g transform=&amp;quot;translate({param/vector/x}, {-param/vector/y})&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;param[@name='canvas']/canvas/layer&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;/g&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;layer[@type='rectangle']&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;rect id=&amp;quot;{@desc}&amp;quot; x=&amp;quot;{math:min(param/vector/x)}&amp;quot; y=&amp;quot;{-math:max(param/vector/y)}&amp;quot; width=&amp;quot;{math:abs(param[@name='point2']/vector/x - param[@name='point1']/vector/x)}&amp;quot; height=&amp;quot;{math:abs(param[@name='point2']/vector/y - param[@name='point1']/vector/y)}&amp;quot; fill-opacity=&amp;quot;{param[@name='amount']/real/@value * param/color/a}&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;fill&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:apply-templates select=&amp;quot;param/color&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
		&amp;lt;/rect&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;layer[@type='import']&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;image id=&amp;quot;{@desc}&amp;quot; xlink:href=&amp;quot;{param[@name='filename']/string}&amp;quot; x=&amp;quot;{math:min(param/vector/x)}&amp;quot; y=&amp;quot;{-math:max(param/vector/y)}&amp;quot; width=&amp;quot;{math:abs(param[@name='br']/vector/x - param[@name='tl']/vector/x)}&amp;quot; height=&amp;quot;{math:abs(param[@name='br']/vector/y - param[@name='tl']/vector/y)}&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;param[@name='br']/vector/x &amp;amp;lt; param[@name='tl']/vector/x&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;transform&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:text&amp;gt;scale(&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;param[@name='br']/vector/x &amp;amp;lt; param[@name='tl']/vector/x&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:text&amp;gt;-1&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:text&amp;gt;1&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:text&amp;gt;,&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:text&amp;gt;1&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;/image&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;layer[@type='star']&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;circle id=&amp;quot;{@desc}&amp;quot; cx=&amp;quot;{param[@name='origin']/vector/x}&amp;quot; cy=&amp;quot;{-param[@name='origin']/vector/y}&amp;quot; r=&amp;quot;{param[@name='radius1']/real/@value}&amp;quot; r2=&amp;quot;{param[@name='radius1']/real/@value}&amp;quot; points=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;fill&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:apply-templates select=&amp;quot;param/color&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
		&amp;lt;/circle&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;layer[@type='circle']&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;circle id=&amp;quot;{@desc}&amp;quot; r=&amp;quot;{param[@name='radius']/real/@value}&amp;quot; fill-opacity=&amp;quot;{param[@name='amount']/real/@value * param/color/a}&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;cx&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;param[@name='origin']/vector&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;param[@name='origin']/vector/x&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;param[@name='pos']/vector&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;param[@name='pos']/vector/x&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;param[@name='origin']/animated[@type='vector']&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;param[@name='origin']/animated[@type='vector']/waypoint/vector/x&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;cy&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;param[@name='origin']/vector&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;-param[@name='origin']/vector/y&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;param[@name='pos']/vector&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;-param[@name='pos']/vector/y&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;param[@name='origin']/animated[@type='vector']&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;-param[@name='origin']/animated[@type='vector']/waypoint/vector/y&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;fill&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:apply-templates select=&amp;quot;param/color&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;param[@name='origin']/animated[@type='vector']&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:call-template name=&amp;quot;smilTransform&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;type&amp;quot; select=&amp;quot;'translate'&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;time&amp;quot; select=&amp;quot;param[@name='origin']/animated[@type='vector']/waypoint&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;animate&amp;quot; select=&amp;quot;param[@name='origin']/animated[@type='vector']/waypoint/vector&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
				&amp;lt;!--&amp;lt;xsl:call-template name=&amp;quot;smilXML&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;attribute&amp;quot; select=&amp;quot;'cx'&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;time&amp;quot; select=&amp;quot;param[@name='origin']/animated[@type='vector']/waypoint/@time&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;animate&amp;quot; select=&amp;quot;param[@name='origin']/animated[@type='vector']/waypoint/vector/x&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:call-template name=&amp;quot;smilXML&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;attribute&amp;quot; select=&amp;quot;'cy'&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;time&amp;quot; select=&amp;quot;param[@name='origin']/animated[@type='vector']/waypoint/@time&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;animate&amp;quot; select=&amp;quot;param[@name='origin']/animated[@type='vector']/waypoint/vector/y&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:call-template&amp;gt;--&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;/circle&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;layer[@type='text']&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:variable name=&amp;quot;text&amp;quot; select=&amp;quot;str:split(param[@name='text']/string, '&amp;amp;#xA;')&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:variable name=&amp;quot;x&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;param[@name='origin']/vector/x&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;param[@name='origin']/vector/x&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;param[@name='pos']/vector/x&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;param[@name='pos']/vector/x&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
		&amp;lt;text id=&amp;quot;{@desc}&amp;quot; x=&amp;quot;{$x}&amp;quot; font-weight=&amp;quot;{param[@name='weight']/integer/@value}&amp;quot; font-family=&amp;quot;{param[@name='family']/string}&amp;quot; text-anchor=&amp;quot;middle&amp;quot; fill-opacity=&amp;quot;{param[@name='amount']/real/@value * param/color/a}&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;y&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:if test=&amp;quot;param[@name='origin']/vector/y&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;-param[@name='origin']/vector/y - count($text) div 8.75&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:if test=&amp;quot;param[@name='pos']/vector/y&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;-param[@name='pos']/vector/y - count($text) div 8.75&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;font-size&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;param[@name='size']/vector/x * 1&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;fill&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:apply-templates select=&amp;quot;param/color&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:for-each select=&amp;quot;$text&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;1 = position()&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
						&amp;lt;tspan x=&amp;quot;{$x}&amp;quot; dy=&amp;quot;1em&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&amp;lt;/tspan&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
		&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;layer[@type='polygon']&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:variable name=&amp;quot;origin&amp;quot; select=&amp;quot;param[@name='origin']/vector&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;polygon id=&amp;quot;{@desc}&amp;quot; fill-opacity=&amp;quot;{param[@name='amount']/real/@value * param/color/a}&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;points&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:for-each select=&amp;quot;param[@name='vector_list']/dynamic_list[@type='vector']/entry/vector&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;$origin/x + x&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;,&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;-$origin/y - y&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;fill&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:apply-templates select=&amp;quot;param/color&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
		&amp;lt;/polygon&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;layer[@type='region'] | layer[@type='outline']&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:variable name=&amp;quot;x&amp;quot; select=&amp;quot;param[@name='origin']/vector/x&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:variable name=&amp;quot;y&amp;quot; select=&amp;quot;-param[@name='origin']/vector/y&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:variable name=&amp;quot;points&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:for-each select=&amp;quot;param[@name='bline']/bline[@type='bline_point']/entry/composite[@type='bline_point']&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;position() = 1&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:text&amp;gt;M &amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$x + point/vector/x&amp;quot;/&amp;gt;,&amp;lt;xsl:value-of select=&amp;quot;$y - point/vector/y&amp;quot;/&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:text&amp;gt; C &amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$x + point/vector/x + t2/radial_composite[@type='vector']/radius/real/@value * -math:cos(t2/radial_composite[@type='vector']/theta/angle/@value) div 3&amp;quot;/&amp;gt;,&amp;lt;xsl:value-of select=&amp;quot;$y - point/vector/y + t2/radial_composite[@type='vector']/radius/real/@value * math:sin(t2/radial_composite[@type='vector']/theta/angle/@value) div 3&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$x + point/vector/x + t1/radial_composite[@type='vector']/radius/real/@value * -math:cos(3.14159 * t1/radial_composite[@type='vector']/theta/angle/@value div 180) div 3&amp;quot;/&amp;gt;,&amp;lt;xsl:value-of select=&amp;quot;$y - point/vector/y + t1/radial_composite[@type='vector']/radius/real/@value * math:sin(3.14159 * t1/radial_composite[@type='vector']/theta/angle/@value div 180) div 3&amp;quot;/&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$x + point/vector/x&amp;quot;/&amp;gt;,&amp;lt;xsl:value-of select=&amp;quot;$y - point/vector/y&amp;quot;/&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:text&amp;gt; C &amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$x + point/vector/x + t2/radial_composite[@type='vector']/radius/real/@value * math:cos(3.14159 * t2/radial_composite[@type='vector']/theta/angle/@value div 180) div 3&amp;quot;/&amp;gt;,&amp;lt;xsl:value-of select=&amp;quot;$y - point/vector/y + t2/radial_composite[@type='vector']/radius/real/@value * -math:sin(3.14159 * t2/radial_composite[@type='vector']/theta/angle/@value div 180) div 3&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;param[@name='bline']/bline[@loop] = 'true'&amp;quot;&amp;gt; &amp;lt;!-- FIXME: reprendre ici demain. --&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$x + param[@name='bline']/bline[@type='bline_point']/entry[1]/composite[@type='bline_point']/point/vector/x + param[@name='bline']/bline[@type='bline_point']/entry[1]/composite[@type='bline_point']/t1/radial_composite[@type='vector']/radius/real/@value * -math:cos(3.14159 * param[@name='bline']/bline[@type='bline_point']/entry[1]/composite[@type='bline_point']/t1/radial_composite[@type='vector']/theta/angle/@value div 180) div 3&amp;quot;/&amp;gt;,&amp;lt;xsl:value-of select=&amp;quot;$y - param[@name='bline']/bline[@type='bline_point']/entry[1]/composite[@type='bline_point']/point/vector/y + param[@name='bline']/bline[@type='bline_point']/entry[1]/composite[@type='bline_point']/t1/radial_composite[@type='vector']/radius/real/@value * math:sin(3.14159 * param[@name='bline']/bline[@type='bline_point']/entry[1]/composite[@type='bline_point']/t1/radial_composite[@type='vector']/theta/angle/@value div 180) div 3&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$x + param[@name='bline']/bline[@type='bline_point']/entry[1]/composite[@type='bline_point']/point/vector/x&amp;quot;/&amp;gt;,&amp;lt;xsl:value-of select=&amp;quot;$y - param[@name='bline']/bline[@type='bline_point']/entry[1]/composite[@type='bline_point']/point/vector/y&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:variable&amp;gt;&lt;br /&gt;
		&amp;lt;path id=&amp;quot;{@desc}&amp;quot; d=&amp;quot;{$points}&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:when test=&amp;quot;@type='region'&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:attribute name=&amp;quot;fill&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;param/color&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:attribute name=&amp;quot;stroke&amp;quot;&amp;gt;none&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:attribute name=&amp;quot;stroke&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:apply-templates select=&amp;quot;param/color&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:attribute name=&amp;quot;stroke-width&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;param[@name='width']/real/@value&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:attribute name=&amp;quot;fill&amp;quot;&amp;gt;none&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;param[@name='origin']/animated[@type='vector']&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:call-template name=&amp;quot;smilTransform&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;attribute&amp;quot; select=&amp;quot;'translate'&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;time&amp;quot; select=&amp;quot;param[@name='origin']/animated[@type='vector']/waypoint&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;animate&amp;quot; select=&amp;quot;param[@name='origin']/animated[@type='vector']/waypoint/vector&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;/path&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!--&amp;lt;xsl:template match=&amp;quot;layer[@type='linear_gradient']&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;defs&amp;gt;&lt;br /&gt;
			&amp;lt;linearGradient id=&amp;quot;{@desc}&amp;quot;&lt;br /&gt;
				x1=&amp;quot;0&amp;quot;&lt;br /&gt;
				y1=&amp;quot;0&amp;quot;&lt;br /&gt;
				x2=&amp;quot;{math:min(param[@name='p2']/vector/x)}&amp;quot;&lt;br /&gt;
				y2=&amp;quot;{-math:max(param[@name='p2']/vector/y)}&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:for-each select=&amp;quot;param[@name='gradient']/gradient/color&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;stop 	offset=&amp;quot;{100*@pos}%&amp;quot;&lt;br /&gt;
						stop-color=&amp;quot;rgb({str:split(255*r, '.')[1]},{str:split(255*g, '.')[1]},{str:split(255*b, '.')[1]})&amp;quot;/&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
			&amp;lt;/linearGradient&amp;gt;&lt;br /&gt;
		&amp;lt;/defs&amp;gt;&lt;br /&gt;
		&amp;lt;rect fill=&amp;quot;url(#{@desc})&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:variable name=&amp;quot;view-box&amp;quot; select=&amp;quot;str:split(/canvas/@view-box)&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;x&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;0+$view-box[1]&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;y&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;-$view-box[2]&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;width&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;-$view-box[1]+$view-box[3]&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;height&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$view-box[2]-$view-box[4]&amp;quot;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
		&amp;lt;/rect&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;color&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:text&amp;gt;rgb(&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:value-of select=&amp;quot;str:split(r * 255, '.')[1]&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;,&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:value-of select=&amp;quot;str:split(g * 255, '.')[1]&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;,&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:value-of select=&amp;quot;str:split(b * 255, '.')[1]&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;d&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:param name=&amp;quot;vector&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template name=&amp;quot;keyTimes&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:param name=&amp;quot;time&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:value-of select=&amp;quot;$time/@time&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;!--&amp;lt;xsl:for-each select=&amp;quot;$time&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;str:replace(@time, 's', '') div str:replace(/canvas/@end-time, 's', '')&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:if test=&amp;quot;not(position()=last())&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:text&amp;gt;; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:for-each&amp;gt;--&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template name=&amp;quot;smilXML&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:param name=&amp;quot;attribute&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:param name=&amp;quot;time&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:param name=&amp;quot;animate&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;animate attributeName=&amp;quot;{$attribute}&amp;quot; dur=&amp;quot;{/canvas/@end-time}&amp;quot; fill=&amp;quot;freeze&amp;quot; repeatCount=&amp;quot;indefinite&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!--&amp;lt;xsl:attribute name=&amp;quot;keyTimes&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:call-template name=&amp;quot;keyTimes&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;time&amp;quot; select=&amp;quot;$time&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;--&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;values&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:for-each select=&amp;quot;$animate&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:if test=&amp;quot;not(position()=last())&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:text&amp;gt;; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
		&amp;lt;/animate&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template name=&amp;quot;smilTransform&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:param name=&amp;quot;type&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:param name=&amp;quot;time&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:param name=&amp;quot;animate&amp;quot;/&amp;gt;&lt;br /&gt;
		&amp;lt;animateTransform attributeName=&amp;quot;transform&amp;quot; type=&amp;quot;{$type}&amp;quot; dur=&amp;quot;{/canvas/@end-time}&amp;quot; fill=&amp;quot;freeze&amp;quot; repeatCount=&amp;quot;indefinite&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!--&amp;lt;xsl:attribute name=&amp;quot;keyTimes&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:call-template name=&amp;quot;keyTimes&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:with-param name=&amp;quot;vector&amp;quot; select=&amp;quot;$time&amp;quot; /&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;--&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;values&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:for-each select=&amp;quot;$animate&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:value-of select=&amp;quot;-str:split(/canvas/@view-box)[1] + x&amp;quot;/&amp;gt;,&amp;lt;xsl:value-of select=&amp;quot;y&amp;quot;/&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:if test=&amp;quot;not(position()=last())&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;xsl:text&amp;gt;; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
					&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
		&amp;lt;/animateTransform&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bazza</name></author>	</entry>

	</feed>