From 6f284f4b80e213850225fe85aa1becaa2e27a850 Mon Sep 17 00:00:00 2001 From: kitfox Date: Thu, 30 Aug 2012 20:31:44 +0000 Subject: Can now handle gradients where first and last points are coincident. git-svn-id: https://svn.java.net/svn/svgsalamander~svn/trunk/svg-core@123 7dc7fa77-23fb-e6ad-8e2e-c86bd48ed22b --- src/main/java/com/kitfox/svg/LinearGradient.java | 23 +++++++++++++---------- src/main/java/com/kitfox/svg/RadialGradient.java | 23 +++++++++++++---------- 2 files changed, 26 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/main/java/com/kitfox/svg/LinearGradient.java b/src/main/java/com/kitfox/svg/LinearGradient.java index 06a1503..81be3d5 100644 --- a/src/main/java/com/kitfox/svg/LinearGradient.java +++ b/src/main/java/com/kitfox/svg/LinearGradient.java @@ -27,15 +27,12 @@ package com.kitfox.svg; -import com.kitfox.svg.xml.StyleAttribute; import java.awt.geom.*; import java.awt.*; import com.kitfox.svg.xml.*; -import org.xml.sax.*; //import org.apache.batik.ext.awt.*; -import com.kitfox.svg.batik.*; /** @@ -110,13 +107,19 @@ public class LinearGradient extends Gradient { break; } - com.kitfox.svg.batik.LinearGradientPaint paint; - if (gradientUnits == GU_USER_SPACE_ON_USE) + Paint paint; + Point2D.Float pt1 = new Point2D.Float(x1, y1); + Point2D.Float pt2 = new Point2D.Float(x2, y2); + if (pt1.equals(pt2)) + { + Color[] colors = getStopColors(); + paint = colors.length > 0 ? colors[0] : Color.black; + } + else if (gradientUnits == GU_USER_SPACE_ON_USE) { -// paint = new LinearGradientPaint(x1, y1, x2, y2, getStopFractions(), getStopColors(), method); paint = new com.kitfox.svg.batik.LinearGradientPaint( - new Point2D.Float(x1, y1), - new Point2D.Float(x2, y2), + pt1, + pt2, getStopFractions(), getStopColors(), method, @@ -138,8 +141,8 @@ public class LinearGradient extends Gradient { viewXform.concatenate(gradientTransform); paint = new com.kitfox.svg.batik.LinearGradientPaint( - new Point2D.Float(x1, y1), - new Point2D.Float(x2, y2), + pt1, + pt2, getStopFractions(), getStopColors(), method, diff --git a/src/main/java/com/kitfox/svg/RadialGradient.java b/src/main/java/com/kitfox/svg/RadialGradient.java index 37b9414..6f6c23f 100644 --- a/src/main/java/com/kitfox/svg/RadialGradient.java +++ b/src/main/java/com/kitfox/svg/RadialGradient.java @@ -27,15 +27,12 @@ package com.kitfox.svg; -import com.kitfox.svg.xml.StyleAttribute; import java.awt.geom.*; import java.awt.*; import com.kitfox.svg.xml.*; -import org.xml.sax.*; //import org.apache.batik.ext.awt.*; -import com.kitfox.svg.batik.*; /** @@ -116,14 +113,20 @@ public class RadialGradient extends Gradient { break; } - com.kitfox.svg.batik.RadialGradientPaint paint; - - if (gradientUnits == GU_USER_SPACE_ON_USE) + Paint paint; + Point2D.Float pt1 = new Point2D.Float(cx, cy); + Point2D.Float pt2 = new Point2D.Float(fx, fy); + if (pt1.equals(pt2)) + { + Color[] colors = getStopColors(); + paint = colors.length > 0 ? colors[0] : Color.black; + } + else if (gradientUnits == GU_USER_SPACE_ON_USE) { paint = new com.kitfox.svg.batik.RadialGradientPaint( - new Point2D.Float(cx, cy), + pt1, r, - new Point2D.Float(fx, fy), + pt2, getStopFractions(), getStopColors(), method, @@ -139,9 +142,9 @@ public class RadialGradient extends Gradient { viewXform.concatenate(gradientTransform); paint = new com.kitfox.svg.batik.RadialGradientPaint( - new Point2D.Float(cx, cy), + pt1, r, - new Point2D.Float(fx, fy), + pt2, getStopFractions(), getStopColors(), method, -- cgit v1.2.3-55-g7522