|
NASA World Wind | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectgov.nasa.worldwind.geom.Sector
public class Sector
Sector
represents a rectangular reqion of latitude and longitude. The region is defined by four angles:
its minimum and maximum latitude, its minimum and maximum longitude. The angles are assumed to be normalized to +/-
90 degrees latitude and +/- 180 degrees longitude. The minimums and maximums are relative to these ranges, e.g., -80
is less than 20. Behavior of the class is undefined for angles outside these ranges. Normalization is not performed
on the angles by this class, nor is it verifed by the class' methods. See Angle
for a description of
specifying angles.
Sector
instances are immutable.
Angle
Field Summary | |
---|---|
static Sector |
EMPTY_SECTOR
|
static Sector |
FULL_SPHERE
A Sector of latitude [-90 degrees, + 90 degrees] and longitude [-180 degrees, + 180 degrees]. |
Constructor Summary | |
---|---|
Sector(Angle minLatitude,
Angle maxLatitude,
Angle minLongitude,
Angle maxLongitude)
Creates a new Sector and initializes it to the specified angles. |
|
Sector(Sector sector)
|
Method Summary | |
---|---|
List<LatLon> |
asList()
|
static Sector |
boundingSector(Globe globe,
LatLon center,
double radius)
Returns a new Sector encompassing a circle centered at a given position,
with a given radius in meter. |
static Sector |
boundingSector(Iterable<? extends LatLon> locations)
|
static Sector |
boundingSector(Iterator<TrackPoint> positions)
|
static Sector |
boundingSector(LatLon pA,
LatLon pB)
|
int |
compareTo(Sector that)
Compares this sector to a specified sector according to their minimum latitude, minimum longitude, maximum latitude, and maximum longitude, respectively. |
static Extent |
computeBoundingSphere(Globe globe,
double verticalExaggeration,
Sector sector)
Returns a sphere that minimally surrounds the sector at a specified vertical exaggeration. |
Vec4 |
computeCenterPoint(Globe globe,
double exaggeration)
Computes the Cartesian coordinates of a Sector's center. |
Vec4[] |
computeCornerPoints(Globe globe,
double exaggeration)
Computes the Cartesian coordinates of a Sector's corners. |
boolean |
contains(Angle latitude,
Angle longitude)
|
boolean |
contains(LatLon latLon)
Determines whether a latitude/longitude position is within the sector. |
boolean |
contains(Sector that)
Determines whether another sectror is fully contained within this one. |
boolean |
containsDegrees(double degreesLatitude,
double degreesLongitude)
|
boolean |
containsRadians(double radiansLatitude,
double radiansLongitude)
Determines whether a latitude/longitude postion expressed in radians is within the sector. |
boolean |
equals(Object o)
Tests the equality of the sectors' angles. |
static Sector |
fromDegrees(double minLatitude,
double maxLatitude,
double minLongitude,
double maxLongitude)
Creates a new Sector and initializes it to the specified angles. |
static Sector |
fromRadians(double minLatitude,
double maxLatitude,
double minLongitude,
double maxLongitude)
Creates a new Sector and initializes it to the specified angles. |
LatLon |
getCentroid()
Returns the latitude and longitude of the sector's angular center: (minimum latitude + maximum latitude) / 2, (minimum longitude + maximum longitude) / 2. |
Angle |
getDeltaLat()
Returns the angular difference between the sector's minimum and maximum latitudes: max - min |
double |
getDeltaLatDegrees()
|
double |
getDeltaLatRadians()
|
Angle |
getDeltaLon()
Returns the angular difference between the sector's minimum and maximum longitudes: max - min. |
double |
getDeltaLonDegrees()
|
double |
getDeltaLonRadians()
|
Angle |
getMaxLatitude()
Returns the sector's maximum latitude. |
Angle |
getMaxLongitude()
Returns the sector's maximum longitude. |
Angle |
getMinLatitude()
Returns the sector's minimum latitude. |
Angle |
getMinLongitude()
Returns the sector's minimum longitude. |
long |
getSizeInBytes()
Retrieve the size of this object in bytes. |
int |
hashCode()
Computes a hash code from the sector's four angles. |
Sector |
intersection(Angle latitude,
Angle longitude)
|
Sector |
intersection(Sector that)
|
boolean |
intersects(Sector that)
Determines whether this sector intersects another sector's range of latitude and longitude. |
boolean |
isSameSector(Iterable<? extends LatLon> corners)
|
static boolean |
isSector(Iterable<? extends LatLon> corners)
|
boolean |
isWithinLatLonLimits()
|
Iterator<LatLon> |
iterator()
Creates an iterator over the four corners of the sector, starting with the southwest position and continuing counter-clockwise. |
static Sector[] |
splitBoundingSectors(Globe globe,
LatLon center,
double radius)
Returns an iterable of Sectors encompassing a circle centered at a given position, with a given radius in meters. |
static Sector[] |
splitBoundingSectors(Iterable<? extends LatLon> locations)
|
Sector[] |
subdivide()
|
Sector[] |
subdivide(int div)
|
String |
toString()
Returns a string indicating the sector's angles. |
Sector |
union(Angle latitude,
Angle longitude)
|
static Sector |
union(Iterable<? extends Sector> sectors)
|
Sector |
union(Sector that)
Returns a new sector whose angles are the extremes of the this sector and another. |
static Sector |
union(Sector sectorA,
Sector sectorB)
|
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final Sector EMPTY_SECTOR
public static final Sector FULL_SPHERE
Sector
of latitude [-90 degrees, + 90 degrees] and longitude [-180 degrees, + 180 degrees].
Constructor Detail |
---|
public Sector(Angle minLatitude, Angle maxLatitude, Angle minLongitude, Angle maxLongitude)
Sector
and initializes it to the specified angles. The angles are assumed to be
normalized to +/- 90 degrees latitude and +/- 180 degrees longitude, but this method does not verify that.
minLatitude
- the sector's minimum latitude.maxLatitude
- the sector's maximum latitude.minLongitude
- the sector's minimum longitude.maxLongitude
- the sector's maximum longitude.
IllegalArgumentException
- if any of the angles are nullpublic Sector(Sector sector)
Method Detail |
---|
public List<LatLon> asList()
public static Sector boundingSector(Globe globe, LatLon center, double radius)
Sector
encompassing a circle centered at a given position,
with a given radius in meter.
globe
- a Globe instance.center
- the circle center position.radius
- the circle radius in meter.
public static Sector boundingSector(Iterable<? extends LatLon> locations)
public static Sector boundingSector(Iterator<TrackPoint> positions)
public static Sector boundingSector(LatLon pA, LatLon pB)
public int compareTo(Sector that)
compareTo
in interface Comparable<Sector>
that
- the Sector
to compareTo with this
.
IllegalArgumentException
- if that
is nullpublic static Extent computeBoundingSphere(Globe globe, double verticalExaggeration, Sector sector)
globe
- the globe the sector is associated withverticalExaggeration
- the vertical exaggeration to apply to the globe's elevations when computing the
sphere.sector
- the sector to return the bounding sphere for.
IllegalArgumentException
- if globe
or sector
is nullpublic Vec4 computeCenterPoint(Globe globe, double exaggeration)
globe
- The globe associated with the sector.exaggeration
- The vertical exaggeration to apply.
IllegalArgumentException
- if globe
is null.public Vec4[] computeCornerPoints(Globe globe, double exaggeration)
globe
- The globe associated with the sector.exaggeration
- The vertical exaggeration to apply.
IllegalArgumentException
- if globe
is null.public final boolean contains(Angle latitude, Angle longitude)
public final boolean contains(LatLon latLon)
latLon
- the position to test, with angles normalized to +/- π latitude and +/- 2π longitude.
true
if the position is within the sector, false
otherwise.
IllegalArgumentException
- if latlon
is null.public boolean contains(Sector that)
that
- the sector to test for containment.
true
if this sector fully contains the input sector, otherwise false
.public boolean containsDegrees(double degreesLatitude, double degreesLongitude)
public boolean containsRadians(double radiansLatitude, double radiansLongitude)
radiansLatitude
- the latitude in radians of the position to test, normalized +/- π.radiansLongitude
- the longitude in radians of the position to test, normalized +/- 2π.
true
if the position is within the sector, false
otherwise.public boolean equals(Object o)
equals
in class Object
o
- the sector to compareTo with this
.
true
if the four corresponding angles of each sector are equal, false
otherwise.public static Sector fromDegrees(double minLatitude, double maxLatitude, double minLongitude, double maxLongitude)
Sector
and initializes it to the specified angles. The angles are assumed to be
normalized to +/- 90 degrees latitude and +/- 180 degrees longitude, but this method does not verify that.
minLatitude
- the sector's minimum latitude in degrees.maxLatitude
- the sector's maximum latitude in degrees.minLongitude
- the sector's minimum longitude in degrees.maxLongitude
- the sector's maximum longitude in degrees.
Sector
public static Sector fromRadians(double minLatitude, double maxLatitude, double minLongitude, double maxLongitude)
Sector
and initializes it to the specified angles. The angles are assumed to be
normalized to +/- ?/2 radians latitude and +/- ? radians longitude, but this method does not verify
that.
minLatitude
- the sector's minimum latitude in radians.maxLatitude
- the sector's maximum latitude in radians.minLongitude
- the sector's minimum longitude in radians.maxLongitude
- the sector's maximum longitude in radians.
Sector
public LatLon getCentroid()
public final Angle getDeltaLat()
public final double getDeltaLatDegrees()
public final double getDeltaLatRadians()
public final Angle getDeltaLon()
public final double getDeltaLonDegrees()
public final double getDeltaLonRadians()
public final Angle getMaxLatitude()
public final Angle getMaxLongitude()
public final Angle getMinLatitude()
public final Angle getMinLongitude()
public long getSizeInBytes()
getSizeInBytes
in interface Cacheable
public int hashCode()
hashCode
in class Object
public final Sector intersection(Angle latitude, Angle longitude)
public final Sector intersection(Sector that)
public boolean intersects(Sector that)
that
- the sector to test for intersection.
true
if the sectors intersect, otherwise false
.public boolean isSameSector(Iterable<? extends LatLon> corners)
public static boolean isSector(Iterable<? extends LatLon> corners)
public boolean isWithinLatLonLimits()
public Iterator<LatLon> iterator()
iterator
in interface Iterable<LatLon>
public static Sector[] splitBoundingSectors(Globe globe, LatLon center, double radius)
globe
- a Globe instance.center
- the circle center location.radius
- the circle radius in meters.
public static Sector[] splitBoundingSectors(Iterable<? extends LatLon> locations)
public Sector[] subdivide()
public Sector[] subdivide(int div)
public String toString()
toString
in class Object
public final Sector union(Angle latitude, Angle longitude)
public static Sector union(Iterable<? extends Sector> sectors)
public final Sector union(Sector that)
that
- the sector to join with this
.
this
if the incoming sector is
null
.public static Sector union(Sector sectorA, Sector sectorB)
|
NASA World Wind | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |