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

View differences:

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