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/Polygon3DM.java

View differences:

Polygon3DM.java
39 39
import org.gvsig.fmap.geom.jts.aggregate.MultiPolygon3DM;
40 40
import org.gvsig.fmap.geom.jts.primitive.curve.line.BaseLine3DM;
41 41
import org.gvsig.fmap.geom.jts.primitive.curve.line.Line3DM;
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.point.Point3DM;
45
import org.gvsig.fmap.geom.jts.primitive.ring.Ring2D;
46
import org.gvsig.fmap.geom.jts.primitive.ring.Ring2DM;
47
import org.gvsig.fmap.geom.jts.primitive.ring.Ring3DM;
48
import org.gvsig.fmap.geom.jts.util.ArrayListCoordinateSequence;
42 49
import org.gvsig.fmap.geom.jts.util.JTSUtils;
43 50
import org.gvsig.fmap.geom.operation.GeometryOperationException;
44 51
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
45 52
import org.gvsig.fmap.geom.primitive.Line;
53
import org.gvsig.fmap.geom.primitive.Point;
46 54
import org.gvsig.fmap.geom.primitive.Polygon;
47 55
import org.gvsig.fmap.geom.primitive.Ring;
48 56
import org.gvsig.fmap.geom.primitive.SurfaceAppearance;
......
65 73
     * @param subtype
66 74
     */
67 75
    public Polygon3DM() {
68
        super();
76
        super(Geometry.TYPES.POLYGON);
69 77
    }
70 78

  
71 79

  
......
74 82
    */
75 83
    public Polygon3DM(Coordinate[] coordinates) {
76 84
        super(coordinates);
85
        closePrimitive();
77 86
    }
78 87

  
79 88

  
......
117 126
    /* (non-Javadoc)
118 127
     * @see org.gvsig.fmap.geom.primitive.Surface#addInteriorRing(org.gvsig.fmap.geom.primitive.Line)
119 128
     */
120
    public void addInteriorRing(Line ring) {
121
        interiorRings.add((Ring)ring); //FIXME: ?????
129
    public void addInteriorRing(Line line) {
130
        Ring3DM ring = new Ring3DM();
131
        ring.ensureCapacity(line.getNumVertices());
132
        for(int i=0; i<line.getNumVertices(); i++){
133
            Point3DM vertex = (Point3DM)line.getVertex(i);
134
            ring.addVertex(new Point3DM(vertex.getX(), vertex.getY(), vertex.getZ(), vertex.getM()));
135
        }
136
        ring.closePrimitive();
137
        interiorRings.add(ring);
122 138
    }
123 139

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

  
124 158
    /* (non-Javadoc)
125 159
     * @see org.gvsig.fmap.geom.primitive.Surface#removeInteriorRing(int)
126 160
     */
......
155 189
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
156 190
     */
157 191
    public Geometry cloneGeometry() {
158
        return new Polygon3DM((Coordinate[]) coordinates.clone());
192
        return new Polygon3DM(cloneCoordinates().toCoordinateArray());
159 193
    }
160 194

  
161 195

  

Also available in: Unified diff