Revision 42271 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/MultiLine3D.java

View differences:

MultiLine3D.java
25 25
import java.awt.Shape;
26 26
import java.awt.geom.AffineTransform;
27 27
import java.awt.geom.PathIterator;
28
import java.util.Iterator;
28 29

  
29 30
import org.gvsig.fmap.geom.Geometry;
30 31
import org.gvsig.fmap.geom.GeometryException;
......
32 33
import org.gvsig.fmap.geom.aggregate.MultiPoint;
33 34
import org.gvsig.fmap.geom.aggregate.MultiPolygon;
34 35
import org.gvsig.fmap.geom.handler.Handler;
36
import org.gvsig.fmap.geom.jts.primitive.curve.line.Line2D;
37
import org.gvsig.fmap.geom.jts.primitive.curve.line.Line3D;
35 38
import org.gvsig.fmap.geom.operation.GeometryOperationException;
36 39
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
37 40
import org.gvsig.fmap.geom.primitive.GeneralPathX;
41
import org.gvsig.fmap.geom.primitive.Polygon;
42
import org.gvsig.fmap.geom.primitive.Primitive;
38 43

  
39 44

  
40 45
/**
......
60 65
     * @see org.gvsig.fmap.geom.aggregate.MultiLine#toPoints()
61 66
     */
62 67
    public MultiPoint toPoints() throws GeometryException {
63
        // TODO Auto-generated method stub
64
        return null;
68
        MultiPoint multiPoint = new MultiPoint3D();
69
        for (Iterator<Primitive> iterator = primitives.iterator(); iterator.hasNext();) {
70
            Line3D line = (Line3D) iterator.next();
71
            MultiPoint points = line.toPoints();
72
            multiPoint.ensureCapacity(multiPoint.getPrimitivesNumber()+points.getPrimitivesNumber());
73
            for(int i=0; i<points.getPrimitivesNumber(); i++){
74
                multiPoint.addPoint(points.getPointAt(i));
75
            }
76
        }
77
        return multiPoint;
65 78
    }
66 79

  
67 80
    /* (non-Javadoc)
68 81
     * @see org.gvsig.fmap.geom.aggregate.MultiLine#toLines()
69 82
     */
70 83
    public MultiLine toLines() throws GeometryException {
71
        // TODO Auto-generated method stub
72
        return null;
84
        return this;
73 85
    }
74 86

  
75 87
    /* (non-Javadoc)
76 88
     * @see org.gvsig.fmap.geom.aggregate.MultiLine#toPolygons()
77 89
     */
78 90
    public MultiPolygon toPolygons() throws GeometryException {
79
        // TODO Auto-generated method stub
80
        return null;
91
        MultiPolygon multiPolygon = new MultiPolygon3D();
92
        for (Iterator<Primitive> iterator = primitives.iterator(); iterator.hasNext();) {
93
            Line3D line = (Line3D) iterator.next();
94
            MultiPolygon polygons = line.toPolygons();
95
            multiPolygon.ensureCapacity(multiPolygon.getPrimitivesNumber()+polygons.getPrimitivesNumber());
96
            for(int i=0; i<polygons.getPrimitivesNumber(); i++){
97
                multiPolygon.addSurface((Polygon)polygons.getPrimitiveAt(i));
98
            }
99
        }
100
        return multiPolygon;
81 101
    }
82 102

  
103

  
83 104
    /* (non-Javadoc)
84 105
     * @see org.gvsig.fmap.geom.aggregate.Aggregate#union()
85 106
     */
......
176 197
        return true;
177 198
    }
178 199

  
200

  
201
    /* (non-Javadoc)
202
     * @see org.gvsig.fmap.geom.jts.aggregate.AbstractMultiLine#fixLine(org.gvsig.fmap.geom.primitive.Line)
203
     */
204
    @Override
205
    protected Primitive fixPrimitive(Primitive curve) {
206
        if(!(curve instanceof Line3D)){
207
            String message = "Only Line3D primitives can be added to a MultiLine3D";
208
            notifyDeprecated(message);
209
            throw new UnsupportedOperationException(message);
210
        }
211
        return curve;
212
    }
179 213
}

Also available in: Unified diff