public abstract class EllipsoidSurfaceCurve extends Object implements IEquatable<EllipsoidSurfaceCurve>
| Modifier | Constructor and Description | 
|---|---|
protected  | 
EllipsoidSurfaceCurve()
Initializes a new instance. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
abstract CartographicExtent | 
computeCartographicExtent()
Computes the cartographic bounding box which completely contains the surface curve. 
 | 
protected int | 
computeHashCode()
Computes the hash code for this curve. 
 | 
EllipsoidSurfaceCurveIntersectionResults | 
computeIntersection(EllipsoidSurfaceCurve other)
Computes the nearest intersection (if any) between two  
EllipsoidSurfaceCurves. | 
boolean | 
equals(Object obj)
Indicates whether another object is exactly equal to this instance. 
 | 
boolean | 
equalsType(EllipsoidSurfaceCurve other)
Indicates whether the current object is equal to another object of the same type. 
 | 
Cartographic | 
findClosestPointOnCurve(Cartographic point)
Finds the closest point on the curve from the input point. 
 | 
Cartographic | 
findClosestPointOnCurve(Cartographic point,
                       double[] distance)
Finds the closest point on the curve from the input point. 
 | 
List<Cartographic> | 
getDiscretePoints(double granularity)
Get a set of points which represent the curve discretely based on a given granularity. 
 | 
abstract Ellipsoid | 
getEllipsoid()
Gets the ellipsoid reference surface on which the curve lies. 
 | 
abstract Cartographic | 
getFinalPoint()
Gets the final planetodetic point on the path. 
 | 
abstract Cartographic | 
getInitialPoint()
Gets the initial planetodetic point on the path. 
 | 
abstract double | 
getSurfaceDistance()
Gets the total distance along the curve to the location of the final point. 
 | 
int | 
hashCode()
Returns a hash code for this instance, which is suitable for use in hashing algorithms and data structures like a hash table. 
 | 
abstract Cartographic | 
interpolateUsingFraction(double fraction)
Provides the location of a point at the indicated portion along the curve. 
 | 
abstract Cartographic | 
interpolateUsingSurfaceDistance(double surfaceDistance)
Provides the location of a point at the indicated distance along the curve. 
 | 
protected EllipsoidSurfaceCurve()
public abstract Ellipsoid getEllipsoid()
@Nonnull public abstract Cartographic getInitialPoint()
@Nonnull public abstract Cartographic getFinalPoint()
public abstract double getSurfaceDistance()
@Nonnull public abstract Cartographic interpolateUsingFraction(double fraction)
fraction - The portion of the distance between the initial and final points.@Nonnull public abstract Cartographic interpolateUsingSurfaceDistance(double surfaceDistance)
surfaceDistance - The distance from the initial point to the point of interest along the rhumb line.@Nonnull public abstract CartographicExtent computeCartographicExtent()
@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.
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.@Nonnull public Cartographic findClosestPointOnCurve(@Nonnull Cartographic point)
point - The input point. The point will be on the ellipsoid surface at this location.IllegalStateException - Thrown if this curve has any sub curves that are not geodesic, complex, or rhumb.@Nonnull public EllipsoidSurfaceCurveIntersectionResults computeIntersection(@Nullable EllipsoidSurfaceCurve other)
EllipsoidSurfaceCurves.
 Intersection algorithm convergence tolerance is 1 nm.
other - The other curve with which to compute intersection.IllegalStateException - Thrown if either this curve or the input curve has any sub curves that are not EllipsoidGeodesic,
    EllipsoidComplexSurfaceCurve, or EllipsoidRhumbLine.ArgumentException - Thrown if the Ellipsoid (get) properties of both curves do not match.@Nonnull public List<Cartographic> getDiscretePoints(double granularity)
If overriding this method, the set of points should accurately represent the curve using
    linear segments between points, using the given granularity as a measure of the
    maximum angular distance between points measured from the center of the Ellipsoid (get).
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.public int hashCode()
hashCode in class ObjectObject.equals(java.lang.Object), 
System.identityHashCode(java.lang.Object)protected int computeHashCode()
public boolean equals(Object obj)
equals in class Objectobj - The object to compare to this instance.true if obj is an instance of this type and represents the same value as this instance; otherwise false.Object.hashCode(), 
HashMappublic boolean equalsType(EllipsoidSurfaceCurve other)
IEquatableequalsType in interface IEquatable<EllipsoidSurfaceCurve>other - An object to compare with this object.