Revision 42441 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/aggregate/DefaultMultiCurve.java
DefaultMultiCurve.java | ||
---|---|---|
33 | 33 |
|
34 | 34 |
import org.gvsig.fmap.geom.Geometry; |
35 | 35 |
import org.gvsig.fmap.geom.GeometryException; |
36 |
import org.gvsig.fmap.geom.aggregate.MultiCurve; |
|
36 | 37 |
import org.gvsig.fmap.geom.aggregate.MultiLine; |
37 | 38 |
import org.gvsig.fmap.geom.aggregate.MultiPoint; |
38 | 39 |
import org.gvsig.fmap.geom.aggregate.MultiPolygon; |
40 |
import org.gvsig.fmap.geom.aggregate.MultiPrimitive; |
|
39 | 41 |
import org.gvsig.fmap.geom.jts.GeometryJTS; |
42 |
import org.gvsig.fmap.geom.jts.primitive.surface.polygon.Polygon3DM; |
|
40 | 43 |
import org.gvsig.fmap.geom.jts.util.JTSUtils; |
41 | 44 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
42 | 45 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
... | ... | |
209 | 212 |
return JTSUtils.createJTSMultiLineString(lineStrings.toArray(new LineString[lineStrings.size()])); |
210 | 213 |
} |
211 | 214 |
|
215 |
/* (non-Javadoc) |
|
216 |
* @see org.gvsig.fmap.geom.Geometry#transform(java.awt.geom.AffineTransform) |
|
217 |
*/ |
|
218 |
public Geometry offset(double distance) throws GeometryOperationNotSupportedException, GeometryOperationException { |
|
219 |
MultiCurve result = new DefaultMultiCurve(getGeometryType()); |
|
220 |
for (Iterator<Primitive> iterator = primitives.iterator(); iterator.hasNext();) { |
|
221 |
Primitive primitive = (Primitive) iterator.next(); |
|
222 |
Geometry offset = primitive.offset(distance); |
|
223 |
if(offset instanceof MultiPrimitive){ |
|
224 |
MultiPrimitive multiOffset = (MultiPrimitive)offset; |
|
225 |
for(int i=0; i<multiOffset.getPrimitivesNumber(); i++){ |
|
226 |
result.addPrimitive(multiOffset.getPrimitiveAt(i)); |
|
227 |
} |
|
228 |
} else { |
|
229 |
result.addPrimitive((Primitive)primitive.offset(distance)); |
|
230 |
} |
|
231 |
} |
|
232 |
return result; |
|
233 |
} |
|
212 | 234 |
} |
Also available in: Unified diff