Modifier and Type  Method and Description 

double 
checkPointInsideRegion(Cartographic point)
Checks to see if the given planetodetic point lies inside the boundary and returns a heuristic measure
of how close the point is to the boundary.

CartographicExtent 
computeCartographicExtent()
Computes the cartographic bounding box which completely contains the surface region.

static EllipsoidSurfaceRegion 
createRegionUsingDiscreteCurves(Ellipsoid shape,
double granularity,
EllipsoidSurfaceCurve curve)
Create a region using a set of surface curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections.

static EllipsoidSurfaceRegion 
createRegionUsingDiscreteCurves(Ellipsoid shape,
double granularity,
EllipsoidSurfaceCurve curve,
Cartographic referencePoint,
boolean referencePointInsideRegion)
Create a region using a set of surface curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections.

static EllipsoidSurfaceRegion 
createRegionUsingDiscreteCurves(Ellipsoid shape,
EllipsoidSurfaceCurve curve)
Create a region using a set of
EllipsoidGeodesic curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections. 
static EllipsoidSurfaceRegion 
createRegionUsingDiscreteGeodesics(Ellipsoid shape,
double granularity,
Iterable<Cartographic> nodes)
Create a region using a set of
EllipsoidGeodesic curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections. 
static EllipsoidSurfaceRegion 
createRegionUsingDiscreteGeodesics(Ellipsoid shape,
double granularity,
Iterable<Cartographic> nodes,
Cartographic referencePoint,
boolean referencePointInsideRegion)
Create a region using a set of
EllipsoidGeodesic curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections. 
static EllipsoidSurfaceRegion 
createRegionUsingDiscreteGeodesics(Ellipsoid shape,
Iterable<Cartographic> nodes)
Create a region using a set of
EllipsoidGeodesic curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections. 
static EllipsoidSurfaceRegion 
createRegionUsingDiscreteRhumbLines(Ellipsoid shape,
double granularity,
Iterable<Cartographic> nodes)
Create a region using a set of
EllipsoidRhumbLine curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections. 
static EllipsoidSurfaceRegion 
createRegionUsingDiscreteRhumbLines(Ellipsoid shape,
double granularity,
Iterable<Cartographic> nodes,
Cartographic referencePoint,
boolean referencePointInsideRegion)
Create a region using a set of
EllipsoidRhumbLine curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections. 
static EllipsoidSurfaceRegion 
createRegionUsingDiscreteRhumbLines(Ellipsoid shape,
Iterable<Cartographic> nodes)
Create a region using a set of
EllipsoidRhumbLine curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections. 
static EllipsoidSurfaceRegion 
createRegionUsingExtent(Ellipsoid shape,
CartographicExtent extent)
Create a region using a
CartographicExtent to define vertices for four EllipsoidRhumbLine curves
forming the boundary of the region inside the extent. 
static EllipsoidSurfaceRegion 
createRegionUsingExtent(Ellipsoid shape,
double granularity,
CartographicExtent extent)
Create a region using a
CartographicExtent to define vertices for four EllipsoidRhumbLine curves
forming the boundary of the region inside the extent. 
EllipsoidSurfaceCurve 
getBoundaryCurve()
Gets the closed curve defining the boundary of the surface region.

Cartographic 
getCentroid()
Gets the point which represents a single planetodetic location for the overall area of the region.

Ellipsoid 
getReferenceSurface()
Gets the reference surface on which the region is represented by a closed boundary curve.

boolean 
isPointInsideRegion(Cartographic point)
Determines whether the given planetodetic point lies inside the region.

@Nonnull public static EllipsoidSurfaceRegion createRegionUsingDiscreteGeodesics(@Nonnull Ellipsoid shape, double granularity, @Nonnull Iterable<Cartographic> nodes)
EllipsoidGeodesic
curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections.shape
 The reference surface.granularity
 The maximum angular distance to use when discretizing the boundary.
