vhardy 01/10/01 05:37:10
Modified: sources/org/apache/batik/ext/awt/g2d
TransformStackElement.java
sources/org/apache/batik/svggen SVGTransform.java
test-resources/org/apache/batik/svggen regsvggen.xml
Added: test-sources/org/apache/batik/svggen IdentityTest.java
test-references/org/apache/batik/svggen IdentityTest.svg
Log:
Fixed bug #3871. Added test case exercising bug and validating fix.
No regression found in other SVGGraphics2D regression tests.
Revision Changes Path
1.2 +52 -8
xml-batik/sources/org/apache/batik/ext/awt/g2d/TransformStackElement.java
Index: TransformStackElement.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/ext/awt/g2d/TransformStackElement.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TransformStackElement.java 2001/03/14 01:36:09 1.1
+++ TransformStackElement.java 2001/10/01 12:37:10 1.2
@@ -16,9 +16,10 @@
* type and a value, which is an array of double values.<br>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
- * @version $Id: TransformStackElement.java,v 1.1 2001/03/14 01:36:09 vhardy Exp $
+ * @author <a href="mailto:[EMAIL PROTECTED]">Paul Evenblij</a>
+ * @version $Id: TransformStackElement.java,v 1.2 2001/10/01 12:37:10 vhardy Exp $
*/
-public class TransformStackElement implements Cloneable{
+abstract public class TransformStackElement implements Cloneable{
/**
* Transform type
*/
@@ -43,9 +44,18 @@
* @return an object which is a deep copy of this one
*/
public Object clone() {
+ TransformStackElement newElement = null;
+
+ // start with a shallow copy to get our implementations right
+ try {
+ newElement = (TransformStackElement) super.clone();
+ } catch(java.lang.CloneNotSupportedException ex) {}
+
+ // now deep copy the parameter array
double transformParameters[] = new double[this.transformParameters.length];
System.arraycopy(this.transformParameters, 0, transformParameters, 0,
transformParameters.length);
- return new TransformStackElement(type, transformParameters);
+ newElement.transformParameters = transformParameters;
+ return newElement;
}
/**
@@ -61,25 +71,59 @@
*/
public static TransformStackElement createTranslateElement(double tx, double
ty){
- return new TransformStackElement(TransformType.TRANSLATE, new double[]{ tx,
ty });
+ return new TransformStackElement(TransformType.TRANSLATE, new double[]{ tx,
ty }) {
+ boolean isIdentity(double[] parameters) {
+ return parameters[0] == 0 && parameters[1] == 0;
+ }
+ };
}
public static TransformStackElement createRotateElement(double theta){
- return new TransformStackElement(TransformType.ROTATE, new double[]{ theta
});
+ return new TransformStackElement(TransformType.ROTATE, new double[]{ theta
}) {
+ boolean isIdentity(double[] parameters) {
+ return Math.cos(parameters[0]) == 1;
+ }
+ };
}
public static TransformStackElement createScaleElement(double scaleX, double
scaleY){
- return new TransformStackElement(TransformType.SCALE, new double[]{ scaleX,
scaleY });
+ return new TransformStackElement(TransformType.SCALE, new double[]{ scaleX,
scaleY }) {
+ boolean isIdentity(double[] parameters) {
+ return parameters[0] == 1 && parameters[1] == 1;
+ }
+ };
}
public static TransformStackElement createShearElement(double shearX, double
shearY){
- return new TransformStackElement(TransformType.SHEAR, new double[]{ shearX,
shearY });
+ return new TransformStackElement(TransformType.SHEAR, new double[]{ shearX,
shearY }) {
+ boolean isIdentity(double[] parameters) {
+ return parameters[0] == 0 && parameters[1] == 0;
+ }
+ };
}
public static TransformStackElement
createGeneralTransformElement(AffineTransform txf){
double matrix[] = new double[6];
txf.getMatrix(matrix);
- return new TransformStackElement(TransformType.GENERAL, matrix);
+ return new TransformStackElement(TransformType.GENERAL, matrix) {
+ boolean isIdentity(double[] m) {
+ return (m[0] == 1 && m[2] == 0 && m[4] == 0 &&
+ m[1] == 0 && m[3] == 1 && m[5] == 0);
+ }
+ };
+ }
+
+ /**
+ * Implementation should determine if the parameter list represents
+ * an identity transform, for the instance transform type.
+ */
+ abstract boolean isIdentity(double[] parameters);
+
+ /**
+ * @return true iff this transform is the identity transform
+ */
+ public boolean isIdentity() {
+ return isIdentity(transformParameters);
}
/**
1.4 +103 -42 xml-batik/sources/org/apache/batik/svggen/SVGTransform.java
Index: SVGTransform.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/svggen/SVGTransform.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGTransform.java 2001/03/19 09:26:25 1.3
+++ SVGTransform.java 2001/10/01 12:37:10 1.4
@@ -12,6 +12,7 @@
import java.awt.GradientPaint;
import java.awt.geom.Point2D;
import java.awt.geom.AffineTransform;
+import java.util.Stack;
import org.apache.batik.ext.awt.g2d.GraphicContext;
import org.apache.batik.ext.awt.g2d.TransformType;
@@ -22,7 +23,8 @@
* into an SVG transform attribute.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
- * @version $Id: SVGTransform.java,v 1.3 2001/03/19 09:26:25 cjolif Exp $
+ * @author <a href="mailto:[EMAIL PROTECTED]">Paul Evenblij</a>
+ * @version $Id: SVGTransform.java,v 1.4 2001/10/01 12:37:10 vhardy Exp $
*/
public class SVGTransform extends AbstractSVGConverter{
/**
@@ -57,32 +59,101 @@
* This method tries to collapse the transform stack into an SVG
* string as compact as possible while still conveying the semantic
* of the stack. Successive stack elements of the same kind (e.g., two
- * successive transforms or scales) are collasped into a single element.
+ * successive transforms or scales) are collapsed into a single element.
*
* @param transformStack sequence of transform that should
* be converted to an SVG transform attribute equivalent
*/
public static String toSVGTransform(TransformStackElement transformStack[]){
StringBuffer transformStackBuffer = new StringBuffer();
-
+ int nTransforms = transformStack.length;
//
- // Append transforms in the stack
+ // Append transforms in the presentation stack
//
- int nTransforms = transformStack.length;
+ Stack presentation = new Stack() {
+ /**
+ * Adapted push implementation
+ */
+ public Object push(Object o) {
+ Object element;
+ if(((TransformStackElement)o).isIdentity()) {
+ // identity transform: don't push,
+ // and try to return top of stack
+ element = pop();
+ } else {
+ // non-identity: push,
+ // and return null
+ super.push(o);
+ element = null;
+ }
+ return element;
+ }
+
+ /**
+ * Adapted pop implementation
+ */
+ public Object pop() {
+ Object element = null;
+ if(!super.empty()) {
+ element = super.pop();
+ }
+ return element;
+ }
+ };
boolean canConcatenate = false;
- int i = 0, j = 0;
- while(i<nTransforms){
- // Clone current element and try to concatenate
- // elements on top of it
- TransformStackElement element =
(TransformStackElement)transformStack[i].clone();
+ int i = 0, j = 0, next = 0;
+ TransformStackElement element = null;
+
+ // We keep a separate 'presentation' stack, which contains
+ // all concatenated elements. The top of this stack is the
+ // element we try to concatenate onto. If this element
+ // becomes an identity transform, we discard it and look at
+ // the element underneath it instead.
+ // The presentation stack is guaranteed not to contain
+ // identity transforms.
+
+ while(i < nTransforms) {
+
+ // If we do not have an element to concatenate onto,
+ // we grab one here.
+ next = i;
+ if(element == null) {
+ element = (TransformStackElement) transformStack[i].clone();
+ next++;
+ }
+
+ // try to concatenate as much as possible
canConcatenate = true;
- for(j= (i+1); j < nTransforms; j++){
+ for(j = next; j < nTransforms; j++) {
canConcatenate = element.concatenate(transformStack[j]);
if(!canConcatenate)
break;
}
+ // loop variable assertion:
+ // If "i" does not increment during this iteration, it is guaranteed
+ // to do so in the next, since "i" can only keep the same value as a
+ // result of "element" having a non-null value on starting this
+ // iteration, which can only be the case if it was popped from the
+ // stack during the previous one. The stack does not contain
+ // identities, and since "i" has not grown, "element" has remained
+ // unchanged and will be pushed onto the stack again. "element" will
+ // then become null, so "i" will eventually increment.
i = j;
- transformStackBuffer.append(convertTransform(element));
+
+ // Get rid of identity transforms within the stack.
+ // If an identity is pushed, it is immediately removed, and
+ // the current top of stack will be returned to concatenate onto.
+ // Otherwise, null will be returned.
+ element = (TransformStackElement) presentation.push(element);
+ }
+
+ //
+ // Transform presentation stack to SVG
+ //
+ int nPresentations = presentation.size();
+
+ for(i = 0; i < nPresentations; i++) {
+ transformStackBuffer.append(convertTransform((TransformStackElement)
presentation.elementAt(i)));
transformStackBuffer.append(SPACE);
}
@@ -98,7 +169,7 @@
double transformParameters[] = transformElement.getTransformParameters();
switch(transformElement.getType().toInt()){
case TransformType.TRANSFORM_TRANSLATE:
- if(transformParameters[0] != 0 || transformParameters[1] != 0){
+ if(!transformElement.isIdentity()) {
transformString.append(TRANSFORM_TRANSLATE);
transformString.append(OPEN_PARENTHESIS);
transformString.append(doubleString(transformParameters[0]));
@@ -108,7 +179,7 @@
}
break;
case TransformType.TRANSFORM_ROTATE:
- if(transformParameters[0] != 0){
+ if(!transformElement.isIdentity()) {
transformString.append(TRANSFORM_ROTATE);
transformString.append(OPEN_PARENTHESIS);
transformString.append(doubleString(radiansToDegrees*transformParameters[0]));
@@ -116,7 +187,7 @@
}
break;
case TransformType.TRANSFORM_SCALE:
- if(transformParameters[0] != 1 || transformParameters[1] != 1){
+ if(!transformElement.isIdentity()) {
transformString.append(TRANSFORM_SCALE);
transformString.append(OPEN_PARENTHESIS);
transformString.append(doubleString(transformParameters[0]));
@@ -126,23 +197,25 @@
}
break;
case TransformType.TRANSFORM_SHEAR:
- transformString.append(TRANSFORM_MATRIX);
- transformString.append(OPEN_PARENTHESIS);
- transformString.append(1);
- transformString.append(COMMA);
- transformString.append(doubleString(transformParameters[1]));
- transformString.append(COMMA);
- transformString.append(doubleString(transformParameters[0]));
- transformString.append(COMMA);
- transformString.append(1);
- transformString.append(COMMA);
- transformString.append(0);
- transformString.append(COMMA);
- transformString.append(0);
- transformString.append(CLOSE_PARENTHESIS);
+ if(!transformElement.isIdentity()) {
+ transformString.append(TRANSFORM_MATRIX);
+ transformString.append(OPEN_PARENTHESIS);
+ transformString.append(1);
+ transformString.append(COMMA);
+ transformString.append(doubleString(transformParameters[1]));
+ transformString.append(COMMA);
+ transformString.append(doubleString(transformParameters[0]));
+ transformString.append(COMMA);
+ transformString.append(1);
+ transformString.append(COMMA);
+ transformString.append(0);
+ transformString.append(COMMA);
+ transformString.append(0);
+ transformString.append(CLOSE_PARENTHESIS);
+ }
break;
case TransformType.TRANSFORM_GENERAL:
- if(!isIdentity(transformParameters)){
+ if(!transformElement.isIdentity()) {
transformString.append(TRANSFORM_MATRIX);
transformString.append(OPEN_PARENTHESIS);
transformString.append(doubleString(transformParameters[0]));
@@ -166,17 +239,5 @@
}
return transformString.toString();
- }
-
- /**
- * Examines the input array to find if it represents an
- * identity transform.
- */
- private static boolean isIdentity(double matrix[]){
- if(matrix.length != 6)
- throw new Error();
-
- return (matrix[0] == 1 && matrix[2] == 0 && matrix[4] == 0 &&
- matrix[1] == 0 && matrix[3] == 1 && matrix[5] == 0);
}
}
1.1 xml-batik/test-sources/org/apache/batik/svggen/IdentityTest.java
Index: IdentityTest.java
===================================================================
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in *
* the LICENSE file. *
*****************************************************************************/
package org.apache.batik.svggen;
import java.awt.*;
import java.awt.geom.*;
/**
* This test validates the convertion of Java 2D AffineTransform into SVG
* Shapes.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
* @version $Id: IdentityTest.java,v 1.1 2001/10/01 12:37:10 vhardy Exp $
*/
public class IdentityTest implements Painter {
public void paint(Graphics2D g) {
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g.setPaint(Color.black); // new Color(102, 102, 144));
g.translate(10,10);
g.scale(2, 2);
g.scale(0.5, 0.5);
g.translate(20,40);
g.rotate(0);
g.translate(-30,-50);
g.fillRect(10,10, 100,80);
}
}
1.8 +51 -37 xml-batik/test-resources/org/apache/batik/svggen/regsvggen.xml
Index: regsvggen.xml
===================================================================
RCS file: /home/cvs/xml-batik/test-resources/org/apache/batik/svggen/regsvggen.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- regsvggen.xml 2001/09/28 13:11:33 1.7
+++ regsvggen.xml 2001/10/01 12:37:10 1.8
@@ -8,7 +8,7 @@
<!-- ========================================================================= -->
<!-- @author [EMAIL PROTECTED] -->
-<!-- @version $Id: regsvggen.xml,v 1.7 2001/09/28 13:11:33 vhardy Exp $ -->
+<!-- @version $Id: regsvggen.xml,v 1.8 2001/10/01 12:37:10 vhardy Exp $ -->
<!-- ========================================================================= -->
<testSuite name="SVGGraphics2D Accuracy Testing">
<test class="org.apache.batik.svggen.SVGAccuracyTest">
@@ -18,81 +18,88 @@
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.BasicShapes2" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/BasicShapes2.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/BasicShapes2.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/BasicShapes2.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.ATransform" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ATransform.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ATransform.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ATransform.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.AttributedCharacterIterator" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/AttributedCharacterIterator.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/AttributedCharacterIterator.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/AttributedCharacterIterator.svg"
/>
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.BEExample" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/BEExample.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/BEExample.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/BEExample.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.BStroke" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/BStroke.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/BStroke.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/BStroke.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.Clip" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Clip.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Clip.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/Clip.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.Color1" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Color1.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Color1.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/Color1.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.Color2" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Color2.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Color2.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/Color2.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.DrawImage" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/DrawImage.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/DrawImage.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/DrawImage.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.Font1" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Font1.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Font1.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/Font1.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.Font2" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Font2.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Font2.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/Font2.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.GVector" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/GVector.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/GVector.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/GVector.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.Gradient" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Gradient.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Gradient.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/Gradient.svg" />
</test>
+
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.GraphicObjects" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/GraphicObjects.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/GraphicObjects.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/GraphicObjects.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
+ <arg class="org.apache.batik.svggen.IdentityTest" />
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/IdentityTest.svg"/>
+ <property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/IdentityTest.svg" />
+ </test>
+
+ <test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.Lookup" />
<arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Lookup.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/Lookup.svg" />
@@ -107,22 +114,22 @@
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.Paints" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Paints.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Paints.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/Paints.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.RHints" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/RHints.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/RHints.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/RHints.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.Rescale" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Rescale.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/Rescale.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/Rescale.svg" />
</test>
<test class="org.apache.batik.svggen.SVGAccuracyTest">
<arg class="org.apache.batik.svggen.ShearTest" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ShearTest.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ShearTest.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ShearTest.svg" />
</test>
@@ -148,80 +155,87 @@
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.BasicShapes2" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextBasicShapes2.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextBasicShapes2.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextBasicShapes2.svg"
/>
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.ATransform" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextATransform.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextATransform.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextATransform.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.AttributedCharacterIterator" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextAttributedCharacterIterator.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextAttributedCharacterIterator.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextAttributedCharacterIterator.svg"
/>
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.BEExample" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextBEExample.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextBEExample.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextBEExample.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.BStroke" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextBStroke.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextBStroke.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextBStroke.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.Clip" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextClip.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextClip.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextClip.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.Color1" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextColor1.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextColor1.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextColor1.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.Color2" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextColor2.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextColor2.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextColor2.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.DrawImage" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextDrawImage.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextDrawImage.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextDrawImage.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.Font1" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextFont1.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextFont1.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextFont1.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.Font2" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextFont2.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextFont2.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextFont2.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.GVector" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextGVector.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextGVector.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextGVector.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.Gradient" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextGradient.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextGradient.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextGradient.svg" />
</test>
+
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.GraphicObjects" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextGraphicObjects.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextGraphicObjects.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextGraphicObjects.svg"
/>
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
+ <arg class="org.apache.batik.svggen.IdentityTest" />
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextIdentityTest.svg"/>
+ <property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextIdentityTest.svg"
/>
+ </test>
+
+ <test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.Lookup" />
<arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextLookup.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextLookup.svg" />
@@ -235,22 +249,22 @@
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.Paints" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextPaints.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextPaints.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextPaints.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.RHints" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextRHints.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextRHints.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextRHints.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.Rescale" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextRescale.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextRescale.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextRescale.svg" />
</test>
<test class="org.apache.batik.svggen.GeneratorContext">
<arg class="org.apache.batik.svggen.ShearTest" />
- <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextShearTest.svg"/>
+ <arg class="java.net.URL"
value="file:test-references/org/apache/batik/svggen/ContextShearTest.svg"/>
<property name="SaveSVG" class="java.io.File"
value="test-references/org/apache/batik/svggen/candidate-ref/ContextShearTest.svg" />
</test>
1.1
xml-batik/test-references/org/apache/batik/svggen/IdentityTest.svg
Index: IdentityTest.svg
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
<svg stroke-dasharray="none" shape-rendering="auto"
xmlns="http://www.w3.org/2000/svg" font-family="'Arial'" width="300"
text-rendering="auto" fill-opacity="1" contentScriptType="text/ecmascript"
color-rendering="auto" color-interpolation="auto" preserveAspectRatio="xMidYMid meet"
font-size="12" fill="black" stroke="black" image-rendering="auto"
stroke-miterlimit="10" zoomAndPan="magnify" version="1.0" stroke-linecap="square"
stroke-linejoin="miter" contentStyleType="text/css" font-style="normal" height="400"
stroke-width="1" stroke-dashoffset="0" font-weight="normal" stroke-opacity="1">
<!--Generated by the Batik Graphics2D SVG Generator-->
<defs id="genericDefs" />
<g>
<g text-rendering="optimizeLegibility" shape-rendering="geometricPrecision">
<rect width="100" x="10" height="80" y="10" stroke="none" />
</g>
</g>
</svg>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]