public class Waypoint extends Object implements IEquatable<Waypoint>
The following example shows how to use the WaypointPropagator to move between waypoints at a constant velocity:
EarthCentralBody earth = CentralBodiesFacet.getFromContext().getEarth();
final double constantVelocity = 80.0;
JulianDate startDate = new JulianDate(new GregorianDate(2007, 12, 6, 12, 0, 0.0));
// Create the start point of our route with a particular date, location, and velocity.
Cartographic point1 = new Cartographic(Trig.degreesToRadians(-77.28), Trig.degreesToRadians(39.94), 3000.0);
Waypoint waypoint1 = new Waypoint(startDate, point1, constantVelocity, 0.0);
// Create the next two waypoints from a location, the same velocity, and the previous waypoint.
Cartographic point2 = new Cartographic(Trig.degreesToRadians(-79.59), Trig.degreesToRadians(38.81), 3000.0);
Waypoint waypoint2 = new Waypoint(waypoint1, earth.getShape(), point2, constantVelocity);
Cartographic point3 = new Cartographic(Trig.degreesToRadians(-81.44), Trig.degreesToRadians(39.69), 3000.0);
Waypoint waypoint3 = new Waypoint(waypoint2, earth.getShape(), point3, constantVelocity);
// Construct the waypoint propagator with all of the waypoints
ArrayList<Waypoint> waypoints = new ArrayList<>();
waypoints.add(waypoint1);
waypoints.add(waypoint2);
waypoints.add(waypoint3);
WaypointPropagator propagator = new WaypointPropagator(earth, waypoints);
// The propagator can then be used to create a Point that represents the position and velocity of the
// vehicle moving between the waypoints.
Point propagatedPoint = propagator.createPoint();
// Or an entire set of ephemeris can be computed at a specified time step.
DateMotionCollection1<Cartesian> ephemeris = propagator.propagate(waypoint1.getDate(), waypoint3.getDate(), Duration.fromSeconds(60.0), 1,
propagator.getReferenceFrame());| Constructor and Description |
|---|
Waypoint(JulianDate date,
Cartographic location,
double groundSpeed,
double rateOfClimb)
Initializes a new instance.
|
Waypoint(Waypoint previousWaypoint,
Ellipsoid shape,
Cartographic location,
double groundSpeed)
Initializes a new instance.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object obj)
Indicates whether another object is exactly equal to this instance.
|
static boolean |
equals(Waypoint left,
Waypoint right)
Returns
true if the two instances are exactly equal. |
boolean |
equalsType(Waypoint other)
Indicates whether another instance of this type is equal to this instance.
|
JulianDate |
getDate()
Gets the date at which the waypoint is achieved.
|
double |
getGroundSpeed()
Gets the speed tangent to the ellipsoid surface.
|
Cartographic |
getLocation()
Gets the planetodetic position at the waypoint.
|
double |
getRateOfClimb()
Gets the velocity normal to the ellipsoid surface.
|
int |
hashCode()
Returns a hash code for this instance, which is suitable for use in hashing algorithms and data structures like a hash table.
|
static boolean |
notEquals(Waypoint left,
Waypoint right)
Returns
true if the two instances are not exactly equal. |
public Waypoint(@Nonnull JulianDate date, @Nonnull Cartographic location, double groundSpeed, double rateOfClimb)
date - The date at which the waypoint is achieved.location - The planetodetic position at the waypoint.groundSpeed - The speed tangent to the ellipsoid surface.rateOfClimb - The velocity normal to the ellipsoid surface.public Waypoint(Waypoint previousWaypoint, Ellipsoid shape, @Nonnull Cartographic location, double groundSpeed)
If the previous waypoint is at a different altitude than this one, a RateOfClimb (get) will be
selected to achieve a constant vertical acceleration.
previousWaypoint - The previous waypoint in the route.shape - The shape model on which the waypoints are specified. This will typically be
CentralBodiesFacet.GetFromContext().Earth.Shape.location - The planetodetic location of the new waypoint.groundSpeed - The speed at which to arrive at this waypoint.@Nonnull public final JulianDate getDate()
@Nonnull public final Cartographic getLocation()
public final double getGroundSpeed()
public final double getRateOfClimb()
public final boolean equalsType(Waypoint other)
equalsType in interface IEquatable<Waypoint>other - The instance to compare to this instance.true if other represents the same value as this instance; otherwise false.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 int hashCode()
hashCode in class ObjectObject.equals(java.lang.Object),
System.identityHashCode(java.lang.Object)public static boolean equals(Waypoint left, Waypoint right)
true if the two instances are exactly equal.left - The instance to compare to right.right - The instance to compare to left.true if left represents the same value as right; otherwise false.public static boolean notEquals(Waypoint left, Waypoint right)
true if the two instances are not exactly equal.left - The instance to compare to right.right - The instance to compare to left.true if left does not represent the same value as right; otherwise false.