See EllipsoidSurfaceCurve.getDiscretePoints(double)
nodes
 The planetodetic nodes defining the corners of the surface region.ArgumentOutOfRangeException
 Thrown if the number of nodes is less than 2.@Nonnull public static EllipsoidSurfaceRegion createRegionUsingDiscreteGeodesics(Ellipsoid shape, double granularity, @Nonnull Iterable<Cartographic> nodes, @Nonnull Cartographic referencePoint, boolean referencePointInsideRegion)
EllipsoidGeodesic
curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections.shape
 The reference surface.granularity
 The maximum angular distance to use when discretizing the boundary.
See EllipsoidSurfaceCurve.getDiscretePoints(double)
nodes
 The planetodetic nodes defining the corners of the surface region.referencePoint
 A reference point to manually specify as inside or outside the region, to allow for cases like regions
larger than half the globe since the default behavior always selects the smaller portion of the ellipsoid as the region.referencePointInsideRegion
 The specification for whether the referencePoint
is inside
or outside the region.ArgumentOutOfRangeException
 Thrown if the number of nodes is less than 2.@Nonnull public static EllipsoidSurfaceRegion createRegionUsingDiscreteGeodesics(@Nonnull Ellipsoid shape, @Nonnull Iterable<Cartographic> nodes)
EllipsoidGeodesic
curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections.
This method uses a default granularity of 0.5 degrees when representing the boundary.
shape
 The reference surface.nodes
 The nodes defining the corners of the surface region.ArgumentOutOfRangeException
 Thrown if the number of nodes is less than 2.@Nonnull public static EllipsoidSurfaceRegion createRegionUsingDiscreteRhumbLines(@Nonnull Ellipsoid shape, double granularity, @Nonnull Iterable<Cartographic> nodes)
EllipsoidRhumbLine
curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections.shape
 The reference surface.granularity
 The maximum angular distance to use when discretizing the boundary.
See EllipsoidSurfaceCurve.getDiscretePoints(double)
nodes
 The nodes defining the corners of the surface region.ArgumentOutOfRangeException
 Thrown if the number of nodes is less than 2.@Nonnull public static EllipsoidSurfaceRegion createRegionUsingDiscreteRhumbLines(@Nonnull Ellipsoid shape, double granularity, @Nonnull Iterable<Cartographic> nodes, @Nonnull Cartographic referencePoint, boolean referencePointInsideRegion)
EllipsoidRhumbLine
curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections.shape
 The reference surface.granularity
 The maximum angular distance to use when discretizing the boundary.
See EllipsoidSurfaceCurve.getDiscretePoints(double)
nodes
 The nodes defining the corners of the surface region.referencePoint
 A reference point to manually specify as inside or outside the region, to allow for cases like regions
larger than half the globe since the default behavior always selects the smaller portion of the ellipsoid as the region.referencePointInsideRegion
 The specification for whether the referencePoint
is inside
or outside the region.ArgumentOutOfRangeException
 Thrown if the number of nodes is less than 2.@Nonnull public static EllipsoidSurfaceRegion createRegionUsingDiscreteRhumbLines(@Nonnull Ellipsoid shape, @Nonnull Iterable<Cartographic> nodes)
EllipsoidRhumbLine
curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections.
This method uses a default granularity of 0.5 degrees when representing the boundary.
shape
 The reference surface.nodes
 The planetodetic nodes defining the corners of the surface region.ArgumentOutOfRangeException
 Thrown if the number of nodes is less than 2.@Nonnull public static EllipsoidSurfaceRegion createRegionUsingDiscreteCurves(@Nonnull Ellipsoid shape, double granularity, @Nonnull EllipsoidSurfaceCurve curve)
The centroid of the area target will be computed based on the discretization of the curve
. If the
granularity
is too high, the representation of the boundary for use with
EllipsoidSurfaceRegion.isPointInsideRegion(Cartographic)
will be imprecise. If the user has a list of edges forming the region, use
a EllipsoidComplexSurfaceCurve
to combine them into one boundary.
shape
 The reference surface.granularity
 The maximum angular distance between the discrete points with respect to the center of
