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/Polygon.java

    r4256 r6002  
    11/*
    2  * Rect.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, 5:25 PM
    2635 */
    27 
    2836package com.kitfox.svg;
    2937
    3038import com.kitfox.svg.xml.StyleAttribute;
    3139import com.kitfox.svg.xml.XMLParseUtil;
    32 import java.awt.geom.*;
    33 import java.awt.*;
    34 
    35 import com.kitfox.svg.xml.*;
    36 import org.xml.sax.*;
     40import java.awt.Graphics2D;
     41import java.awt.Shape;
     42import java.awt.geom.GeneralPath;
     43import java.awt.geom.Rectangle2D;
    3744
    3845/**
     
    4047 * @author <a href="mailto:mark@kitfox.com">Mark McKay</a>
    4148 */
    42 public class Polygon extends ShapeElement {
     49public class Polygon extends ShapeElement
     50{
     51    public static final String TAG_NAME = "polygon";
    4352
    4453    int fillRule = GeneralPath.WIND_NON_ZERO;
    4554    String pointsStrn = "";
    46 //    float[] points = null;
    4755    GeneralPath path;
    4856
    49     /** Creates a new instance of Rect */
    50     public Polygon() {
     57    /**
     58     * Creates a new instance of Rect
     59     */
     60    public Polygon()
     61    {
    5162    }
    52 /*
    53     public void loaderStartElement(SVGLoaderHelper helper, Attributes attrs, SVGElement parent)
     63
     64    public String getTagName()
    5465    {
    55                 //Load style string
    56         super.loaderStartElement(helper, attrs, parent);
     66        return TAG_NAME;
     67    }
    5768
    58 
    59         points = XMLParseUtil.parseFloatList(attrs.getValue("points"));
    60 
    61         build();
    62     }
    63 */
    64 /*
    65     public void build()
    66     {
    67         StyleAttribute styleAttrib = getStyle("fill-rule");
    68         String fillRule = (styleAttrib == null) ? "nonzero" : styleAttrib.getStringValue();
    69 
    70         path = new GeneralPath(
    71             fillRule.equals("evenodd") ? GeneralPath.WIND_EVEN_ODD : GeneralPath.WIND_NON_ZERO,
    72             points.length / 2);
    73 
    74         path.moveTo(points[0], points[1]);
    75         for (int i = 2; i < points.length; i += 2)
    76         {
    77             path.lineTo(points[i], points[i + 1]);
    78         }
    79         path.closePath();
    80     }
    81 */
    82    
    83 //static int yyyyy = 0;
    84    
    8569    protected void build() throws SVGException
    8670    {
    8771        super.build();
    88        
     72
    8973        StyleAttribute sty = new StyleAttribute();
    90        
    91         if (getPres(sty.setName("points"))) pointsStrn = sty.getStringValue();
    92        
     74
     75        if (getPres(sty.setName("points")))
     76        {
     77            pointsStrn = sty.getStringValue();
     78        }
     79
    9380        String fillRuleStrn = getStyle(sty.setName("fill-rule")) ? sty.getStringValue() : "nonzero";
    9481        fillRule = fillRuleStrn.equals("evenodd") ? GeneralPath.WIND_EVEN_ODD : GeneralPath.WIND_NON_ZERO;
     
    9683        buildPath();
    9784    }
    98    
     85
    9986    protected void buildPath()
    10087    {
     
    10996        path.closePath();
    11097    }
    111    
     98
    11299    public void render(Graphics2D g) throws SVGException
    113100    {
     
    116103        finishLayer(g);
    117104    }
    118 
    119105
    120106    public Shape getShape()
     
    128114    }
    129115
    130 
    131116    /**
    132      * Updates all attributes in this diagram associated with a time event.
    133      * Ie, all attributes with track information.
     117     * Updates all attributes in this diagram associated with a time event. Ie,
     118     * all attributes with track information.
     119     *
    134120     * @return - true if this node has changed state as a result of the time
    135121     * update
     
    143129        StyleAttribute sty = new StyleAttribute();
    144130        boolean shapeChange = false;
    145        
     131
    146132        if (getStyle(sty.setName("fill-rule")))
    147133        {
    148             int newVal = sty.getStringValue().equals("evenodd") 
    149                 ? GeneralPath.WIND_EVEN_ODD 
     134            int newVal = sty.getStringValue().equals("evenodd")
     135                ? GeneralPath.WIND_EVEN_ODD
    150136                : GeneralPath.WIND_NON_ZERO;
    151137            if (newVal != fillRule)
     
    155141            }
    156142        }
    157        
     143
    158144        if (getPres(sty.setName("points")))
    159145        {
     
    165151            }
    166152        }
    167        
    168        
     153
     154
    169155        if (shapeChange)
    170156        {
     
    173159//            return true;
    174160        }
    175        
     161
    176162        return changeState || shapeChange;
    177163    }
Note: See TracChangeset for help on using the changeset viewer.