// A, B, C and D are the four user space are that make the
// tile that will be used. We create a rendering for each of
// these areas that i s not empty (i.e., with either width or
// height equal to zero)
RenderedImage ARed = null, BRed = null, CRed = null, DRed = null;
Filter source = getSource();
if (A.getWidth() > 0 && A.getHeight() > 0){
// System.out.println("Rendering A");
Rectangle devA = usr2dev.createTransformedShape(A).getBounds();
if(devA.width > 0 && devA.height > 0){
AffineTransform ATxf = new AffineTransform(usr2dev);
ATxf.translate(-A.x + tiledX,
-A.y + tiledY);
Shape aoi = A;
if(overflow){
aoi = new Rectangle2D.Double(A.x,
A.y,
tiledWidth,
tiledHeight);
}
hints.put(GraphicsNode.KEY_AREA_OF_INTEREST,
aoi);
RenderContext arc
= new RenderContext(ATxf, aoi, hints);
ARed = source.createRendering(arc);
//System.out.println("ARed : " + ARed.getMinX() + " / " +
// ARed.getMinY() + " / " +
// ARed.getWidth() + " / " +
// ARed.getHeight());
}
}
if(B.getWidth() > 0 && B.getHeight() > 0){
// System.out.println("Rendering B");
Rectangle devB = usr2dev.createTransformedShape(B).getBounds();
if(devB.width > 0 && devB.height > 0){
AffineTransform BTxf = new AffineTransform(usr2dev);
BTxf.translate(-B.x + (tiledX + dx),
-B.y + tiledY);
Shape aoi = B;
if(overflow){
aoi = new Rectangle2D.Double(B.x - tiledWidth + w - dx,
B.y,
tiledWidth,
tiledHeight);
}
hints.put(GraphicsNode.KEY_AREA_OF_INTEREST,
aoi);
RenderContext brc
= new RenderContext(BTxf, aoi, hints);
BRed = source.createRendering(brc);
// System.out.println("BRed : " + BRed.getMinX() + " / " + BRed.getMinY() + " / " + BRed.getWidth() + " / " + BRed.getHeight());
}
}
if(C.getWidth() > 0 && C.getHeight() > 0){
// System.out.println("Rendering C");
Rectangle devC = usr2dev.createTransformedShape(C).getBounds();
if(devC.width > 0 && devC.height > 0){
AffineTransform CTxf = new AffineTransform(usr2dev);
CTxf.translate(-C.x + tiledX,
-C.y + (tiledY + dy));
Shape aoi = C;
if(overflow){
aoi = new Rectangle2D.Double(C.x,
C.y - tileHeight + h - dy,
tiledWidth,
tiledHeight);
}
hints.put(GraphicsNode.KEY_AREA_OF_INTEREST,
aoi);
RenderContext crc
= new RenderContext(CTxf, aoi, hints);
CRed = source.createRendering(crc);
// System.out.println("CRed : " + CRed.getMinX() + " / " + CRed.getMinY() + " / " + CRed.getWidth() + " / " + CRed.getHeight());
}
}
if(D.getWidth() > 0 && D.getHeight() > 0){
// System.out.println("Rendering D");
Rectangle devD = usr2dev.createTransformedShape(D).getBounds();
if(devD.width > 0 && devD.height > 0){
AffineTransform DTxf = new AffineTransform(usr2dev);
DTxf.translate(-D.x + (tiledX + dx),
-D.y + (tiledY + dy));
Shape aoi = D;
if(overflow){
aoi = new Rectangle2D.Double(D.x - tileWidth + w - dx,
D.y - tileHeight + h - dy,
tiledWidth,
tiledHeight);
}
hints.put(GraphicsNode.KEY_AREA_OF_INTEREST,
aoi);
RenderContext drc
= new RenderContext(DTxf, aoi, hints);
DRed = source.createRendering(drc);
// System.out.println("DRed : " + DRed.getMinX() + " / " + DRed.getMinY() + " / " + DRed.getWidth() + " / " + DRed.getHeight());
}
}
//