NASA World Wind

gov.nasa.worldwind.terrain
Class CompoundElevationModel

java.lang.Object
  extended by gov.nasa.worldwind.avlist.AVListImpl
      extended by gov.nasa.worldwind.WWObjectImpl
          extended by gov.nasa.worldwind.terrain.AbstractElevationModel
              extended by gov.nasa.worldwind.terrain.CompoundElevationModel
All Implemented Interfaces:
AVList, ElevationModel, Restorable, WWObject, PropertyChangeListener, EventListener
Direct Known Subclasses:
HawaiianIslandsElevationModel

public class CompoundElevationModel
extends AbstractElevationModel


Field Summary
protected  CopyOnWriteArrayList<ElevationModel> elevationModels
           
 
Fields inherited from class gov.nasa.worldwind.terrain.AbstractElevationModel
missingDataFlag, missingDataValue
 
Fields inherited from class gov.nasa.worldwind.avlist.AVListImpl
changeSupport
 
Constructor Summary
CompoundElevationModel()
           
 
Method Summary
 void addElevationModel(ElevationModel em)
           
 void addElevationModel(int index, ElevationModel em)
           
 boolean contains(Angle latitude, Angle longitude)
          Indicates whether a specified location is within the elevation model's domain.
 double getBestResolution(Sector sector)
          Indicates the best resolution attainable for a specified sector.
 double getDetailHint(Sector sector)
          Returns the detail hint associated with the specified sector.
 List<ElevationModel> getElevationModels()
           
 double getElevations(Sector sector, List<? extends LatLon> latlons, double targetResolution, double[] buffer)
          Returns the elevations of a collection of locations.
 double[] getExtremeElevations(Angle latitude, Angle longitude)
          Returns the minimum and maximum elevations at a specified location.
 double[] getExtremeElevations(Sector sector)
          Returns the minimum and maximum elevations within a specified sector of the elevation model.
 double getMaxElevation()
          Returns the maximum elevation contained in the elevevation model.
 double getMinElevation()
          Returns the minimum elevation contained in the elevevation model.
 double getUnmappedElevation(Angle latitude, Angle longitude)
          Returns the elevation at a specified location, but without mapping missing data to the elevation model's missing data replacement value.
 int intersects(Sector sector)
          Indicates whether the elevation model corresponds to a specified sector.
 void removeElevationModel(ElevationModel em)
           
 void removeElevationModel(int index)
           
 void setElevationModel(int index, ElevationModel em)
           
 void setNetworkRetrievalEnabled(boolean networkRetrievalEnabled)
          Controls whether the elevation model is allowed to retrieve data from the network.
 
Methods inherited from class gov.nasa.worldwind.terrain.AbstractElevationModel
getElevation, getMissingDataReplacement, getMissingDataSignal, getName, getRestorableState, isNetworkRetrievalEnabled, restoreState, setMissingDataReplacement, setMissingDataSignal, setName, toString
 
Methods inherited from class gov.nasa.worldwind.WWObjectImpl
propertyChange
 
Methods inherited from class gov.nasa.worldwind.avlist.AVListImpl
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getDoubleValue, getDoubleValue, getEntries, getIntegerValue, getIntegerValue, getLongValue, getLongValue, getStringValue, getStringValue, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface gov.nasa.worldwind.avlist.AVList
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getEntries, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 
Methods inherited from interface java.beans.PropertyChangeListener
propertyChange
 

Field Detail

elevationModels

protected CopyOnWriteArrayList<ElevationModel> elevationModels
Constructor Detail

CompoundElevationModel

public CompoundElevationModel()
Method Detail

addElevationModel

public void addElevationModel(ElevationModel em)

addElevationModel

public void addElevationModel(int index,
                              ElevationModel em)

contains

public boolean contains(Angle latitude,
                        Angle longitude)
Description copied from interface: ElevationModel
Indicates whether a specified location is within the elevation model's domain.

Parameters:
latitude - the latitude of the location in question.
longitude - the longitude of the location in question.
Returns:
true if the location is within the elevation model's domain, otherwise false.

getBestResolution

public double getBestResolution(Sector sector)
Description copied from interface: ElevationModel
Indicates the best resolution attainable for a specified sector.

Parameters:
sector - the sector in question. If null, the elevation model's best overall resolution is returned. This is the best attainable at some locations but not necessarily at all locations.
Returns:
the best resolution attainable for the specified sector, in radians, or Double.MAX_VALUE if the sector does not intersect the elevation model.

getDetailHint

