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

View differences:

Ring3DM.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;
......
38 43
import org.gvsig.fmap.geom.jts.primitive.surface.polygon.Polygon3D;
39 44
import org.gvsig.fmap.geom.jts.primitive.surface.polygon.Polygon3DM;
40 45
import org.gvsig.fmap.geom.jts.util.JTSUtils;
46
import org.gvsig.fmap.geom.operation.GeometryOperationException;
47
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
41 48
import org.gvsig.fmap.geom.primitive.Ring;
42 49

  
43 50

  
......
99 106
    public com.vividsolutions.jts.geom.Geometry getJTS() {
100 107
        return JTSUtils.createJTSLinearRing(coordinates);
101 108
    }
109

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

  
118
          OffsetCurveBuilder ocb = new OffsetCurveBuilder(factory.getPrecisionModel(), bufParams);
119

  
120
          Coordinate[] coordinates = jtsRing.getCoordinates();
121
          Coordinate[] coords = ocb.getRingCurve(coordinates, Position.LEFT, distance); // .getOffsetCurve(coordinates,
122

  
123
          return new Ring3DM(coords);
124
      }
102 125
}

Also available in: Unified diff