tkormann 01/10/15 05:33:51 Modified: samples/tests/spec/paints linearGradientOrientation.svg sources/org/apache/batik/bridge SVGLinearGradientElementBridge.java SVGRadialGradientElementBridge.java Log: - bug fix: if x1=x2=y1=y2 on linear gradient - this is not an error but we have to use the last stop color and opacity. - modify the linear gradient example to illustrate that Revision Changes Path 1.2 +19 -2 xml-batik/samples/tests/spec/paints/linearGradientOrientation.svg Index: linearGradientOrientation.svg =================================================================== RCS file: /home/cvs/xml-batik/samples/tests/spec/paints/linearGradientOrientation.svg,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- linearGradientOrientation.svg 2001/10/15 12:15:51 1.1 +++ linearGradientOrientation.svg 2001/10/15 12:33:51 1.2 @@ -14,7 +14,7 @@ <!-- Test external paint servers --> <!-- --> <!-- @author [EMAIL PROTECTED] --> -<!-- @version $Id: linearGradientOrientation.svg,v 1.1 2001/10/15 12:15:51 tkormann Exp $ --> +<!-- @version $Id: linearGradientOrientation.svg,v 1.2 2001/10/15 12:33:51 tkormann Exp $ --> <!-- ========================================================================= --> <?xml-stylesheet type="text/css" href="../../resources/style/test.css" ?> @@ -27,7 +27,7 @@ <!-- ============================================================= --> <g id="testContent"> <text x="225" y="50" class="title">Linear Gradient Orientation</text> - +<g transform="translate(0 -30)"> <!-- ############################### --> <g id="board" style="fill:none; stroke:black;"> @@ -53,6 +53,10 @@ <rect x="75" y="120" width="150" height="50" /> <rect x="225" y="120" width="150" height="50" /> </g> + <g transform="translate(75 340)"> + <rect x="75" y="100" width="150" height="20" style="fill:#eee"/> + <rect x="75" y="120" width="150" height="50" /> + </g> <g style="stroke:none; fill:black; text-anchor:middle; font-size:12"> <text x="150" y="114">x1 < x2 / y1 = y2</text> <text x="300" y="114">x1 > x2 / y1 = y2</text> @@ -69,6 +73,9 @@ <text x="150" y="114">x1 > x2 / y1 < y2</text> <text x="300" y="114">x1 > x2 / y1 > y2</text> </g> + <g transform="translate(75 340)"> + <text x="150" y="114">x1 = x2 = y1 = y2</text> + </g> </g> </g> @@ -103,6 +110,11 @@ xlink:href="#genericGrad" /> <linearGradient id="grad8" x1="1" y1="1" x2="0" y2="0" xlink:href="#genericGrad" /> + + <!-- ### fifth board ### --> + <linearGradient id="grad9" x1=".5" y1=".5" x2=".5" y2=".5" + xlink:href="#genericGrad" /> + </defs> @@ -124,6 +136,11 @@ <rect x="235" y="130" width="130" height="30" fill="url(#grad8)"/> </g> +<g transform="translate(75 340)"> + <rect x="85" y="130" width="130" height="30" fill="url(#grad9)"/> +</g> + + </g> </g> <!-- ============================================================= --> 1.5 +15 -9 xml-batik/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java Index: SVGLinearGradientElementBridge.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- SVGLinearGradientElementBridge.java 2001/09/17 13:37:30 1.4 +++ SVGLinearGradientElementBridge.java 2001/10/15 12:33:51 1.5 @@ -24,7 +24,7 @@ * Bridge class for the <linearGradient> element. * * @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a> - * @version $Id: SVGLinearGradientElementBridge.java,v 1.4 2001/09/17 13:37:30 tkormann Exp $ + * @version $Id: SVGLinearGradientElementBridge.java,v 1.5 2001/10/15 12:33:51 tkormann Exp $ */ public class SVGLinearGradientElementBridge extends AbstractSVGGradientElementBridge { @@ -124,13 +124,19 @@ SVG_Y2_ATTRIBUTE, coordSystemType, uctx); - - return new LinearGradientPaint(p1, - p2, - offsets, - colors, - spreadMethod, - colorSpace, - transform); + // If x1 = x2 and y1 = y2, then the area to be painted will be painted + // as a single color using the color and opacity of the last gradient + // stop. + if (p1.getX() == p2.getX() && p1.getY() == p2.getY()) { + return colors[colors.length-1]; + } else { + return new LinearGradientPaint(p1, + p2, + offsets, + colors, + spreadMethod, + colorSpace, + transform); + } } } 1.6 +3 -1 xml-batik/sources/org/apache/batik/bridge/SVGRadialGradientElementBridge.java Index: SVGRadialGradientElementBridge.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGRadialGradientElementBridge.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- SVGRadialGradientElementBridge.java 2001/09/17 13:37:30 1.5 +++ SVGRadialGradientElementBridge.java 2001/10/15 12:33:51 1.6 @@ -24,7 +24,7 @@ * Bridge class for the <radialGradient> element. * * @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a> - * @version $Id: SVGRadialGradientElementBridge.java,v 1.5 2001/09/17 13:37:30 tkormann Exp $ + * @version $Id: SVGRadialGradientElementBridge.java,v 1.6 2001/10/15 12:33:51 tkormann Exp $ */ public class SVGRadialGradientElementBridge extends AbstractSVGGradientElementBridge { @@ -124,6 +124,8 @@ SVG_R_ATTRIBUTE, coordSystemType, uctx); + // A value of zero will cause the area to be painted as a single color + // using the color and opacity of the last gradient stop. if (r == 0) { return colors[colors.length-1]; } else {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]