tkormann 02/03/21 10:03:00 Modified: sources/org/apache/batik/bridge AbstractGraphicsNodeBridge.java Log: implement getBBox and getCTM according to my understanding of the SVG spec. getCTM is not what Adobe does. Revision Changes Path 1.19 +11 -15 xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java Index: AbstractGraphicsNodeBridge.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- AbstractGraphicsNodeBridge.java 21 Mar 2002 11:04:56 -0000 1.18 +++ AbstractGraphicsNodeBridge.java 21 Mar 2002 18:03:00 -0000 1.19 @@ -22,6 +22,7 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; +import org.w3c.dom.svg.SVGFitToViewBox; import org.w3c.dom.events.MutationEvent; /** @@ -43,7 +44,7 @@ * </ul> * * @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a> - * @version $Id: AbstractGraphicsNodeBridge.java,v 1.18 2002/03/21 11:04:56 tkormann Exp $ + * @version $Id: AbstractGraphicsNodeBridge.java,v 1.19 2002/03/21 18:03:00 tkormann Exp $ */ public abstract class AbstractGraphicsNodeBridge extends AbstractSVGBridge implements SVGContext, @@ -258,9 +259,7 @@ * stroke-width and filter effects). */ public Rectangle2D getBBox() { - AffineTransform ctm = node.getGlobalTransform(); - Rectangle2D bounds = node.getPrimitiveBounds(); - return ctm.createTransformedShape(bounds).getBounds2D(); + return node.getPrimitiveBounds(); } /** @@ -273,19 +272,16 @@ AffineTransform ctm = new AffineTransform(); Element elt = e; while (elt != null) { - AffineTransform gnT = gn.getTransform(); - if (gnT != null) { - ctm.preConcatenate(gnT); + AffineTransform at = gn.getTransform(); + if (at != null) { + ctm.preConcatenate(at); } - if (elt.getNamespaceURI().equals(SVG_NAMESPACE_URI) && - (elt.getLocalName().equals(SVG_SVG_TAG) || - elt.getLocalName().equals(SVG_SYMBOL_TAG))) { - return ctm; - } else { - elt = (Element)elt.getParentNode(); - gn = gn.getParent(); + elt = SVGCSSEngine.getParentCSSStylableElement(elt); + gn = gn.getParent(); + if (elt instanceof SVGFitToViewBox) { + break; } } - return null; + return ctm; } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]