Revision 41612

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.api/src/main/java/org/gvsig/fmap/geom/aggregate/MultiPolygon.java
17 17
        
18 18
    public MultiPoint toPoints() throws GeometryException;
19 19

  
20
    public MultiCurve toLines() throws GeometryException;
20
    public MultiLine toLines() throws GeometryException;
21 21
    
22
    public MultiSurface toPolygons() throws GeometryException;
22
    public MultiPolygon toPolygons() throws GeometryException;
23 23

  
24 24
}
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.generalpath/src/main/java/org/gvsig/fmap/geom/generalpath/aggregate/MultiSurface2D.java
38 38
import org.gvsig.fmap.geom.GeometryException;
39 39
import org.gvsig.fmap.geom.GeometryLocator;
40 40
import org.gvsig.fmap.geom.aggregate.MultiCurve;
41
import org.gvsig.fmap.geom.aggregate.MultiLine;
41 42
import org.gvsig.fmap.geom.aggregate.MultiPoint;
42 43
import org.gvsig.fmap.geom.aggregate.MultiPolygon;
43 44
import org.gvsig.fmap.geom.aggregate.MultiSurface;
......
51 52
import org.gvsig.fmap.geom.type.GeometryType;
52 53
import org.gvsig.fmap.geom.generalpath.util.Converter;
53 54
import org.gvsig.fmap.geom.primitive.Curve;
55
import org.gvsig.fmap.geom.primitive.Polygon;
54 56

  
55 57
/**
56 58
 * @author Jorge Piera Llodr? (jorge.piera@iver.es)
......
223 225
        return gf.createLinearRing(ls.getCoordinateSequence());
224 226
    }
225 227

  
226
    public MultiSurface toPolygons() throws GeometryException {
228
    public MultiPolygon toPolygons() throws GeometryException {
227 229
        return this;
228 230
    }
229 231

  
......
247 249
        return multipoint;
248 250
    }
249 251

  
250
    public MultiCurve toLines() throws GeometryException {
252
    public MultiLine toLines() throws GeometryException {
251 253
        if( this.getPrimitivesNumber() < 1 ) {
252 254
            return null;
253 255
        }
254 256
        DefaultGeometryManager manager = (DefaultGeometryManager) GeometryLocator.getGeometryManager();
255
        MultiCurve multi = manager.createMultiCurve(this.getGeometryType().getSubType());
257
        MultiLine multi = manager.createMultiLine(this.getGeometryType().getSubType());
256 258
        multi.ensureCapacity(this.getPrimitivesNumber());
257 259
        for( int i=0; i<this.getPrimitivesNumber(); i++ ) {
258
            Surface surface = (Surface)(this.getPrimitiveAt(i));
259
            Curve curve = manager.createCurve(this.getGeometryType().getSubType());
260
            curve.ensureCapacity(surface.getNumVertices());
261
            for( int n=0; n<surface.getNumVertices(); n++ ) {
262
                curve.addVertex(curve.getVertex(n));
260
            Polygon polygon = (Polygon)(this.getPrimitiveAt(i));
261
            MultiLine lines = polygon.toLines();
262
            for( int n=0; n<lines.getPrimitivesNumber(); n++ ) {
263
                multi.addPrimitive(lines.getPrimitiveAt(n));
263 264
            }
264
            multi.addPrimitive(curve);
265 265
        }        
266 266
        return multi;
267 267
    }
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.generalpath/src/main/java/org/gvsig/fmap/geom/generalpath/primitive/surface/polygon/Polygon2D.java
23 23
 */
24 24
package org.gvsig.fmap.geom.generalpath.primitive.surface.polygon;
25 25

  
26
import org.gvsig.fmap.geom.generalpath.primitive.surface.OrientableSurface2D;
27
import java.awt.geom.Rectangle2D;
28
import java.util.ArrayList;
29
import java.util.List;
30

  
26
import com.vividsolutions.jts.geom.Coordinate;
31 27
import com.vividsolutions.jts.geom.GeometryFactory;
32 28
import com.vividsolutions.jts.geom.LineString;
33 29
import com.vividsolutions.jts.geom.LinearRing;
34 30
import com.vividsolutions.jts.geom.PrecisionModel;
35 31
import com.vividsolutions.jts.geom.TopologyException;
32
import com.vividsolutions.jts.geom.impl.CoordinateArraySequenceFactory;
36 33
import com.vividsolutions.jts.precision.GeometryPrecisionReducer;
37

  
34
import java.awt.geom.Rectangle2D;
35
import java.util.ArrayList;
36
import java.util.List;
38 37
import org.cresques.cts.IProjection;
39

  
40 38
import org.gvsig.fmap.geom.Geometry;
41 39
import org.gvsig.fmap.geom.GeometryException;
42 40
import org.gvsig.fmap.geom.GeometryLocator;
41
import org.gvsig.fmap.geom.aggregate.MultiCurve;
43 42
import org.gvsig.fmap.geom.aggregate.MultiLine;
44 43
import org.gvsig.fmap.geom.aggregate.MultiPoint;
45 44
import org.gvsig.fmap.geom.aggregate.MultiPolygon;
46 45
import org.gvsig.fmap.geom.exception.CreateGeometryException;
47 46
import org.gvsig.fmap.geom.generalpath.DefaultGeometryManager;
47
import org.gvsig.fmap.geom.generalpath.gputils.FShape;
48
import org.gvsig.fmap.geom.generalpath.primitive.surface.OrientableSurface2D;
49
import org.gvsig.fmap.geom.generalpath.util.Converter;
48 50
import org.gvsig.fmap.geom.operation.GeometryOperationException;
49 51
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
50
import org.gvsig.fmap.geom.generalpath.gputils.FShape;
51 52
import org.gvsig.fmap.geom.primitive.GeneralPathX;
52 53
import org.gvsig.fmap.geom.primitive.Polygon;
54
import org.gvsig.fmap.geom.primitive.Primitive;
53 55
import org.gvsig.fmap.geom.type.GeometryType;
54
import org.gvsig.fmap.geom.generalpath.util.Converter;
55 56

  
56 57
/**
57 58
 * Pol�gono 2D.
......
234 235
    }
235 236

  
236 237
    public MultiLine toLines() throws GeometryException {
237
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
238
        GeometryFactory fact = new GeometryFactory();
239
        Coordinate[] coordinates = this.toJTS().getCoordinates();
240
        LineString jts_line = fact.createLineString(coordinates);
241
        
242
        DefaultGeometryManager manager = (DefaultGeometryManager) GeometryLocator.getGeometryManager();
243
        Geometry line = manager.createFrom(jts_line);
244
        MultiCurve multi = manager.createMultiCurve(this.getGeometryType().getSubType());
245
        multi.addPrimitive((Primitive) line);
246
        return (MultiLine) multi;
238 247
    }
239 248

  
240 249
    public MultiPolygon toPolygons() throws GeometryException {

Also available in: Unified diff