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
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