the Ellipsoid
(get
). A small granularity will yield a more precise representation
of the boundary.curve
 A closed curve representing the boundary of the surface region.IllegalStateException
 Thrown if the initial and final points of the boundary curve
are not equal.ArgumentNullException
 Thrown if either shape
or curve
is null
.@Nonnull public static EllipsoidSurfaceRegion createRegionUsingDiscreteCurves(@Nonnull Ellipsoid shape, double granularity, @Nonnull EllipsoidSurfaceCurve curve, @Nonnull Cartographic referencePoint, boolean referencePointInsideRegion)
The centroid of the area target will be computed based on the discretization of the curve
. If the
granularity
is too high, the representation of the boundary for use with
EllipsoidSurfaceRegion.isPointInsideRegion(Cartographic)
will be imprecise. If the user has a list of edges forming the region, use
a EllipsoidComplexSurfaceCurve
to combine them into one boundary.
shape
 The reference surface.granularity
 The maximum angular distance between the discrete points with respect to the center of
the Ellipsoid
(get
). A small granularity will yield a more precise representation
of the boundary.curve
 A closed curve representing the boundary of the surface region.referencePoint
 A reference point to manually specify as inside or outside the region, to allow for cases like regions
larger than half the globe since the default behavior always selects the smaller portion of the ellipsoid as the region.referencePointInsideRegion
 The specification for whether the referencePoint
is inside
or outside the region.IllegalStateException
 Thrown if the initial and final points of the boundary curve
are not equal.@Nonnull public static EllipsoidSurfaceRegion createRegionUsingDiscreteCurves(@Nonnull Ellipsoid shape, @Nonnull EllipsoidSurfaceCurve curve)
EllipsoidGeodesic
curves to connect the nodes and
project the points onto a plane tangent to the centroid when computing intersections.
The centroid of the area target will be computed based on the discretization of the curve
. The
default granularity is 0.5 degrees. Depending on the precision required to determine which points near the boundary are inside,
this value may be too large. If this is the case, use the overload which takes a granularity explicitly.
If the user has a list of edges forming the region, use
a EllipsoidComplexSurfaceCurve
to combine them into one boundary.
shape
 The reference surface.curve
 A closed curve representing the boundary of the surface region.IllegalStateException
 Thrown if the initial and final points of the boundary curve
are not equal.@Nonnull public static EllipsoidSurfaceRegion createRegionUsingExtent(@Nonnull Ellipsoid shape, double granularity, @Nonnull CartographicExtent extent)
CartographicExtent
to define vertices for four EllipsoidRhumbLine
curves
forming the boundary of the region inside the extent.shape
 The underlying shape defining the geodetic coordinates of the extent.granularity
 The maximum angular distance between the discrete points with respect to the center of
the Ellipsoid
(get
). A small granularity will yield a more precise representation
of the boundary.extent
 The extent forming the boundary of the region.ArgumentNullException
 Thrown if either shape
or extent
are null
.@Nonnull public static EllipsoidSurfaceRegion createRegionUsingExtent(@Nonnull Ellipsoid shape, @Nonnull CartographicExtent extent)
CartographicExtent
to define vertices for four EllipsoidRhumbLine
curves
forming the boundary of the region inside the extent.shape
 The underlying shape defining the geodetic coordinates of the extent.extent
 The extent forming the boundary of the region.@Nonnull public Cartographic getCentroid()
@Nonnull public final Ellipsoid getReferenceSurface()
@Nonnull public final EllipsoidSurfaceCurve getBoundaryCurve()
public final boolean isPointInsideRegion(@Nonnull Cartographic point)
Height above the surface is ignored.
point
 The planetodetic point to test.public final double checkPointInsideRegion(@Nonnull Cartographic point)
point
 The planetodetic point to check.Centroid
(get
). This can be used as a heuristic measure of how close the point is to the boundary.@Nonnull public final CartographicExtent computeCartographicExtent()