Interface Globe
-
- All Superinterfaces:
AVList
,java.util.EventListener
,Extent
,MessageListener
,java.beans.PropertyChangeListener
,WWObject
- All Known Implementing Classes:
Earth
,EarthFlat
,EllipsoidalGlobe
,FlatGlobe
public interface Globe extends WWObject, Extent
Represents a planet's shape and terrain. A globe may be associated with anElevationModel
that provides elevations for geographic positions on the surface of the globe. Globe provides methods for converting geographic positions (latitude, longitude, and elevation) to cartesian coordinates, and for converting cartesian to geographic. The origin and orientation of the cartesian coordinate system are determined by implementations of this interface.Computations in Cartesian Coordinates
Globe provides methods for performing computations in the coordinate system represented by a globe's surface in cartesian coordinates. These methods perform work with respect to the globe's actual shape in 3D cartesian coordinates. For an ellipsoidal globe, these methods are equivalent to the ellipsoidal coordinate computations below. For an instance of
Globe2D
, these methods work in the cartesian coordinates specified by the globe's 2D projection.computePointFromPosition(gov.nasa.worldwind.geom.Angle, gov.nasa.worldwind.geom.Angle, double)
computePositionFromPoint(gov.nasa.worldwind.geom.Vec4)
computeSurfaceNormalAtLocation(gov.nasa.worldwind.geom.Angle, gov.nasa.worldwind.geom.Angle)
computeSurfaceOrientationAtPosition(gov.nasa.worldwind.geom.Angle, gov.nasa.worldwind.geom.Angle, double)
Computations in Ellipsoidal Coordinates
Globe provides methods for performing computation on the ellipsoid represented by a globe's equatorial radius and its polar radius. These methods perform work with respect to the ellipsoid in 3D cartesian coordinates. Calling any of these methods on an instance of Globe2D will return the same result as a 3D globe with equivalent radii.
computeEllipsoidalPointFromPosition(gov.nasa.worldwind.geom.Angle, gov.nasa.worldwind.geom.Angle, double)
computePositionFromEllipsoidalPoint(gov.nasa.worldwind.geom.Vec4)
computeEllipsoidalNormalAtLocation(gov.nasa.worldwind.geom.Angle, gov.nasa.worldwind.geom.Angle)
computeEllipsoidalOrientationAtPosition(gov.nasa.worldwind.geom.Angle, gov.nasa.worldwind.geom.Angle, double)
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Vec4
computeEllipsoidalNormalAtLocation(Angle latitude, Angle longitude)
Computes a vector perpendicular to the surface of the ellipsoid specified by this globe, in cartesian coordinates.Matrix
computeEllipsoidalOrientationAtPosition(Angle latitude, Angle longitude, double metersElevation)
Returns the cartesian transform matrix that maps local model coordinates to an ellipsoidal coordinate system at (latitude, longitude, metersElevation).Vec4
computeEllipsoidalPointFromLocation(LatLon location)
Computes a ellipsoidal point from a latitude and longitude.Vec4
computeEllipsoidalPointFromPosition(Angle latitude, Angle longitude, double metersElevation)
Computes a ellipsoidal point from a latitude, longitude, and elevation.Vec4
computeEllipsoidalPointFromPosition(Position position)
Computes a ellipsoidal point from a latitude, longitude, and elevation.Matrix
computeModelCoordinateOriginTransform(Angle latitude, Angle longitude, double metersElevation)
Matrix
computeModelCoordinateOriginTransform(Position position)
Vec4
computeNorthPointingTangentAtLocation(Angle latitude, Angle longitude)
Computes a vector tangent to this globe and pointing toward the north pole.Vec4
computePointFromLocation(LatLon location)
Computes a cartesian point from a geographic location on the surface of this globe.Vec4
computePointFromPosition(Angle latitude, Angle longitude, double metersElevation)
Computes a cartesian point from a latitude, longitude, and elevation.Vec4
computePointFromPosition(LatLon latLon, double metersElevation)
Computes a cartesian point from a geographic location and elevation.Vec4
computePointFromPosition(Position position)
Computes a cartesian point from a geographic position.void
computePointsFromPositions(Sector sector, int numLat, int numLon, double[] metersElevation, Vec4[] out)
Computes a grid of cartesian points corresponding to a grid of geographic positions.Position
computePositionFromEllipsoidalPoint(Vec4 ellipsoidalPoint)
Computes the geographic position of a point in ellipsoidal coordinates.Position
computePositionFromPoint(Vec4 point)
Computes the geographic position of a point in cartesian coordinates.Vec4
computeSurfaceNormalAtLocation(Angle latitude, Angle longitude)
Computes a vector perpendicular to the surface of this globe in cartesian coordinates.Vec4
computeSurfaceNormalAtPoint(Vec4 point)
Computes a vector perpendicular to the surface of this globe, at a cartesian point.Matrix
computeSurfaceOrientationAtPosition(Angle latitude, Angle longitude, double metersElevation)
Returns the cartesian transform matrix that maps model coordinates to a local coordinate system at (latitude, longitude, metersElevation).Matrix
computeSurfaceOrientationAtPosition(Position position)
Returns the cartesian transform matrix that maps model coordinates to a local coordinate system at (latitude, longitude, metersElevation).double
getEccentricitySquared()
Indicates the square of this globe's eccentricity.double
getElevation(Angle latitude, Angle longitude)
Indicates the elevation at a specified location.ElevationModel
getElevationModel()
Indicates this globe's elevation model.double[]
getElevations(Sector sector, java.util.List<? extends LatLon> latlons, double[] targetResolution, double[] elevations)
Indicates the elevations of a collection of locations.double
getElevations(Sector sector, java.util.List<? extends LatLon> latlons, double targetResolution, double[] elevations)
Indicates the elevations of a collection of locations.double
getEquatorialRadius()
Indicates the radius of the globe at the equator, in meters.Extent
getExtent()
Indicates the spatial volume contained by this globe.GlobeStateKey
getGlobeStateKey()
Returns a typed state key identifying this globe's current configuration.GlobeStateKey
getGlobeStateKey(DrawContext dc)
Returns a typed state key identifying this globe's current configuration.Position
getIntersectionPosition(Line line)
Computes the intersections of this globe and a line.double
getMaxElevation()
Indicates the maximum elevation on this globe, in meters.double
getMaximumRadius()
Indicates the maximum radius on the globe.double[]
getMinAndMaxElevations(Angle latitude, Angle longitude)
Returns the minimum and maximum elevations at a specified location on this Globe.double[]
getMinAndMaxElevations(Sector sector)
Returns the minimum and maximum elevations within a specified sector on this Globe.double
getMinElevation()
Indicates the minimum elevation on this globe, in meters.double
getPolarRadius()
Indicates the radius of the globe at the poles, in meters.double
getRadiusAt(Angle latitude, Angle longitude)
Indicates the radius in meters of the globe's ellipsoid at a location.double
getRadiusAt(LatLon location)
Indicates the radius in meters of the globe's ellipsoid at a location.java.lang.Object
getStateKey(DrawContext dc)
Returns a state key identifying this globe's current configuration.Tessellator
getTessellator()
Returns this globe's current tessellator.Intersection[]
intersect(Line line, double altitude)
Intersects a specified line with this globe.Intersection[]
intersect(Triangle triangle, double altitude)
Intersects a specified triangle with the globe.boolean
isPointAboveElevation(Vec4 point, double elevation)
Determines whether a point is above a given elevation.void
setElevationModel(ElevationModel elevationModel)
Specifies this globe's elevation model.void
setTessellator(Tessellator tessellator)
Specifies this globe's tessellator.SectorGeometryList
tessellate(DrawContext dc)
Tessellate this globe for the currently visible region.-
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 gov.nasa.worldwind.geom.Extent
getCenter, getDiameter, getEffectiveRadius, getProjectedArea, getRadius, intersect, intersects, intersects, intersects
-
Methods inherited from interface gov.nasa.worldwind.event.MessageListener
onMessage
-
-
-
-
Method Detail
-
getExtent
Extent getExtent()
Indicates the spatial volume contained by this globe.- Returns:
- An Extent object representing the volume of space enclosed by this globe.
-
getEquatorialRadius
double getEquatorialRadius()
Indicates the radius of the globe at the equator, in meters.- Returns:
- The radius at the equator, in meters.
-
getPolarRadius
double getPolarRadius()
Indicates the radius of the globe at the poles, in meters.- Returns:
- The radius at the poles, in meters.
-
getMaximumRadius
double getMaximumRadius()
Indicates the maximum radius on the globe.- Returns:
- The maximum radius, in meters.
-
getRadiusAt
double getRadiusAt(Angle latitude, Angle longitude)
Indicates the radius in meters of the globe's ellipsoid at a location.- Parameters:
latitude
- Latitude of the location at which to determine radius.longitude
- Longitude of the location at which to determine radius.- Returns:
- The radius in meters of the globe's ellipsoid at the specified location.
-
getElevation
double getElevation(Angle latitude, Angle longitude)
Indicates the elevation at a specified location. If the elevation at the specified location is the elevation model's missing data signal, or if the location specified is outside the elevation model's coverage area, the elevation model's missing data replacement value is returned.The elevation returned from this method is the best available in memory. If no elevation is in memory, the elevation model's minimum extreme elevation at the location is returned. Local disk caches are not consulted.
- Parameters:
latitude
- the latitude of the location at which to determine elevation.longitude
- the longitude of the location at which to determine elevation.- Returns:
- The elevation corresponding to the specified location, or the elevation model's missing-data replacement value if there is no elevation for the given location. Returns zero if no elevation model is available.
- See Also:
getElevationModel()
-
getElevations
double getElevations(Sector sector, java.util.List<? extends LatLon> latlons, double targetResolution, double[] elevations)
Indicates the elevations of a collection of locations. Replaces any elevation values corresponding to the missing data signal with the elevation model's missing data replacement value. If a location within the elevation model's coverage area cannot currently be determined, the elevation model's minimum extreme elevation for that location is returned in the output buffer. If a location is outside the elevation model's coverage area, the output buffer for that location is not modified; it retains the buffer's original value.- Parameters:
sector
- the sector in question.latlons
- the locations to return elevations for. If a location is null, the output buffer for that location is not modified.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.)elevations
- 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 all of the locations. Returns zero if an elevation model is not available. - Throws:
java.lang.IllegalArgumentException
- if either the sector, latlons list or elevations array is null.- See Also:
getElevationModel()
-
getElevations
double[] getElevations(Sector sector, java.util.List<? extends LatLon> latlons, double[] targetResolution, double[] elevations)
Indicates the elevations of a collection of locations. Replaces any elevation values corresponding to the missing data signal with the elevation model's missing data replacement value. If a location within the elevation model's coverage area cannot currently be determined, the elevation model's minimum extreme elevation for that location is returned in the output buffer. If a location is outside the elevation model's coverage area, the output buffer for that location is not modified; it retains the buffer's original value.- Parameters:
sector
- the sector in question.latlons
- the locations to return elevations for. If a location is null, the output buffer for that location is not modified.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.) This parameter is an array to allow varying resolutions to be specified forCompoundElevationModel
.elevations
- 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 all of the locations. Returns zero if an elevation model is not available. - Throws:
java.lang.IllegalArgumentException
- if either the sector, latlons list, target resolutions array or elevations array is null.- See Also:
getElevationModel()
-
getMaxElevation
double getMaxElevation()
Indicates the maximum elevation on this globe, in meters.- Returns:
- The maximum elevation, or zero if the maximum elevation cannot be determined.
-
getMinElevation
double getMinElevation()
Indicates the minimum elevation on this globe, in meters.- Returns:
- The minimum elevation, or zero if the minimum elevation cannot be determined.
-
getIntersectionPosition
Position getIntersectionPosition(Line line)
Computes the intersections of this globe and a line.- Parameters:
line
- the line with which to intersect this globe.- Returns:
- the geographic position of the intersection of this globe and specified line. If there are multiple intersections the intersection nearest to the line's origin is returned. The intersection may be a tangent. Returns null if the line does not intersect this globe.
-
getEccentricitySquared
double getEccentricitySquared()
Indicates the square of this globe's eccentricity. Eccentricity is a measure of how the equatorial and polar radii are related.- Returns:
- The square of this globe's eccentricity.
-
computePointFromPosition
Vec4 computePointFromPosition(Angle latitude, Angle longitude, double metersElevation)
Computes a cartesian point from a latitude, longitude, and elevation.- Parameters:
latitude
- Latitude of the location to convert to cartesian.longitude
- Longitude of the location to convert to cartesian.metersElevation
- Elevation, in meters, of the geographic position to convert to cartesian.- Returns:
- The cartesian point that corresponds to the specified geographic position.
-
computePointFromPosition
Vec4 computePointFromPosition(LatLon latLon, double metersElevation)
Computes a cartesian point from a geographic location and elevation.- Parameters:
latLon
- Geographic location to convert to cartesian.metersElevation
- Elevation, in meters, of the geographic position to convert to cartesian.- Returns:
- The cartesian point that corresponds to the specified geographic position.
-
computePointFromPosition
Vec4 computePointFromPosition(Position position)
Computes a cartesian point from a geographic position.- Parameters:
position
- Geographic position to convert to cartesian. The position may include elevation above or below the globe's surface.- Returns:
- The cartesian point that corresponds to the specified geographic position.
-
computePointFromLocation
Vec4 computePointFromLocation(LatLon location)
Computes a cartesian point from a geographic location on the surface of this globe.- Parameters:
location
- Geographic location on the surface of the globe to convert to cartesian.- Returns:
- The cartesian point that corresponds to the specified geographic location.
-
computePositionFromPoint
Position computePositionFromPoint(Vec4 point)
Computes the geographic position of a point in cartesian coordinates.- Parameters:
point
- Point of which to find the geographic position.- Returns:
- The geographic position of the specified point.
-
computePointsFromPositions
void computePointsFromPositions(Sector sector, int numLat, int numLon, double[] metersElevation, Vec4[] out)
Computes a grid of cartesian points corresponding to a grid of geographic positions.This method provides an interface for efficient generation of a grid of cartesian points within a sector. The grid is constructed by dividing the sector into
numLon x numLat
evenly separated points in geographic coordinates. The first and last points in latitude and longitude are placed at the sector's minimum and maximum boundary, and the remaining points are spaced evenly between those boundary points.For each grid point within the sector, an elevation value is specified via an array of elevations. The calculation at each position incorporates the associated elevation.
- Parameters:
sector
- The sector over which to generate the points.numLat
- The number of points to generate latitudinally.numLon
- The number of points to generate longitudinally.metersElevation
- An array of elevations to incorporate in the point calculations. There must be one elevation value in the array for each generated point, so the array must have a length of at leastnumLon x numLat
. Elevations are read from this array in row major order, beginning with the row of minimum latitude.out
- An array to hold the computed cartesian points. It must have a length of at leastnumLon x numLat
. Points are written to this array in row major order, beginning with the row of minimum latitude.- Throws:
java.lang.IllegalArgumentException
- If any argument is null, or if numLat or numLon are less than or equal to zero.
-
computeSurfaceNormalAtLocation
Vec4 computeSurfaceNormalAtLocation(Angle latitude, Angle longitude)
Computes a vector perpendicular to the surface of this globe in cartesian coordinates.- Parameters:
latitude
- Latitude of the location at which to compute the normal vector.longitude
- Longitude of the location at which to compute the normal vector.- Returns:
- A vector perpendicular to the surface of this globe, at the specified location.
-
computeSurfaceNormalAtPoint
Vec4 computeSurfaceNormalAtPoint(Vec4 point)
Computes a vector perpendicular to the surface of this globe, at a cartesian point.- Parameters:
point
- Point in cartesian coordinates at which to compute the normal vector.- Returns:
- A vector perpendicular to the surface of this globe, at the specified point.
-
computeNorthPointingTangentAtLocation
Vec4 computeNorthPointingTangentAtLocation(Angle latitude, Angle longitude)
Computes a vector tangent to this globe and pointing toward the north pole.- Parameters:
latitude
- Latitude of the location at which to compute the tangent vector.longitude
- Longitude of the location at which to compute the tangent vector.- Returns:
- A vector tangent to this globe at (latitude, longitude), and pointing toward the north pole of this globe.
-
computeModelCoordinateOriginTransform
Matrix computeModelCoordinateOriginTransform(Angle latitude, Angle longitude, double metersElevation)
- Parameters:
latitude
- See computeSurfaceOrientationAtPosition.longitude
- See computeSurfaceOrientationAtPosition.metersElevation
- See computeSurfaceOrientationAtPosition.- Returns:
- See computeSurfaceOrientationAtPosition.
- See Also:
computeSurfaceOrientationAtPosition(gov.nasa.worldwind.geom.Angle, gov.nasa.worldwind.geom.Angle, double)
-
computeModelCoordinateOriginTransform
Matrix computeModelCoordinateOriginTransform(Position position)
- Parameters:
position
- See computeSurfaceOrientationAtPosition.- Returns:
- See computeSurfaceOrientationAtPosition.
- See Also:
computeSurfaceOrientationAtPosition(gov.nasa.worldwind.geom.Position)
-
computeSurfaceOrientationAtPosition
Matrix computeSurfaceOrientationAtPosition(Angle latitude, Angle longitude, double metersElevation)
Returns the cartesian transform matrix that maps model coordinates to a local coordinate system at (latitude, longitude, metersElevation). The X axis is mapped to the vector tangent to the globe and pointing East. The Y axis is mapped to the vector tangent to the globe and pointing to the North Pole. The Z axis is mapped to the globe normal at (latitude, longitude, metersElevation). The origin is mapped to the cartesian position of (latitude, longitude, metersElevation).- Parameters:
latitude
- the latitude of the position.longitude
- the longitude of the position.metersElevation
- the number of meters above or below mean sea level.- Returns:
- the cartesian transform matrix that maps model coordinates to the local coordinate system at the specified position.
-
computeSurfaceOrientationAtPosition
Matrix computeSurfaceOrientationAtPosition(Position position)
Returns the cartesian transform matrix that maps model coordinates to a local coordinate system at (latitude, longitude, metersElevation). They X axis is mapped to the vector tangent to the globe and pointing East. The Y axis is mapped to the vector tangent to the globe and pointing to the North Pole. The Z axis is mapped to the globe normal at (latitude, longitude, metersElevation). The origin is mapped to the cartesian position of (latitude, longitude, metersElevation).- Parameters:
position
- the latitude, longitude, and number of meters above or below mean sea level.- Returns:
- The cartesian transform matrix that maps model coordinates to the local coordinate system at the specified position.
-
computeEllipsoidalPointFromPosition
Vec4 computeEllipsoidalPointFromPosition(Angle latitude, Angle longitude, double metersElevation)
Computes a ellipsoidal point from a latitude, longitude, and elevation.The returned point is a function of this globe's equatorial radius and its polar radius, and always represents a point on the ellipsoid in 3D cartesian coordinates that corresponds to the specified position. Calling this method on an instance of Globe2D will return a point on the ellipsoid defined by the 2D globe's radii.
- Parameters:
latitude
- Latitude of the location to convert.longitude
- Longitude of the location to convert.metersElevation
- Elevation, in meters, of the geographic position to convert.- Returns:
- The ellipsoidal point that corresponds to the specified geographic position.
- Throws:
java.lang.IllegalArgumentException
- if the specified latitude or longitude is null.
-
computeEllipsoidalPointFromLocation
Vec4 computeEllipsoidalPointFromLocation(LatLon location)
Computes a ellipsoidal point from a latitude and longitude.The returned point is a function of this globe's equatorial radius and its polar radius, and always represents a point on the ellipsoid in 3D cartesian coordinates that corresponds to the specified location. Calling this method on an instance of Globe2D will return a point on the ellipsoid defined by the 2D globe's radii.
- Parameters:
location
- the location to convert.- Returns:
- The ellipsoidal point that corresponds to the specified geographic location.
- Throws:
java.lang.IllegalArgumentException
- if the specified location is null.
-
computeEllipsoidalPointFromPosition
Vec4 computeEllipsoidalPointFromPosition(Position position)
Computes a ellipsoidal point from a latitude, longitude, and elevation.The returned point is a function of this globe's equatorial radius and its polar radius, and always represents a point on the ellipsoid in 3D cartesian coordinates that corresponds to the specified position. Calling this method on an instance of Globe2D will return a point on the ellipsoid defined by the 2D globe's radii.
- Parameters:
position
- Position of the location to convert.- Returns:
- The ellipsoidal point that corresponds to the specified geographic position.
- Throws:
java.lang.IllegalArgumentException
- if the specified position is null.
-
computePositionFromEllipsoidalPoint
Position computePositionFromEllipsoidalPoint(Vec4 ellipsoidalPoint)
Computes the geographic position of a point in ellipsoidal coordinates.The returned position is a function of this globe's equatorial radius and its polar radius, and always represents a position corresponding to the point on the ellipsoid in 3D cartesian coordinates. Calling this method on an instance of Globe2D will return a position corresponding to the ellipsoid defined by the 2D globe's radii.
- Parameters:
ellipsoidalPoint
- Point of which to find the geographic position, relative to the ellipsoid defined by the globe's radii.- Returns:
- The geographic position of the specified ellipsoidal point.
-
computeEllipsoidalNormalAtLocation
Vec4 computeEllipsoidalNormalAtLocation(Angle latitude, Angle longitude)
Computes a vector perpendicular to the surface of the ellipsoid specified by this globe, in cartesian coordinates.The returned vector is a function of this globe's equatorial radius and its polar radius, and always represents a vector normal to the corresponding ellipsoid in 3D cartesian coordinates. Calling this method on an instance of Globe2D will return a vector normal to the ellipsoid defined by the 2D globe's radii.
- Parameters:
latitude
- Latitude of the location at which to compute the normal vector.longitude
- Longitude of the location at which to compute the normal vector.- Returns:
- A vector perpendicular to the surface of the ellipsoid specified by this globe, at the specified location.
- Throws:
java.lang.IllegalArgumentException
- if either angle is null.
-
computeEllipsoidalOrientationAtPosition
Matrix computeEllipsoidalOrientationAtPosition(Angle latitude, Angle longitude, double metersElevation)
Returns the cartesian transform matrix that maps local model coordinates to an ellipsoidal coordinate system at (latitude, longitude, metersElevation). The X axis is mapped to the vector tangent to the ellipsoid and pointing East. The Y axis is mapped to the vector tangent to the ellipsoid and pointing to the North Pole. The Z axis is mapped to the ellipsoidal normal at (latitude, longitude, metersElevation). The origin is mapped to the ellipsoidal position of (latitude, longitude, metersElevation).The returned matrix is a function of this globe's equatorial radius and its polar radius, and always represents a transform matrix appropriate for the corresponding ellipsoid in 3D cartesian coordinates. Calling this method on an instance of Globe2D will return a transform matrix for the ellipsoid defined by the 2D globe's radii.
- Parameters:
latitude
- the latitude of the position.longitude
- the longitude of the position.metersElevation
- the number of meters above or below mean sea level.- Returns:
- The cartesian transform matrix that maps model coordinates to the ellipsoidal coordinate system at the specified position.
-
getRadiusAt
double getRadiusAt(LatLon location)
Indicates the radius in meters of the globe's ellipsoid at a location.- Parameters:
location
- the location at which to determine radius.- Returns:
- The radius in meters of the globe's ellipsoid at the specified location.
-
getMinAndMaxElevations
double[] getMinAndMaxElevations(Angle latitude, Angle longitude)
Returns the minimum and maximum elevations at a specified location on this Globe. This returns a two-element array filled with zero if this Globe has no elevation model.- 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, or zero if this Globe has no elevation model.
-
getMinAndMaxElevations
double[] getMinAndMaxElevations(Sector sector)
Returns the minimum and maximum elevations within a specified sector on this Globe. This returns a two-element array filled with zero if this Globe has no 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, or zero if this Globe has no elevation model.
-
intersect
Intersection[] intersect(Line line, double altitude)
Intersects a specified line with this globe. Only the ellipsoid itself is considered; terrain elevations are not incorporated.- Parameters:
line
- the line to intersect.altitude
- a distance in meters to expand the globe's equatorial and polar radii prior to performing the intersection.- Returns:
- the intersection points, or null if no intersection occurs or the
line
is null.
-
intersect
Intersection[] intersect(Triangle triangle, double altitude)
Intersects a specified triangle with the globe. Only the ellipsoid itself is considered; terrain elevations are not incorporated.- Parameters:
triangle
- the triangle to intersect.altitude
- a distance in meters to expand the globe's equatorial and polar radii prior to performing the intersection.- Returns:
- the intersection points, or null if no intersection occurs or
triangle
is null.
-
getTessellator
Tessellator getTessellator()
Returns this globe's current tessellator.- Returns:
- the globe's current tessellator.
-
setTessellator
void setTessellator(Tessellator tessellator)
Specifies this globe's tessellator.- Parameters:
tessellator
- the new tessellator. Specify null to use the default tessellator.
-
tessellate
SectorGeometryList tessellate(DrawContext dc)
Tessellate this globe for the currently visible region.- Parameters:
dc
- the current draw context.- Returns:
- the tessellation, or null if the tessellation failed or the draw context identifies no visible region.
- Throws:
java.lang.IllegalStateException
- if the globe has no tessellator and a default tessellator cannot be created.
-
getStateKey
java.lang.Object getStateKey(DrawContext dc)
Returns a state key identifying this globe's current configuration. Can be used to subsequently determine whether the globe's configuration has changed.- Parameters:
dc
- the current draw context.- Returns:
- a state key for the globe's current configuration.
- Throws:
java.lang.IllegalArgumentException
- if the draw context is null.
-
getGlobeStateKey
GlobeStateKey getGlobeStateKey(DrawContext dc)
Returns a typed state key identifying this globe's current configuration. Can be used to subsequently determine whether the globe's configuration has changed.- Parameters:
dc
- the current draw context.- Returns:
- a state key for the globe's current configuration.
- Throws:
java.lang.IllegalArgumentException
- if the draw context is null.
-
getGlobeStateKey
GlobeStateKey getGlobeStateKey()
Returns a typed state key identifying this globe's current configuration. Can be used to subsequently determine whether the globe's configuration has changed.- Returns:
- a state key for the globe's current configuration.
- Throws:
java.lang.IllegalArgumentException
- if the draw context is null.
-
getElevationModel
ElevationModel getElevationModel()
Indicates this globe's elevation model.- Returns:
- this globe's elevation model.
-
setElevationModel
void setElevationModel(ElevationModel elevationModel)
Specifies this globe's elevation model.- Parameters:
elevationModel
- this globe's elevation model. May be null to indicate no elevation model.
-
isPointAboveElevation
boolean isPointAboveElevation(Vec4 point, double elevation)
Determines whether a point is above a given elevation.- Parameters:
point
- theVec4
point to test. If null, this method returns false.elevation
- the elevation to test for.- Returns:
- true if the given point is above the given elevation, otherwise false.
-
-