Revision 42283 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/surface/polygon/Polygon3D.java

View differences:

Polygon3D.java
39 39
import org.gvsig.fmap.geom.jts.aggregate.MultiPolygon3D;
40 40
import org.gvsig.fmap.geom.jts.primitive.curve.line.BaseLine3D;
41 41
import org.gvsig.fmap.geom.jts.primitive.curve.line.Line3D;
42
import org.gvsig.fmap.geom.jts.primitive.point.Point2D;
43
import org.gvsig.fmap.geom.jts.primitive.point.Point3D;
44
import org.gvsig.fmap.geom.jts.primitive.ring.Ring2D;
45
import org.gvsig.fmap.geom.jts.primitive.ring.Ring3D;
42 46
import org.gvsig.fmap.geom.jts.util.JTSUtils;
43 47
import org.gvsig.fmap.geom.operation.GeometryOperationException;
44 48
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
45 49
import org.gvsig.fmap.geom.primitive.Line;
50
import org.gvsig.fmap.geom.primitive.Point;
46 51
import org.gvsig.fmap.geom.primitive.Polygon;
47 52
import org.gvsig.fmap.geom.primitive.Ring;
48 53
import org.gvsig.fmap.geom.primitive.SurfaceAppearance;
......
66 71
     * @param subtype
67 72
     */
68 73
    public Polygon3D() {
69
        super();
74
        super(Geometry.TYPES.POLYGON);
70 75
    }
71 76

  
72 77
    /**
......
74 79
    */
75 80
    public Polygon3D(Coordinate[] coordinates) {
76 81
        super(coordinates);
82
        closePrimitive();
77 83
    }
78 84

  
79 85
    /* (non-Javadoc)
80 86
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
81 87
     */
82 88
    public Geometry cloneGeometry() {
83
        return new Polygon3D((Coordinate[]) coordinates.clone());
89
        return new Polygon3D(cloneCoordinates().toCoordinateArray());
84 90
    }
85 91

  
86 92
    /* (non-Javadoc)
......
123 129
    /* (non-Javadoc)
124 130
     * @see org.gvsig.fmap.geom.primitive.Surface#addInteriorRing(org.gvsig.fmap.geom.primitive.Line)
125 131
     */
126
    public void addInteriorRing(Line ring) {
127
        interiorRings.add((Ring)ring); //FIXME: ?????
132
    public void addInteriorRing(Line line) {
133
        Ring3D ring = new Ring3D();
134
        ring.ensureCapacity(line.getNumVertices());
135
        for(int i=0; i<line.getNumVertices(); i++){
136
            Point3D vertex = (Point3D)line.getVertex(i);
137
            ring.addVertex(new Point3D(vertex.getX(), vertex.getY(), vertex.getZ()));
138
        }
139
        ring.closePrimitive();
140
        interiorRings.add(ring);
128 141
    }
129 142

  
143
    /*
144
     * (non-Javadoc)
145
     *
146
     * @see
147
     * org.gvsig.fmap.geom.primitive.Surface#addInteriorRing(org.gvsig.fmap.
148
     * geom.primitive.Polygon)
149
     */
150
    public void addInteriorRing(Polygon polygon) {
151
        Ring3D ring = new Ring3D();
152
        ring.ensureCapacity(polygon.getNumVertices());
153
        for(int i=0; i<polygon.getNumVertices(); i++){
154
            Point3D vertex = (Point3D)polygon.getVertex(i);
155
            ring.addVertex(new Point3D(vertex.getX(), vertex.getY(), vertex.getZ()));
156
        }
157
        ring.closePrimitive();
158
        interiorRings.add(ring);
159
    }
160

  
130 161
    /* (non-Javadoc)
131 162
     * @see org.gvsig.fmap.geom.primitive.Surface#removeInteriorRing(int)
132 163
     */

Also available in: Unified diff