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]