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]

Reply via email to