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/primitive/ring/Ring2DM.java

View differences:

Ring2DM.java
23 23
package org.gvsig.fmap.geom.jts.primitive.ring;
24 24

  
25 25
import com.vividsolutions.jts.geom.Coordinate;
26
import com.vividsolutions.jts.geom.GeometryFactory;
27
import com.vividsolutions.jts.geom.LinearRing;
28
import com.vividsolutions.jts.geomgraph.Position;
29
import com.vividsolutions.jts.operation.buffer.BufferParameters;
30
import com.vividsolutions.jts.operation.buffer.OffsetCurveBuilder;
26 31

  
27 32
import org.gvsig.fmap.geom.Geometry;
28 33
import org.gvsig.fmap.geom.GeometryException;
......
39 44
import org.gvsig.fmap.geom.jts.primitive.surface.polygon.Polygon2D;
40 45
import org.gvsig.fmap.geom.jts.primitive.surface.polygon.Polygon2DM;
41 46
import org.gvsig.fmap.geom.jts.util.JTSUtils;
47
import org.gvsig.fmap.geom.operation.GeometryOperationException;
48
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
42 49
import org.gvsig.fmap.geom.primitive.Ring;
43 50

  
44 51
/**
......
94 101
    public com.vividsolutions.jts.geom.Geometry getJTS() {
95 102
        return JTSUtils.createJTSLinearRing(coordinates);
96 103
    }
104

  
105
    /* (non-Javadoc)
106
    * @see org.gvsig.fmap.geom.Geometry#offset(double)
107
    */
108
      public Geometry offset(double distance) throws GeometryOperationNotSupportedException, GeometryOperationException {
109
          com.vividsolutions.jts.geom.LinearRing jtsRing = (LinearRing) getJTS();
110
          GeometryFactory factory = jtsRing.getFactory();
111
          BufferParameters bufParams = JTSUtils.getBufferParameters();
112

  
113
          OffsetCurveBuilder ocb = new OffsetCurveBuilder(factory.getPrecisionModel(), bufParams);
114

  
115
          Coordinate[] coordinates = jtsRing.getCoordinates();
116
          Coordinate[] coords = ocb.getRingCurve(coordinates, Position.LEFT, distance); // .getOffsetCurve(coordinates,
117

  
118
          return new Ring2DM(coords);
119
      }
97 120
}

Also available in: Unified diff