summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/kitfox/svg/animation/Animate.java
diff options
context:
space:
mode:
authorkitfox2014-02-06 09:52:58 +0100
committerkitfox2014-02-06 09:52:58 +0100
commitddd29c1524f3f77691be48f9778de7cabc26f52d (patch)
tree427d18c868a26a075bc3f1a0377b27129a473b9f /src/main/java/com/kitfox/svg/animation/Animate.java
parentFixing radial gradients where center and focal point are coincident. (diff)
downloadsvg-salamander-core-ddd29c1524f3f77691be48f9778de7cabc26f52d.tar.gz
svg-salamander-core-ddd29c1524f3f77691be48f9778de7cabc26f52d.tar.xz
svg-salamander-core-ddd29c1524f3f77691be48f9778de7cabc26f52d.zip
Fixing SVGSALAMANDER-30. Animation elements with a 'to' but not a 'from' will now get their from value from their parent element.
git-svn-id: https://svn.java.net/svn/svgsalamander~svn/trunk/svg-core@164 7dc7fa77-23fb-e6ad-8e2e-c86bd48ed22b
Diffstat (limited to 'src/main/java/com/kitfox/svg/animation/Animate.java')
-rw-r--r--src/main/java/com/kitfox/svg/animation/Animate.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/java/com/kitfox/svg/animation/Animate.java b/src/main/java/com/kitfox/svg/animation/Animate.java
index 3ef5287..0ac491e 100644
--- a/src/main/java/com/kitfox/svg/animation/Animate.java
+++ b/src/main/java/com/kitfox/svg/animation/Animate.java
@@ -36,6 +36,7 @@
package com.kitfox.svg.animation;
+import com.kitfox.svg.SVGConst;
import com.kitfox.svg.SVGElement;
import com.kitfox.svg.SVGException;
import com.kitfox.svg.SVGLoaderHelper;
@@ -47,6 +48,8 @@ import java.awt.Color;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.awt.geom.PathIterator;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
@@ -197,6 +200,21 @@ public class Animate extends AnimateBase implements AnimateColorIface
{
return byValue * interp;
}
+ else if (toExists)
+ {
+ StyleAttribute style = new StyleAttribute(getAttribName());
+ try
+ {
+ getParent().getStyle(style, true, false);
+ }
+ catch (SVGException ex)
+ {
+ Logger.getLogger(SVGConst.SVG_LOGGER).log(Level.WARNING,
+ "Could not get from value", ex);
+ }
+ double from = style.getDoubleValue();
+ return toValue * interp + from * (1.0 - interp);
+ }
//Should not reach this line
throw new RuntimeException("Animate tag could not be evalutated - insufficient arguements");