Waypoint Class |
Namespace: AGI.Foundation.Propagators
The Waypoint type exposes the following members.
Name | Description | |
---|---|---|
Waypoint(JulianDate, Cartographic, Double, Double) |
Initializes a new instance.
| |
Waypoint(Waypoint, Ellipsoid, Cartographic, Double) |
Initializes a new instance.
|
Name | Description | |
---|---|---|
Date |
Gets the date at which the waypoint is achieved.
| |
GroundSpeed |
Gets the speed tangent to the ellipsoid surface.
| |
Location |
Gets the planetodetic position at the waypoint.
| |
RateOfClimb |
Gets the velocity normal to the ellipsoid surface.
|
Name | Description | |
---|---|---|
Equals(Object) |
Indicates whether another object is exactly equal to this instance.
(Overrides ObjectEquals(Object).) | |
Equals(Waypoint) |
Indicates whether another instance of this type is equal to this instance.
Strict equality is not enforced for waypoints at geographic poles since the longitude coordinate is undefined at these locations.
| |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode |
Returns a hash code for this instance, which is suitable for use in hashing algorithms and data structures like a hash table.
(Overrides ObjectGetHashCode.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Name | Description | |
---|---|---|
Equality |
Returns if the two instances are exactly equal.
| |
Inequality |
Returns if the two instances are not exactly equal.
|
The following example shows how to use the WaypointPropagator to move between waypoints at a constant velocity:
EarthCentralBody earth = CentralBodiesFacet.GetFromContext().Earth; const double constantVelocity = 80.0; JulianDate startDate = new JulianDate(new GregorianDate(2007, 12, 6, 12, 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.Shape, point2, constantVelocity); Cartographic point3 = new Cartographic(Trig.DegreesToRadians(-81.44), Trig.DegreesToRadians(39.69), 3000.0); Waypoint waypoint3 = new Waypoint(waypoint2, earth.Shape, point3, constantVelocity); // Construct the waypoint propagator with all of the waypoints List<Waypoint> waypoints = new List<Waypoint>(); 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. DateMotionCollection<Cartesian> ephemeris = propagator.Propagate(waypoint1.Date, waypoint3.Date, Duration.FromSeconds(60.0), 1, propagator.ReferenceFrame);