gov.nasa.worldwind.globes
Class FlatGlobe
java.lang.Object
gov.nasa.worldwind.avlist.AVListImpl
gov.nasa.worldwind.WWObjectImpl
gov.nasa.worldwind.globes.EllipsoidalGlobe
gov.nasa.worldwind.globes.FlatGlobe
- All Implemented Interfaces:
- AVList, Extent, Globe, WWObject, PropertyChangeListener, EventListener
- Direct Known Subclasses:
- EarthFlat
public class FlatGlobe - extends EllipsoidalGlobe
Defines a Globe represented as a projection onto a plane. The projection type is modifiable.
|
Method Summary |
protected Position |
cartesianToGeodetic(Vec4 cart)
|
Cylinder |
computeBoundingCylinder(double verticalExaggeration,
Sector sector,
double minElevation,
double maxElevation)
Returns a cylinder that minimally surrounds the specified minimum and maximum elevations in the sector at a
specified vertical exaggeration. |
Vec4 |
computeNorthPointingTangentAtLocation(Angle latitude,
Angle longitude)
|
Vec4 |
computeSurfaceNormalAtLocation(Angle latitude,
Angle longitude)
Returns the normal to the Globe at the specified position. |
Vec4 |
computeSurfaceNormalAtPoint(Vec4 point)
Returns the normal to the Globe at the specified cartiesian point. |
Matrix |
computeTransformToPosition(Angle latitude,
Angle longitude,
double metersElevation)
Returns the cartesian transform Matrix that maps coordinates to the local coordinate system at
(latitude, longitude, metersElevation). |
Matrix |
computeTransformToPosition(Position position)
Returns the cartesian transform Matrix that maps coordinates to the local coordinate system at
(latitude, longitude, metersElevation). |
protected Vec4 |
geodeticToCartesian(Angle latitude,
Angle longitude,
double metersElevation)
Maps a position to a flat world Cartesian coordinates. |
double |
getElevation(Angle latitude,
Angle longitude)
|
String |
getProjection()
|
double |
getRadiusAt(Angle latitude,
Angle longitude)
|
double |
getRadiusAt(LatLon latLon)
|
Object |
getStateKey(DrawContext dc)
|
protected Intersection[] |
intersect(Line line,
double equRadius,
double polarRadius)
|
boolean |
intersects(Line line)
Calculate whether or not line intersects this Extent. |
boolean |
intersects(Plane plane)
Calculate whether or not this Extent is intersected by plane. |
boolean |
isPointAboveElevation(Vec4 point,
double elevation)
Determines whether a point is above a given elevation |
void |
setProjection(String projection)
|
| Methods inherited from class gov.nasa.worldwind.globes.EllipsoidalGlobe |
computeBoundingCylinder, computeBoundsFromSectorLatitudeRange, computeBoundsFromSectorQuadrilateral, computeBoundsFromSectorVertices, computePointFromPosition, computePointFromPosition, computePositionFromPoint, getCenter, getDiameter, getEccentricitySquared, getElevationModel, getElevations, getEquatorialRadius, getExtent, getIntersectionPosition, getMaxElevation, getMaximumRadius, getMinAndMaxElevations, getMinElevation, getPolarRadius, getRadius, getTessellator, intersect, intersect, intersect, intersects, setElevationModel, setTessellator, tessellate |
| 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, toString, 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 |
PROJECTION_LAT_LON
public static final String PROJECTION_LAT_LON
- See Also:
- Constant Field Values
PROJECTION_MERCATOR
public static final String PROJECTION_MERCATOR
- See Also:
- Constant Field Values
PROJECTION_MODIFIED_SINUSOIDAL
public static final String PROJECTION_MODIFIED_SINUSOIDAL
- See Also:
- Constant Field Values
PROJECTION_SINUSOIDAL
public static final String PROJECTION_SINUSOIDAL
- See Also:
- Constant Field Values
FlatGlobe
public FlatGlobe(double equatorialRadius,
double polarRadius,
double es,
ElevationModel em)
cartesianToGeodetic
protected Position cartesianToGeodetic(Vec4 cart)
- Overrides:
cartesianToGeodetic in class EllipsoidalGlobe
computeBoundingCylinder
public Cylinder computeBoundingCylinder(double verticalExaggeration,
Sector sector,
double minElevation,
double maxElevation)
- Returns a cylinder that minimally surrounds the specified minimum and maximum elevations in the sector at a
specified vertical exaggeration.
- Specified by:
computeBoundingCylinder in interface Globe- Overrides:
computeBoundingCylinder in class EllipsoidalGlobe
- Parameters:
verticalExaggeration - the vertical exaggeration to apply to the minimum and maximum elevations when
computing the cylinder.sector - the sector to return the bounding cylinder for.minElevation - the minimum elevation of the bounding cylinder.maxElevation - the maximum elevation of the bounding cylinder.
- Returns:
- The minimal bounding cylinder in Cartesian coordinates.
- Throws:
IllegalArgumentException - if sector is null
computeNorthPointingTangentAtLocation
public Vec4 computeNorthPointingTangentAtLocation(Angle latitude,
Angle longitude)
- Specified by:
computeNorthPointingTangentAtLocation in interface Globe- Overrides:
computeNorthPointingTangentAtLocation in class EllipsoidalGlobe
computeSurfaceNormalAtLocation
public Vec4 computeSurfaceNormalAtLocation(Angle latitude,
Angle longitude)
- Description copied from class:
EllipsoidalGlobe
- Returns the normal to the Globe at the specified position.
- Specified by:
computeSurfaceNormalAtLocation in interface Globe- Overrides:
computeSurfaceNormalAtLocation in class EllipsoidalGlobe
- Parameters:
latitude - the latitude of the position.longitude - the longitude of the position.
- Returns:
- the Globe normal at the specified position.
computeSurfaceNormalAtPoint
public Vec4 computeSurfaceNormalAtPoint(Vec4 point)
- Description copied from class:
EllipsoidalGlobe
- Returns the normal to the Globe at the specified cartiesian point.
- Specified by:
computeSurfaceNormalAtPoint in interface Globe- Overrides:
computeSurfaceNormalAtPoint in class EllipsoidalGlobe
- Parameters:
point - the cartesian point.
- Returns:
- the Globe normal at the specified point.
computeTransformToPosition
public Matrix computeTransformToPosition(Angle latitude,
Angle longitude,
double metersElevation)
- Description copied from class:
EllipsoidalGlobe
- Returns the cartesian transform Matrix that maps coordinates to the local coordinate system at
(latitude, longitude, metersElevation). They X axis will mapped to the vector tangent to the globe and pointing
East. The Y axis will mapped to the vector tangent to the Globe and pointing to the North Pole. The Z axis will
be mapped to the Globe normal at (latitude, longitude, metersElevation). The origin will be mapped to the
cartesian position of (latitude, longitude, metersElevation).
- Specified by:
computeTransformToPosition in interface Globe- Overrides:
computeTransformToPosition in class EllipsoidalGlobe
- 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 coordinates to the local coordinates at the specified position.
computeTransformToPosition
public Matrix computeTransformToPosition(Position position)
- Description copied from class:
EllipsoidalGlobe
- Returns the cartesian transform Matrix that maps coordinates to the local coordinate system at
(latitude, longitude, metersElevation). They X axis will mapped to the vector tangent to the globe and pointing
East. The Y axis will mapped to the vector tangent to the Globe and pointing to the North Pole. The Z axis will
be mapped to the Globe normal at (latitude, longitude, metersElevation). The origin will be mapped to the
cartesian position of (latitude, longitude, metersElevation).
- Specified by:
computeTransformToPosition in interface Globe- Overrides:
computeTransformToPosition in class EllipsoidalGlobe
- Parameters:
position - the latitude, longitude, and number of meters above or below mean sea level.
- Returns:
- the cartesian transform Matrix that maps coordinates to the local coordinates at the specified position.
geodeticToCartesian
protected Vec4 geodeticToCartesian(Angle latitude,
Angle longitude,
double metersElevation)
- Maps a position to a flat world Cartesian coordinates. The world plane is located at the origin and has UNIT-Z as
normal. The Y axis points to the north pole. The Z axis points up. The X axis completes a right-handed coordinate
system, and points east. Latitude and longitude zero are at the origine on y and x respectively. Sea level is at
z = zero.
- Overrides:
geodeticToCartesian in class EllipsoidalGlobe
- 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 point corresponding to the input position.
getElevation
public double getElevation(Angle latitude,
Angle longitude)
- Specified by:
getElevation in interface Globe- Overrides:
getElevation in class EllipsoidalGlobe
getProjection
public String getProjection()
getRadiusAt
public double getRadiusAt(Angle latitude,
Angle longitude)
- Specified by:
getRadiusAt in interface Globe- Overrides:
getRadiusAt in class EllipsoidalGlobe
getRadiusAt
public double getRadiusAt(LatLon latLon)
- Specified by:
getRadiusAt in interface Globe- Overrides:
getRadiusAt in class EllipsoidalGlobe
getStateKey
public Object getStateKey(DrawContext dc)
- Specified by:
getStateKey in interface Globe- Overrides:
getStateKey in class EllipsoidalGlobe
intersect
protected Intersection[] intersect(Line line,
double equRadius,
double polarRadius)
- Overrides:
intersect in class EllipsoidalGlobe
intersects
public boolean intersects(Line line)
- Description copied from interface:
Extent
- Calculate whether or not
line intersects this Extent. This method may be faster than
checking the size of the arary returned by intersect(Line). Implementing methods must ensure that
this method returns true if and only if intersect(Line) returns a non-null array containing at least
one element.
- Specified by:
intersects in interface Extent- Overrides:
intersects in class EllipsoidalGlobe
- Parameters:
line - the Line with which to test for intersection
- Returns:
- true if an intersection is found, false otherwise
intersects
public boolean intersects(Plane plane)
- Description copied from interface:
Extent
- Calculate whether or not this
Extent is intersected by plane.
- Specified by:
intersects in interface Extent- Overrides:
intersects in class EllipsoidalGlobe
- Parameters:
plane - the Plane with which to test for intersection
- Returns:
- true if
plane is found to intersect this Extent
isPointAboveElevation
public boolean isPointAboveElevation(Vec4 point,
double elevation)
- Determines whether a point is above a given elevation
- Specified by:
isPointAboveElevation in interface Globe- Overrides:
isPointAboveElevation in class EllipsoidalGlobe
- Parameters:
point - the Vec4 point to test.elevation - the elevation to test for.
- Returns:
- true if the given point is above the given elevation.
setProjection
public void setProjection(String projection)
|
|