Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.geometry / org.gvsig.fmap.geometry.jts / src / main / java / org / gvsig / fmap / geom / jts / primitive / curve / line / Line2D.java @ 42267

History | View | Annotate | Download (3.43 KB)

1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2015 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.fmap.geom.jts.primitive.curve.line;
24

    
25
import com.vividsolutions.jts.geom.Coordinate;
26

    
27
import org.gvsig.fmap.geom.Geometry;
28
import org.gvsig.fmap.geom.jts.gputils.DefaultGeneralPathX;
29
import org.gvsig.fmap.geom.jts.primitive.point.Point2D;
30
import org.gvsig.fmap.geom.jts.util.ArrayListCoordinateSequence;
31
import org.gvsig.fmap.geom.jts.util.ReadOnlyCoordinates;
32
import org.gvsig.fmap.geom.primitive.GeneralPathX;
33
import org.gvsig.fmap.geom.primitive.Point;
34

    
35
/**
36
 * @author fdiaz
37
 *
38
 */
39
public class Line2D extends AbstractLine {
40

    
41
    /**
42
     *
43
     */
44
    private static final long serialVersionUID = -4703049397260763325L;
45

    
46
    /**
47
     * @param subtype
48
     */
49
    protected Line2D() {
50
        super(Geometry.SUBTYPES.GEOM2D);
51
    }
52

    
53
    /**
54
    *
55
    */
56
    public Line2D(Coordinate[] coordinates) {
57
        this();
58
        this.coordinates = new ArrayListCoordinateSequence(new ReadOnlyCoordinates(coordinates));
59
        if (coordinates.length < 1) {
60
            anyVertex = new Point2D(0, 0);
61
        } else {
62
            anyVertex = new Point2D(coordinates[0].x, coordinates[0].y);
63
        }
64
    }
65

    
66
    /*
67
     * (non-Javadoc)
68
     *
69
     * @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#addVertex(double,
70
     * double)
71
     */
72
    public void addVertex(double x, double y) {
73
        this.addVertex(new Point2D(x, y));
74
    }
75

    
76
    /*
77
     * (non-Javadoc)
78
     *
79
     * @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#addVertex(double,
80
     * double, double)
81
     */
82
    public void addVertex(double x, double y, double z) {
83
        String message = "Can't add x,y,z coordinate to Line2D.";
84
        notifyDeprecated(message);
85
        throw new UnsupportedOperationException(message);
86
    }
87

    
88
    /*
89
     * (non-Javadoc)
90
     *
91
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
92
     */
93
    public Geometry cloneGeometry() {
94
        return new Line2D((Coordinate[]) coordinates.clone());
95
    }
96

    
97
    /*
98
     * (non-Javadoc)
99
     *
100
     * @see
101
     * org.gvsig.fmap.geom.jts.primitive.curve.line.AbstractLine#fixPoint(org
102
     * .gvsig.fmap.geom.primitive.Point)
103
     */
104
    @Override
105
    protected Point fixPoint(Point point) {
106
        if (point instanceof Point2D) {
107
            return point;
108
        } else {
109
            return new Point2D(point.getX(), point.getY());
110
        }
111
    }
112

    
113
    /*
114
     * (non-Javadoc)
115
     *
116
     * @see org.gvsig.fmap.geom.Geometry#getGeneralPath()
117
     */
118
    public GeneralPathX getGeneralPath() {
119
        return new DefaultGeneralPathX(new LineIterator(null), false, 0);
120
    }
121

    
122
}