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

View differences:

Ring3D.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;
......
34 39
import org.gvsig.fmap.geom.jts.primitive.curve.line.Line3D;
35 40
import org.gvsig.fmap.geom.jts.primitive.surface.polygon.Polygon3D;
36 41
import org.gvsig.fmap.geom.jts.util.JTSUtils;
42
import org.gvsig.fmap.geom.operation.GeometryOperationException;
43
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
37 44
import org.gvsig.fmap.geom.primitive.Ring;
38 45

  
39 46

  
......
95 102
    public com.vividsolutions.jts.geom.Geometry getJTS() {
96 103
        return JTSUtils.createJTSLinearRing(coordinates);
97 104
    }
105

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

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

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

  
119
          return new Ring3D(coords);
120
      }
98 121
}

Also available in: Unified diff