diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/dem/AbstractTile.java b/rugged-core/src/main/java/org/orekit/rugged/core/dem/AbstractTile.java index d8d4f089362de965bfa7719df3ea625c6bc79db4..af448dae7daf581ed4d7797003bc9990539d08a4 100644 --- a/rugged-core/src/main/java/org/orekit/rugged/core/dem/AbstractTile.java +++ b/rugged-core/src/main/java/org/orekit/rugged/core/dem/AbstractTile.java @@ -64,6 +64,12 @@ public abstract class AbstractTile implements Tile { this.longitudeColumns = longitudeColumns; } + /** {@inheritDoc} */ + @Override + public void tileUpdateCompleted() throws RuggedException { + // do nothing by default + } + /** {@inheritDoc} */ @Override public double getMinimumLatitude() { diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java b/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java index 554af99c3e0d3529ca361bf554077ecdaa0f5bd6..cea32b7376bf1126ed8455eebeddcaef7dd60366 100644 --- a/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java +++ b/rugged-core/src/main/java/org/orekit/rugged/core/dem/Tile.java @@ -24,6 +24,12 @@ import org.orekit.rugged.api.UpdatableTile; */ public interface Tile extends UpdatableTile { + /** Hook called at the end of tile update completion. + * @exception RuggedException if something wrong occurs + * (missing data ...) + */ + void tileUpdateCompleted() throws RuggedException; + /** Get minimum latitude. * @return minimum latitude */ diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/dem/TilesCache.java b/rugged-core/src/main/java/org/orekit/rugged/core/dem/TilesCache.java index a840c6524bea86f197034cd83e2896f5ec226e6c..945f16a4896d5e282de77157e46bbf8ac1caa5e4 100644 --- a/rugged-core/src/main/java/org/orekit/rugged/core/dem/TilesCache.java +++ b/rugged-core/src/main/java/org/orekit/rugged/core/dem/TilesCache.java @@ -98,6 +98,7 @@ public class TilesCache<T extends Tile> { // create the tile and retrieve its data final T tile = factory.createTile(); updater.updateTile(latitude, longitude, tile); + tile.tileUpdateCompleted(); // store the tile in the eviction cache evictionCache[next] = tile;