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.