Changeset 6002 in josm for trunk/src/com/kitfox/svg/Polygon.java
- Timestamp:
- 2013-06-11T01:01:28+02:00 (13 years ago)
- File:
-
- 1 edited
-
trunk/src/com/kitfox/svg/Polygon.java (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/com/kitfox/svg/Polygon.java
r4256 r6002 1 1 /* 2 * Rect.java 2 * SVG Salamander 3 * Copyright (c) 2004, Mark McKay 4 * All rights reserved. 3 5 * 6 * Redistribution and use in source and binary forms, with or 7 * without modification, are permitted provided that the following 8 * conditions are met: 4 9 * 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. 7 17 * 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 24 33 * 25 34 * Created on January 26, 2004, 5:25 PM 26 35 */ 27 28 36 package com.kitfox.svg; 29 37 30 38 import com.kitfox.svg.xml.StyleAttribute; 31 39 import 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.*; 40 import java.awt.Graphics2D; 41 import java.awt.Shape; 42 import java.awt.geom.GeneralPath; 43 import java.awt.geom.Rectangle2D; 37 44 38 45 /** … … 40 47 * @author <a href="mailto:mark@kitfox.com">Mark McKay</a> 41 48 */ 42 public class Polygon extends ShapeElement { 49 public class Polygon extends ShapeElement 50 { 51 public static final String TAG_NAME = "polygon"; 43 52 44 53 int fillRule = GeneralPath.WIND_NON_ZERO; 45 54 String pointsStrn = ""; 46 // float[] points = null;47 55 GeneralPath path; 48 56 49 /** Creates a new instance of Rect */ 50 public Polygon() { 57 /** 58 * Creates a new instance of Rect 59 */ 60 public Polygon() 61 { 51 62 } 52 /* 53 public void loaderStartElement(SVGLoaderHelper helper, Attributes attrs, SVGElement parent)63 64 public String getTagName() 54 65 { 55 //Load style string 56 super.loaderStartElement(helper, attrs, parent);66 return TAG_NAME; 67 } 57 68 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 85 69 protected void build() throws SVGException 86 70 { 87 71 super.build(); 88 72 89 73 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 93 80 String fillRuleStrn = getStyle(sty.setName("fill-rule")) ? sty.getStringValue() : "nonzero"; 94 81 fillRule = fillRuleStrn.equals("evenodd") ? GeneralPath.WIND_EVEN_ODD : GeneralPath.WIND_NON_ZERO; … … 96 83 buildPath(); 97 84 } 98 85 99 86 protected void buildPath() 100 87 { … … 109 96 path.closePath(); 110 97 } 111 98 112 99 public void render(Graphics2D g) throws SVGException 113 100 { … … 116 103 finishLayer(g); 117 104 } 118 119 105 120 106 public Shape getShape() … … 128 114 } 129 115 130 131 116 /** 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 * 134 120 * @return - true if this node has changed state as a result of the time 135 121 * update … … 143 129 StyleAttribute sty = new StyleAttribute(); 144 130 boolean shapeChange = false; 145 131 146 132 if (getStyle(sty.setName("fill-rule"))) 147 133 { 148 int newVal = sty.getStringValue().equals("evenodd") 149 ? GeneralPath.WIND_EVEN_ODD 134 int newVal = sty.getStringValue().equals("evenodd") 135 ? GeneralPath.WIND_EVEN_ODD 150 136 : GeneralPath.WIND_NON_ZERO; 151 137 if (newVal != fillRule) … … 155 141 } 156 142 } 157 143 158 144 if (getPres(sty.setName("points"))) 159 145 { … … 165 151 } 166 152 } 167 168 153 154 169 155 if (shapeChange) 170 156 { … … 173 159 // return true; 174 160 } 175 161 176 162 return changeState || shapeChange; 177 163 }
Note:
See TracChangeset
for help on using the changeset viewer.
