public class EllipsoidComplexSurfaceCurve extends EllipsoidSurfaceCurve
Modifier and Type | Method and Description |
---|---|
CartographicExtent |
computeCartographicExtent()
Computes the cartographic bounding box which completely contains all the constituent curves.
|
protected int |
computeHashCode()
Computes the hash code for this curve.
|
static EllipsoidComplexSurfaceCurve |
createCurve(EllipsoidSurfaceCurve... curves)
Constructs a complex curve based on a given set of constituent curves.
|
static EllipsoidComplexSurfaceCurve |
createCurve(List<EllipsoidSurfaceCurve> curves)
Constructs a complex curve based on a given set of constituent curves.
|
static EllipsoidComplexSurfaceCurve |
createGeodesic(Ellipsoid shape,
Iterable<Cartographic> nodes)
Creates a complex curve made up of
EllipsoidGeodesics which connect the given set of
nodes on the surface of the ellipsoid shape . |
static EllipsoidComplexSurfaceCurve |
createRhumbLine(Ellipsoid shape,
Iterable<Cartographic> nodes)
Creates a complex curve made up of
EllipsoidRhumbLines which connect the given set of
nodes on the surface of the ellipsoid shape . |
boolean |
equalsType(EllipsoidSurfaceCurve other)
Indicates whether the current object is equal to another object of the same type.
|
Cartographic |
findClosestPointOnCurve(Cartographic point,
double[] distance)
Finds the closest point on the curve from the input point.
|
List<EllipsoidSurfaceCurve> |
getCurves()
Gets a read only list of the constituent curves which comprise the overall curve.
|
List<Cartographic> |
getDiscretePoints(double granularity)
Get a set of points which discretely represent the overall curve.
|
Ellipsoid |
getEllipsoid()
Gets the ellipsoid reference surface on which the curve lies.
|
Cartographic |
getFinalPoint()
Gets the final planetodetic point on the path.
|
Cartographic |
getInitialPoint()
Gets the initial planetodetic point on the path.
|
double |
getSurfaceDistance()
Gets the total distance along the curve to the location of the final point.
|
Cartographic |
interpolateUsingFraction(double fraction)
Provides the location of a point at the indicated portion along the curve.
|
Cartographic |
interpolateUsingSurfaceDistance(double surfaceDistance)
Provides the location of a point at the indicated distance along the curve.
|
computeIntersection, equals, findClosestPointOnCurve, hashCode
@Nonnull public static EllipsoidComplexSurfaceCurve createCurve(@Nonnull EllipsoidSurfaceCurve... curves)
curves
- The set of constituent curves.@Nonnull public static EllipsoidComplexSurfaceCurve createCurve(@Nonnull List<EllipsoidSurfaceCurve> curves)
curves
- The set of constituent curves.@Nonnull public static EllipsoidComplexSurfaceCurve createGeodesic(@Nonnull Ellipsoid shape, @Nonnull Iterable<Cartographic> nodes)
EllipsoidGeodesics
which connect the given set of
nodes
on the surface of the ellipsoid shape
.shape
- The ellipsoid reference surface.nodes
- The set of points forming the nodes of the complex curve.ArgumentOutOfRangeException
- Thrown if the number of nodes is less than 2.@Nonnull public static EllipsoidComplexSurfaceCurve createRhumbLine(@Nonnull Ellipsoid shape, @Nonnull Iterable<Cartographic> nodes)
EllipsoidRhumbLines
which connect the given set of
nodes
on the surface of the ellipsoid shape
.shape
- The ellipsoid reference surface.nodes
- The set of points forming the nodes of the complex curve.ArgumentOutOfRangeException
- Thrown if the number of nodes is less than 2.@Nonnull public Cartographic getInitialPoint()
getInitialPoint
in class EllipsoidSurfaceCurve
@Nonnull public Cartographic getFinalPoint()
getFinalPoint
in class EllipsoidSurfaceCurve
public double getSurfaceDistance()
getSurfaceDistance
in class EllipsoidSurfaceCurve
@Nonnull public final List<EllipsoidSurfaceCurve> getCurves()
public Ellipsoid getEllipsoid()
getEllipsoid
in class EllipsoidSurfaceCurve
@Nonnull public Cartographic interpolateUsingFraction(double fraction)
interpolateUsingFraction
in class EllipsoidSurfaceCurve
fraction
- The portion of the distance between the initial and final points.@Nonnull public Cartographic interpolateUsingSurfaceDistance(double surfaceDistance)
interpolateUsingSurfaceDistance
in class EllipsoidSurfaceCurve
surfaceDistance
- The distance from the initial point to the point of interest along the rhumb line.public CartographicExtent computeCartographicExtent()
computeCartographicExtent
in class EllipsoidSurfaceCurve
@Nonnull public Cartographic findClosestPointOnCurve(@Nonnull Cartographic point, @Nonnull double[] distance)
The default implementation is a golden section search on the curve. The built-in types (geodesic, rhumb, and complex) have their own precise algorithms.
findClosestPointOnCurve
in class EllipsoidSurfaceCurve
point
- The input point. The point will be on the ellipsoid surface at this location.distance
- The surface distance between the point
and the point on the curve.public List<Cartographic> getDiscretePoints(double granularity)
getDiscretePoints
in class EllipsoidSurfaceCurve
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 curve.ArgumentOutOfRangeException
- The granularity must be positive and non-zero.protected int computeHashCode()
computeHashCode
in class EllipsoidSurfaceCurve
public boolean equalsType(EllipsoidSurfaceCurve other)
IEquatable
equalsType
in interface IEquatable<EllipsoidSurfaceCurve>
equalsType
in class EllipsoidSurfaceCurve
other
- An object to compare with this object.