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

View differences:

DefaultMultiSurface.java
32 32
import org.gvsig.fmap.geom.Geometry;
33 33
import org.gvsig.fmap.geom.GeometryException;
34 34
import org.gvsig.fmap.geom.GeometryLocator;
35
import org.gvsig.fmap.geom.aggregate.MultiCurve;
35 36
import org.gvsig.fmap.geom.aggregate.MultiLine;
36 37
import org.gvsig.fmap.geom.aggregate.MultiPoint;
37 38
import org.gvsig.fmap.geom.aggregate.MultiPolygon;
39
import org.gvsig.fmap.geom.aggregate.MultiPrimitive;
40
import org.gvsig.fmap.geom.aggregate.MultiSurface;
38 41
import org.gvsig.fmap.geom.jts.GeometryJTS;
39 42
import org.gvsig.fmap.geom.jts.util.JTSUtils;
40 43
import org.gvsig.fmap.geom.operation.GeometryOperationException;
......
221 224
            .createJTSMultiPolygon(polygons.toArray(new com.vividsolutions.jts.geom.Polygon[polygons.size()]));
222 225
    }
223 226

  
227
    /* (non-Javadoc)
228
     * @see org.gvsig.fmap.geom.Geometry#transform(java.awt.geom.AffineTransform)
229
     */
230
    public Geometry offset(double distance) throws GeometryOperationNotSupportedException, GeometryOperationException {
231
        MultiSurface result = new DefaultMultiSurface(getGeometryType());
232
        for (Iterator<Primitive> iterator = primitives.iterator(); iterator.hasNext();) {
233
            Primitive primitive = (Primitive) iterator.next();
234
            Geometry offset = primitive.offset(distance);
235
            if(offset instanceof MultiPrimitive){
236
                MultiPrimitive multiOffset = (MultiPrimitive)offset;
237
                for(int i=0; i<multiOffset.getPrimitivesNumber(); i++){
238
                    result.addPrimitive(multiOffset.getPrimitiveAt(i));
239
                }
240
            } else {
241
                result.addPrimitive((Primitive)primitive.offset(distance));
242
            }
243
        }
244
        return result;
245
    }
246

  
224 247
}

Also available in: Unified diff