Ignore:
Timestamp:
2013-06-11T01:01:28+02:00 (13 years ago)
Author:
Don-vip
Message:

fix #8742 - update svgsalamander to release 0.1.18+patch (fix bug SVGSALAMANDER-26) -> allow to open more SVG files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/com/kitfox/svg/Symbol.java

    r4256 r6002  
    11/*
    2  * Stop.java
     2 * SVG Salamander
     3 * Copyright (c) 2004, Mark McKay
     4 * All rights reserved.
    35 *
     6 * Redistribution and use in source and binary forms, with or
     7 * without modification, are permitted provided that the following
     8 * conditions are met:
    49 *
    5  *  The Salamander Project - 2D and 3D graphics libraries in Java
    6  *  Copyright (C) 2004 Mark McKay
     10 *   - Redistributions of source code must retain the above
     11 *     copyright notice, this list of conditions and the following
     12 *     disclaimer.
     13 *   - Redistributions in binary form must reproduce the above
     14 *     copyright notice, this list of conditions and the following
     15 *     disclaimer in the documentation and/or other materials
     16 *     provided with the distribution.
    717 *
    8  *  This library is free software; you can redistribute it and/or
    9  *  modify it under the terms of the GNU Lesser General Public
    10  *  License as published by the Free Software Foundation; either
    11  *  version 2.1 of the License, or (at your option) any later version.
    12  *
    13  *  This library is distributed in the hope that it will be useful,
    14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    16  *  Lesser General Public License for more details.
    17  *
    18  *  You should have received a copy of the GNU Lesser General Public
    19  *  License along with this library; if not, write to the Free Software
    20  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    21  *
    22  *  Mark McKay can be contacted at mark@kitfox.com.  Salamander and other
    23  *  projects can be found at http://www.kitfox.com
     18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     21 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     22 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
     23 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     25 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     27 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
     29 * OF THE POSSIBILITY OF SUCH DAMAGE.
     30 *
     31 * Mark McKay can be contacted at mark@kitfox.com.  Salamander and other
     32 * projects can be found at http://www.kitfox.com
    2433 *
    2534 * Created on January 26, 2004, 1:56 AM
    2635 */
    27 
    2836package com.kitfox.svg;
    2937
    30 import java.awt.*;
    31 import java.awt.geom.*;
    32 
    33 import com.kitfox.svg.xml.*;
     38import com.kitfox.svg.xml.StyleAttribute;
     39import java.awt.Graphics2D;
     40import java.awt.Rectangle;
     41import java.awt.Shape;
     42import java.awt.geom.AffineTransform;
     43import java.awt.geom.Rectangle2D;
    3444
    3545/**
     
    3949public class Symbol extends Group
    4050{
     51
     52    public static final String TAG_NAME = "symbol";
    4153    AffineTransform viewXform;
    4254    Rectangle2D viewBox;
    4355
    44     /** Creates a new instance of Stop */
    45     public Symbol() {
     56    /**
     57     * Creates a new instance of Stop
     58     */
     59    public Symbol()
     60    {
    4661    }
    47 /*
    48     public void loaderStartElement(SVGLoaderHelper helper, Attributes attrs, SVGElement parent)
     62
     63    public String getTagName()
    4964    {
    50                 //Load style string
    51         super.loaderStartElement(helper, attrs, parent);
     65        return TAG_NAME;
     66    }
    5267
    53         String viewBoxStrn = attrs.getValue("viewBox");
    54         if (viewBoxStrn != null)
    55         {
    56             float[] dim = XMLParseUtil.parseFloatList(viewBoxStrn);
    57             viewBox = new Rectangle2D.Float(dim[0], dim[1], dim[2], dim[3]);
    58         }
    59     }
    60 */
    61     /*
    62     public void loaderEndElement(SVGLoaderHelper helper)
    63     {
    64         if (viewBox == null)
    65         {
    66             viewBox = super.getBoundingBox();
    67         }
    68 
    69         //Transform pattern onto unit square
    70         viewXform = new AffineTransform();
    71         viewXform.scale(1.0 / viewBox.getWidth(), 1.0 / viewBox.getHeight());
    72         viewXform.translate(-viewBox.getX(), -viewBox.getY());
    73     }
    74 */
    75    
    7668    protected void build() throws SVGException
    7769    {
    7870        super.build();
    79        
     71
    8072        StyleAttribute sty = new StyleAttribute();
    81        
     73
    8274//        sty = getPres("unicode");
    8375//        if (sty != null) unicode = sty.getStringValue();
     
    8981            viewBox = new Rectangle2D.Float(dim[0], dim[1], dim[2], dim[3]);
    9082        }
    91        
     83
    9284        if (viewBox == null)
    9385        {
     
    10496    protected boolean outsideClip(Graphics2D g) throws SVGException
    10597    {
    106         g.getClipBounds(clipBounds);
     98        Shape clip = g.getClip();
     99//        g.getClipBounds(clipBounds);
    107100        Rectangle2D rect = super.getBoundingBox();
    108         if (rect.intersects(clipBounds))
     101        if (clip == null || clip.intersects(rect))
    109102        {
    110103            return false;
     
    138131
    139132    /**
    140      * Updates all attributes in this diagram associated with a time event.
    141      * Ie, all attributes with track information.
     133     * Updates all attributes in this diagram associated with a time event. Ie,
     134     * all attributes with track information.
     135     *
    142136     * @return - true if this node has changed state as a result of the time
    143137     * update
     
    147141//        if (trackManager.getNumTracks() == 0) return false;
    148142        boolean changeState = super.updateTime(curTime);
    149        
     143
    150144        //View box properties do not change
    151        
     145
    152146        return changeState;
    153147    }
    154 
    155148}
Note: See TracChangeset for help on using the changeset viewer.