public double getDetailHint(Sector sector)
Description copied from interface: ElevationModel
Returns the detail hint associated with the specified sector. If the elevation model does not have any detail hint for the sector, this will return zero.

Specified by:
getDetailHint in interface ElevationModel
Overrides:
getDetailHint in class AbstractElevationModel
Parameters:
sector - the sector in question.
Returns:
The detail hint corresponding to the specified sector.

getElevationModels

public List<ElevationModel> getElevationModels()

getElevations

public double getElevations(Sector sector,
                            List<? extends LatLon> latlons,
                            double targetResolution,
                            double[] buffer)
Description copied from interface: ElevationModel
Returns the elevations of a collection of locations.

The missing-data sentinel value, if previously specified, is returned for locations at which an elevation cannot be determined. if a missing-data value has not been specified, an elevation-model specific value, typically zero, is returned.

Parameters:
sector - the sector in question.
latlons - the locations to return elevations for. A value of zero is returned if a location is null.
targetResolution - the desired horizontal resolution, in radians, of the raster or other elevation sample from which elevations are drawn. (To compute radians from a distance, divide the distance by the radius of the globe, ensuring that both the distance and the radius are in the same units.)
buffer - an array in which to place the returned elevations. The array must be pre-allocated and contain at least as many elements as the list of locations.
Returns:
the resolution achieved, in radians, or Double.MAX_VALUE if individual elevations cannot be determined for any of the locations.
See Also:
#setMissingValueSentinel(Double)

getExtremeElevations

public double[] getExtremeElevations(Angle latitude,
                                     Angle longitude)
Description copied from interface: ElevationModel
Returns the minimum and maximum elevations at a specified location.

Parameters:
latitude - the latitude of the location in question.
longitude - the longitude of the location in question.
Returns:
A two-element double array indicating the minimum and maximum elevations at the specified location, respectively. These values are the global minimum and maximum if the local minimum and maximum values are currently unknown.

getExtremeElevations

public double[] getExtremeElevations(Sector sector)
Description copied from interface: ElevationModel
Returns the minimum and maximum elevations within a specified sector of the elevation model.

Parameters:
sector - the sector in question.
Returns:
A two-element double array indicating the sector's minimum and maximum elevations, respectively. These elements are the global minimum and maximum if the local minimum and maximum values are currently unknown.

getMaxElevation

public double getMaxElevation()
Description copied from interface: ElevationModel
Returns the maximum elevation contained in the elevevation model. When the elevation model is associated with a globe, this value is the elevation of the highest point on the globe.

Returns:
The maximum elevation of the elevation model.

getMinElevation

public double getMinElevation()
Description copied from interface: ElevationModel
Returns the minimum elevation contained in the elevevation model. When associated with a globe, this value is the elevation of the lowest point on the globe. It may be negative, indicating a value below mean surface level. (Sea level in the case of Earth.)

Returns:
The minimum elevation of the model.

getUnmappedElevation

public double getUnmappedElevation(Angle latitude,
                                   Angle longitude)
Description copied from interface: ElevationModel
Returns the elevation at a specified location, but without mapping missing data to the elevation model's missing data replacement value. In the case of missing data values, the missing data signal is returned rather than the missing data replacement value. *

Parameters:
latitude - the latitude of the location for which to return the elevation.
longitude - the longitude of the location for which to return the elevation.
Returns:
the elevation at the specified location, or the elevation model's missing data signal. If no data is currently available for the location, the elevation model's global minimum elevation at that location is returned.

intersects

public int intersects(Sector sector)
Description copied from interface: ElevationModel
Indicates whether the elevation model corresponds to a specified sector.

Parameters:
sector - the sector in question.
Returns:
0 if the elevation model fully contains the sector, 1 if the elevation model intersects the sector but does not fully contain it, or -1 if the elevation does not intersect the elevation model.

removeElevationModel

public void removeElevationModel(ElevationModel em)

removeElevationModel

public void removeElevationModel(int index)

setElevationModel

public void setElevationModel(int index,
                              ElevationModel em)

setNetworkRetrievalEnabled

public void setNetworkRetrievalEnabled(boolean networkRetrievalEnabled)
Description copied from interface: ElevationModel
Controls whether the elevation model is allowed to retrieve data from the network. Some elevation models have no need for data from the network. This state may be set but is meaningless for such elevation models.

Specified by:
setNetworkRetrievalEnabled in interface ElevationModel
Overrides:
setNetworkRetrievalEnabled in class AbstractElevationModel
Parameters:
networkRetrievalEnabled - true if network retrieval is allowed, else false.

NASA World Wind