Changeset 6002 in josm for trunk/src/com/kitfox/svg/TransformableElement.java
- Timestamp:
- 2013-06-11T01:01:28+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/com/kitfox/svg/TransformableElement.java
r4453 r6002 1 1 /* 2 * BoundedElement.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, 9:00 AM 26 35 */ 27 28 36 package com.kitfox.svg; 29 37 … … 33 41 import java.awt.geom.Rectangle2D; 34 42 35 36 43 /** 37 44 * Maintains bounding box for this element … … 40 47 * @author <a href="mailto:mark@kitfox.com">Mark McKay</a> 41 48 */ 42 public class TransformableElement extends SVGElement 49 abstract public class TransformableElement extends SVGElement 43 50 { 51 AffineTransform xform = null; 44 52 45 AffineTransform xform = null;46 // AffineTransform invXform = null; 47 48 /** Creates a new instance of BoundedElement*/49 public TransformableElement(){53 /** 54 * Creates a new instance of BoundedElement 55 */ 56 public TransformableElement() 57 { 50 58 } 51 59 … … 55 63 } 56 64 65 /** 66 * Fetches a copy of the cached AffineTransform. Note that this value will 67 * only be valid after the node has been updated. 68 * 69 * @return 70 */ 57 71 public AffineTransform getXForm() 58 72 { 59 return xform; 73 return xform != null ? new AffineTransform(xform) : null; 60 74 } 61 /* 62 public void loaderStartElement(SVGLoaderHelper helper, Attributes attrs, SVGElement parent) 63 { 64 65 75 /* 76 public void loaderStartElement(SVGLoaderHelper helper, Attributes attrs, SVGElement parent) 77 { 78 //Load style string 79 super.loaderStartElement(helper, attrs, parent); 66 80 67 68 69 70 71 72 } 73 */ 74 81 String transform = attrs.getValue("transform"); 82 if (transform != null) 83 { 84 xform = parseTransform(transform); 85 } 86 } 87 */ 88 75 89 protected void build() throws SVGException 76 90 { 77 91 super.build(); 78 92 79 93 StyleAttribute sty = new StyleAttribute(); 80 94 81 95 if (getPres(sty.setName("transform"))) 82 96 { … … 84 98 } 85 99 } 86 100 87 101 protected Shape shapeToParent(Shape shape) 88 102 { 89 if (xform == null) return shape; 103 if (xform == null) 104 { 105 return shape; 106 } 90 107 return xform.createTransformedShape(shape); 91 108 } … … 93 110 protected Rectangle2D boundsToParent(Rectangle2D rect) 94 111 { 95 if (xform == null) return rect; 112 if (xform == null) 113 { 114 return rect; 115 } 96 116 return xform.createTransformedShape(rect).getBounds2D(); 97 117 } 98 118 99 119 /** 100 * Updates all attributes in this diagram associated with a time event. 101 * Ie, all attributes with track information. 120 * Updates all attributes in this diagram associated with a time event. Ie, 121 * all attributes with track information. 122 * 102 123 * @return - true if this node has changed state as a result of the time 103 124 * update … … 106 127 { 107 128 StyleAttribute sty = new StyleAttribute(); 108 129 109 130 if (getPres(sty.setName("transform"))) 110 131 { … … 116 137 } 117 138 } 118 139 119 140 return false; 120 141 }
Note:
See TracChangeset
for help on using the changeset viewer.