Revision 44612 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/DefaultMultiCurve.java

View differences:

DefaultMultiCurve.java
24 24

  
25 25
import java.util.ArrayList;
26 26
import java.util.Collections;
27
import java.util.Iterator;
28 27
import java.util.List;
29 28

  
30 29
import com.vividsolutions.jts.geom.LineString;
......
39 38
import org.gvsig.fmap.geom.aggregate.MultiPolygon;
40 39
import org.gvsig.fmap.geom.aggregate.MultiPrimitive;
41 40
import org.gvsig.fmap.geom.jts.GeometryJTS;
42
import org.gvsig.fmap.geom.jts.primitive.surface.polygon.Polygon3DM;
43 41
import org.gvsig.fmap.geom.jts.util.JTSUtils;
44 42
import org.gvsig.fmap.geom.operation.GeometryOperationException;
45 43
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
......
68 66
        super(subtype);
69 67
    }
70 68

  
71
    /* (non-Javadoc)
72
     * @see org.gvsig.fmap.geom.Geometry#cloneGeometry()
73
     */
69
    @Override
74 70
    public Geometry cloneGeometry() {
75 71
        DefaultMultiCurve clone = new DefaultMultiCurve(getGeometryType());
76 72
        for(int i=0; i<primitives.size(); i++){
......
79 75
        return clone;
80 76
    }
81 77

  
82
    /* (non-Javadoc)
83
     * @see org.gvsig.fmap.geom.Geometry#getDimension()
84
     */
78
    @Override
79
    public Geometry force2D() throws GeometryOperationNotSupportedException, GeometryOperationException {
80
        DefaultMultiCurve other = new DefaultMultiCurve(getGeometryType());
81
        other.setProjection(this.getProjection());
82
        other.ensureCapacity(primitives.size());
83
        for (Primitive primitive : primitives) {
84
            other.addPrimitive((Primitive)primitive.force2D());
85
        }
86
        return other;
87
    }
88

  
89
    @Override
85 90
    public int getDimension() {
86 91
        switch (getGeometryType().getSubType()) {
87 92
        case Geometry.SUBTYPES.GEOM2D:
......
97 102
        }
98 103
    }
99 104

  
100
    /* (non-Javadoc)
101
     * @see org.gvsig.fmap.geom.Geometry#toPoints()
102
     */
105
    @Override
103 106
    public MultiPoint toPoints() throws GeometryException {
104 107
        MultiPoint multipoint = null;
105 108
        for (int i = 0; i < this.getPrimitivesNumber(); i++) {
......
115 118
        return multipoint;
116 119
    }
117 120

  
118
    /* (non-Javadoc)
119
     * @see org.gvsig.fmap.geom.Geometry#toLines()
120
     */
121
    @Override
121 122
    public MultiLine toLines() throws GeometryException {
122 123
        MultiLine multiline = null;
123 124
        for (int i = 0; i < this.getPrimitivesNumber(); i++) {
......
133 134
        return multiline;
134 135
    }
135 136

  
136
    /* (non-Javadoc)
137
     * @see org.gvsig.fmap.geom.Geometry#toPolygons()
138
     */
137
    @Override
139 138
    public MultiPolygon toPolygons() throws GeometryException {
140 139
        MultiPolygon multipolygon = null;
141 140
        for (int i = 0; i < this.getPrimitivesNumber(); i++) {
......
151 150
        return multipolygon;
152 151
    }
153 152

  
154
    /* (non-Javadoc)
155
     * @see org.gvsig.fmap.geom.jts.GeometryJTS#flip()
156
     */
153
    @Override
157 154
    public void flip() throws GeometryOperationNotSupportedException, GeometryOperationException {
158 155
        for (int i = 0; i < this.getPrimitivesNumber(); i++) {
159 156
            this.getPrimitiveAt(i).flip();
......
162 159
    }
163 160

  
164 161

  
165
    /* (non-Javadoc)
166
     * @see org.gvsig.fmap.geom.jts.aggregate.AbstractMultiPrimitive#fixPrimitive(org.gvsig.fmap.geom.primitive.Primitive)
167
     */
168 162
    @Override
169 163
    protected Geometry fixPrimitive(Primitive primitive) {
170 164
        int primitiveSubType = primitive.getGeometryType().getSubType();
......
178 172
        throw new UnsupportedOperationException(message);
179 173
    }
180 174

  
181
    /* (non-Javadoc)
182
     * @see org.gvsig.fmap.geom.jts.GeometryJTS#getJTS()
183
     */
175
    @Override
184 176
    public com.vividsolutions.jts.geom.Geometry getJTS() {
185
        List<LineString> lineStrings =
186
            new ArrayList<LineString>(primitives.size());
177
        List<LineString> lineStrings = new ArrayList<>(primitives.size());
187 178

  
188
        LineString line = null;
189
        for (Iterator iterator = primitives.iterator(); iterator.hasNext();) {
190
            Primitive primitive = (Primitive) iterator.next();
179
        LineString line;
180
        for (Primitive primitive : primitives) {
191 181
            if (primitive instanceof Line) {
192 182
                line = (LineString) ((GeometryJTS) primitive).getJTS();
193 183
                lineStrings.add(line);
194 184
            } else {
195
                MultiLine multiline = null;
185
                MultiLine multiline;
196 186
                try {
197 187
                    multiline = primitive.toLines();
198 188
                    for (int j = 0; j < multiline.getPrimitivesNumber(); j++) {
199 189
                        line =
200
                            (LineString) ((GeometryJTS) multiline.getPrimitiveAt(j)).getJTS();
190
                                (LineString) ((GeometryJTS) multiline.getPrimitiveAt(j)).getJTS();
201 191
                        lineStrings.add(line);
202 192
                    }
203 193
                } catch (GeometryException e) {
204 194
                    GeometryType geomType = primitive.getGeometryType();
205 195
                    logger.warn(StringUtils.replaceEach(
206
                        "Can't convert primitive type=%(type)s, %(subtype)s to MultiLine",
207
                        new String[] {"%(type)s", "%(subtype)s" },
208
                        new String[] { String.valueOf(geomType.getType()), String.valueOf(geomType.getSubType()) }));
196
                            "Can't convert primitive type=%(type)s, %(subtype)s to MultiLine",
197
                            new String[] {"%(type)s", "%(subtype)s" },
198
                            new String[] { String.valueOf(geomType.getType()), String.valueOf(geomType.getSubType()) }));
209 199
                }
210 200
            }
211 201
        }
212 202
        return JTSUtils.createJTSMultiLineString(lineStrings.toArray(new LineString[lineStrings.size()]));
213 203
    }
214 204

  
215
    /* (non-Javadoc)
216
     * @see org.gvsig.fmap.geom.Geometry#transform(java.awt.geom.AffineTransform)
217
     */
205
    @Override
218 206
    public Geometry offset(double distance) throws GeometryOperationNotSupportedException, GeometryOperationException {
219 207
        MultiCurve result = new DefaultMultiCurve(getGeometryType());
220
        for (Iterator<Primitive> iterator = primitives.iterator(); iterator.hasNext();) {
221
            Primitive primitive = (Primitive) iterator.next();
208
        for (Primitive primitive : primitives) {
222 209
            Geometry offset = primitive.offset(distance);
223 210
            if(offset instanceof MultiPrimitive){
224 211
                MultiPrimitive multiOffset = (MultiPrimitive)offset;

Also available in: Unified diff