Revision 18219 trunk/libraries/lib3DMap/src/com/iver/ai2/gvsig3d/cacheservices/FLayerCacheService.java
FLayerCacheService.java | ||
---|---|---|
50 | 50 |
import com.iver.utiles.FileUtils; |
51 | 51 |
import com.iver.utiles.swing.threads.Cancellable; |
52 | 52 |
|
53 |
import es.upv.ai2.libjosg.planets.Planet;
|
|
53 |
import es.upv.ai2.osgvp.planets.Planet;
|
|
54 | 54 |
|
55 | 55 |
public class FLayerCacheService extends RasterCacheService { |
56 | 56 |
private boolean _loadFailed = true; |
... | ... | |
351 | 351 |
|
352 | 352 |
} |
353 | 353 |
|
354 |
public String getTileAsFName(TileNum t) throws CacheServiceException { |
|
355 |
|
|
354 |
public String getTileAsFName(TileNum t, Rectangle2D extent) throws CacheServiceException { |
|
356 | 355 |
if (_loadFailed) { |
357 | 356 |
throw new CacheServiceException(new Exception()); |
358 | 357 |
} |
... | ... | |
360 | 359 |
String fName = getTileFileName(t); |
361 | 360 |
// System.out.println("CMTexture2D: requestTexture: "+tileId); |
362 | 361 |
if (!new File(fName).exists()) { |
363 |
Rectangle2D tileExtent = computeBBox(t); |
|
364 |
// System.out.println("Extent calculado del tilenum "+ t + |
|
365 |
// tileExtent.getMinX() + " " |
|
366 |
// + tileExtent.getMinY() + " " + tileExtent.getHeight() + " " + |
|
367 |
// tileExtent.getWidth()); |
|
368 |
getTileFromLayer(fName, tileExtent); |
|
369 |
} |
|
370 |
return fName; |
|
371 |
} |
|
372 |
|
|
373 |
public String getTileAsFName(TileNum t, Rectangle2D extent) |
|
374 |
throws CacheServiceException { |
|
375 |
if (_loadFailed) { |
|
376 |
throw new CacheServiceException(new Exception()); |
|
377 |
} |
|
378 |
String tileId = t.numToOpTileId(); |
|
379 |
String fName = getTileFileName(t); |
|
380 |
// System.out.println("CMTexture2D: requestTexture: "+tileId); |
|
381 |
if (!new File(fName).exists()) { |
|
382 | 362 |
Rectangle2D tileExtent = extent; |
383 | 363 |
getTileFromLayer(fName, tileExtent); |
384 | 364 |
} |
385 | 365 |
return fName; |
386 | 366 |
} |
387 | 367 |
|
388 |
public Image getTileAsImage(TileNum tileNum) throws CacheServiceException { |
|
368 |
public Image getTileAsImage(TileNum tileNum, Rectangle2D extent) throws CacheServiceException {
|
|
389 | 369 |
if ((tileNum.getLevel() == 5)) {// && (tileNum.getX())==29 && |
390 | 370 |
// (tileNum.getY()==9)){ |
391 | 371 |
System.err.println("pillado"); |
... | ... | |
397 | 377 |
String tileId = tileNum.numToOpTileId(); |
398 | 378 |
String fName = getTileFileName(tileNum); |
399 | 379 |
// System.out.println("CMTexture2D: requestTexture: "+tileId); |
400 |
Rectangle2D tileExtent = computeBBox(tileNum);
|
|
380 |
Rectangle2D tileExtent = extent;
|
|
401 | 381 |
return getTileFromLayer(fName, tileExtent); |
402 | 382 |
} |
403 | 383 |
|
404 |
public boolean intersectsLayer(TileNum tileNum) { |
|
405 |
Rectangle2D tileExtent = computeBBox(tileNum); |
|
406 |
// TODO: use a reprojected layer extent !!! |
|
407 |
// System.err.println("TILE: |
|
408 |
// ("+tileExtent.getMinX()+","+tileExtent.getMinY()+"),("+ |
|
409 |
// tileExtent.getMaxX()+","+tileExtent.getMaxY()+")"); |
|
410 |
// System.err.println("CAPA: |
|
411 |
// ("+_lyrExtentRect.getMinX()+","+_lyrExtentRect.getMinY()+"),("+ |
|
412 |
// _lyrExtentRect.getMaxX()+","+_lyrExtentRect.getMaxY()+")"); |
|
413 |
// System.err.println("INTERSECTA LA |
|
414 |
// CAPAAAAAA??????????:"+_lyrExtentRect.intersects(tileExtent)); |
|
415 |
// return (_lyrExtentRect.intersects(tileExtent)); |
|
416 |
return Math.max(_lyrExtentRect.getMinX(), tileExtent.getMinX()) <= Math |
|
417 |
.min(_lyrExtentRect.getMaxX(), tileExtent.getMaxX()) |
|
418 |
&& Math.max(Math.min(_lyrExtentRect.getMinY(), _lyrExtentRect |
|
419 |
.getMaxY()), tileExtent.getMinY()) <= Math.min( |
|
420 |
Math.max(_lyrExtentRect.getMinY(), _lyrExtentRect |
|
421 |
.getMaxY()), tileExtent.getMaxY()); |
|
422 |
} |
|
423 |
|
|
424 | 384 |
public boolean intersectsLayer(Rectangle2D extent) { |
425 | 385 |
Rectangle2D tileExtent = extent; |
426 | 386 |
|
Also available in: Unified diff