source: josm/trunk/src/com/kitfox/svg/pathcmd/PathUtil.java@ 6002

Last change on this file since 6002 was 6002, checked in by Don-vip, 11 years ago

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

File size: 3.3 KB
Line 
1/*
2 * SVG Salamander
3 * Copyright (c) 2004, Mark McKay
4 * All rights reserved.
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:
9 *
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.
17 *
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
33 *
34 * Created on May 10, 2005, 5:56 AM
35 */
36
37package com.kitfox.svg.pathcmd;
38
39import java.awt.geom.*;
40
41/**
42 *
43 * @author kitfox
44 */
45public class PathUtil
46{
47
48 /** Creates a new instance of PathUtil */
49 public PathUtil()
50 {
51 }
52
53 /**
54 * Converts a GeneralPath into an SVG representation
55 */
56 public static String buildPathString(GeneralPath path)
57 {
58 float[] coords = new float[6];
59
60 StringBuffer sb = new StringBuffer();
61
62 for (PathIterator pathIt = path.getPathIterator(new AffineTransform()); !pathIt.isDone(); pathIt.next())
63 {
64 int segId = pathIt.currentSegment(coords);
65
66 switch (segId)
67 {
68 case PathIterator.SEG_CLOSE:
69 {
70 sb.append(" Z");
71 break;
72 }
73 case PathIterator.SEG_CUBICTO:
74 {
75 sb.append(" C " + coords[0] + " " + coords[1] + " " + coords[2] + " " + coords[3] + " " + coords[4] + " " + coords[5]);
76 break;
77 }
78 case PathIterator.SEG_LINETO:
79 {
80 sb.append(" L " + coords[0] + " " + coords[1]);
81 break;
82 }
83 case PathIterator.SEG_MOVETO:
84 {
85 sb.append(" M " + coords[0] + " " + coords[1]);
86 break;
87 }
88 case PathIterator.SEG_QUADTO:
89 {
90 sb.append(" Q " + coords[0] + " " + coords[1] + " " + coords[2] + " " + coords[3]);
91 break;
92 }
93 }
94 }
95
96 return sb.toString();
97 }
98}
Note: See TracBrowser for help on using the repository browser.