xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gerrit ." <g...@hotmail.com>
Subject ExtendedPathIterator doesn't fetch Quads and Curves in batik-1.7beta1
Date Mon, 30 Apr 2007 16:47:15 GMT
Hi, everyone. I'm experimenting with Batik 1.7 beta1, and found that the 
ExtendedPathIterator doesn't fetch Quads and Curves properly from the 
ExtendedGeneralPath.

The following sample program adds several path segments and then iterates 
over the constructed path. However, when Quads and Curves are supposed to be 
fetched, the values of earlier segments are returned instead.


import org.apache.batik.ext.awt.geom.ExtendedGeneralPath;
import org.apache.batik.ext.awt.geom.ExtendedPathIterator;

public class ExtGenPathTest {
	public static void main(String[] args) {

		ExtendedGeneralPath path = new ExtendedGeneralPath();
		path.moveTo(0,0);
		path.lineTo(1,1);
		path.quadTo(2,2,3,3);
		path.lineTo(4,4);
		path.curveTo(5,5,6,6,7,7);
		path.lineTo(8,8);

		ExtendedPathIterator iterator = path.getExtendedPathIterator();
		float[] points = new float[6];

		while(!iterator.isDone()) {
			int type = iterator.currentSegment(points);
			switch(type) {
			case ExtendedPathIterator.SEG_MOVETO:
				System.out.println( "MoveTo: "+points[0]+","+points[1] );
				break;
			case ExtendedPathIterator.SEG_LINETO:
				System.out.println( "LineTo: "+points[0]+","+points[1] );
				break;
			case ExtendedPathIterator.SEG_QUADTO:
				System.out.println( "QuadTo: "+points[0]+","+points[1]+"; 
"+points[2]+","+points[3] );
				break;
			case ExtendedPathIterator.SEG_CUBICTO:
				System.out.println( "CubicTo: "+points[0]+","+points[1]+"; 
"+points[2]+","+points[3]+"; "+points[4]+","+points[5] );
				break;
			default:
				System.out.println( "Default" );
				break;
			}
			iterator.next();
		}
	}
}


A run of the program yields the following output for batik-1.7beta1, 
downloaded on 2007-04-28:

MoveTo: 0.0,0.0
LineTo: 1.0,1.0
QuadTo: 0.0,0.0; 1.0,1.0
LineTo: 4.0,4.0
CubicTo: 0.0,0.0; 1.0,1.0; 2.0,2.0
LineTo: 8.0,8.0

For Quads and Curves, earlier segment data is returned. A reference run of 
the same program with the stable release batik-1.6 yields normal results:

MoveTo: 0.0,0.0
LineTo: 1.0,1.0
QuadTo: 2.0,2.0; 3.0,3.0
LineTo: 4.0,4.0
CubicTo: 5.0,5.0; 6.0,6.0; 7.0,7.0
LineTo: 8.0,8.0

I am aware that Batik 1.7 is still in beta. I just wanted to know if this 
inconsistency is already known, or simply temporary during restructuring of 
the code. I couldn't find any comment on this in the forums.

Thanks,
Gerrit

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now! 
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/


---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: batik-users-help@xmlgraphics.apache.org


Mime
View raw message