Revision 42464 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/DefaultEnvelope.java

View differences:

DefaultEnvelope.java
24 24

  
25 25
package org.gvsig.fmap.geom.jts.primitive;
26 26

  
27
import java.text.MessageFormat;
27
import java.util.ArrayList;
28 28

  
29
import com.vividsolutions.jts.geom.Coordinate;
30

  
29 31
import org.slf4j.Logger;
30 32
import org.slf4j.LoggerFactory;
31 33

  
......
35 37
import org.gvsig.fmap.geom.GeometryLocator;
36 38
import org.gvsig.fmap.geom.GeometryManager;
37 39
import org.gvsig.fmap.geom.exception.CreateGeometryException;
40
import org.gvsig.fmap.geom.jts.GeometryJTS;
41
import org.gvsig.fmap.geom.jts.util.ArrayListCoordinateSequence;
42
import org.gvsig.fmap.geom.jts.util.JTSUtils;
38 43
import org.gvsig.fmap.geom.primitive.Envelope;
39 44
import org.gvsig.fmap.geom.primitive.EnvelopeNotInitializedException;
40 45
import org.gvsig.fmap.geom.primitive.Point;
......
70 75

  
71 76
    protected boolean isEmpty;
72 77

  
78
    private com.vividsolutions.jts.geom.Polygon jtsGeom = null;
79

  
73 80
    protected static GeometryManager manager = GeometryLocator.getGeometryManager();
74 81

  
75 82
    public DefaultEnvelope(){
......
278 285
        if (max != null){
279 286
            isEmpty = false;
280 287
        }
288
        jtsGeom = null;
281 289
    }
282 290

  
283 291
    /* (non-Javadoc)
......
288 296
        if (min != null){
289 297
            isEmpty = false;
290 298
        }
299
        jtsGeom = null;
291 300
    }
292 301

  
293 302
    public static void registerPersistent() {
......
338 347
        isEmpty = true;
339 348
    }
340 349

  
350
    /* (non-Javadoc)
351
     * @see org.gvsig.fmap.geom.primitive.Envelope#intersects(org.gvsig.fmap.geom.Geometry)
352
     */
353
    @Override
354
    public boolean intersects(Geometry geometry) {
355
        if(geometry instanceof GeometryJTS){
356
            return getJTS().intersects(((GeometryJTS)geometry).getJTS());
357
        }
358
        return false;
359
    }
360

  
361

  
362
    private com.vividsolutions.jts.geom.Geometry getJTS() {
363
        if (jtsGeom == null) {
364
            ArrayListCoordinateSequence coordinates = new ArrayListCoordinateSequence(new ArrayList<Coordinate>());
365
            coordinates.add(new com.vividsolutions.jts.geom.Coordinate(min.getX(), min.getY()));
366
            coordinates.add(new com.vividsolutions.jts.geom.Coordinate(getMaximum(0), getMinimum(1)));
367
            coordinates.add(new com.vividsolutions.jts.geom.Coordinate(max.getX(), max.getY()));
368
            coordinates.add(new com.vividsolutions.jts.geom.Coordinate(getMinimum(0), getMaximum(1)));
369
            coordinates.add(new com.vividsolutions.jts.geom.Coordinate(min.getX(), min.getY()));
370
            jtsGeom = JTSUtils.createJTSPolygon(coordinates);
371
        }
372
        return jtsGeom;
373
    }
341 374
}

Also available in: Unified diff