public void WhenRouteUseDirectAnalyzeCorrectness() { // setup var wpts = new[] { new Waypoint("P01", 0.0, 15.0), new Waypoint("P02", 0.0, 16.0), new Waypoint("P03", 0.5, 16.5) }; var wptList = new WaypointList(); foreach (var i in wpts) { wptList.AddWaypoint(i); } var analyzer = new BasicRouteAnalyzer( GetRouteString("P01", "P02", "P03"), wptList, wptList.FindById("P01")); // invoke var route = analyzer.Analyze(); // assert var expected = GetRoute( wpts[0], "DCT", -1.0, wpts[1], "DCT", -1.0, wpts[2]); Assert.IsTrue(route.Equals(expected)); }
public void AddWaypoint(uint id, float x, float y, float z, uint waitTime = 0) { Escort_Waypoint t = new Escort_Waypoint(id, x, y, z, waitTime); WaypointList.Add(t); ScriptWP = true; }
private static void AssertTrack(string ID, string firstWpt, WaypointList wptList) { // check the track is added if (GetEdgeIndex(ID, firstWpt, wptList) < 0) { Assert.Fail("Track not found."); } }
public WaypointList(WaypointList wpList) { waypoints = new List <Waypoint>(); foreach (var waypoint in wpList.waypoints) { waypoints.Add(waypoint); } }
public static List <IndexDistancePair> FromAirway( double Lat, double Lon, WaypointList wptList, WptSearchOption option) { return(Find(Lat, Lon, false, wptList, option)); }
public async Task Update(WaypointList wptList, AirportManager airportList) { var action = new NetworkUpdateAction( (t) => SetTrackEnabled(t), (t) => DownloadAndEnableTracks(t)); await airwayNetwork.Update(wptList, airportList, action); }
// Contains all integral lat/lon waypoints public static WaypointList GetWptList(IEnumerable <string> Idents) { var wptList = new WaypointList(); AddLatLons(wptList); AddWpts(wptList, Idents); return(wptList); }
public void Case4Test() { // Setup var route = new[] { "SID1", "P1", "HLG", "A1", "MKG" }; var wptList = new WaypointList(); var rwy = new Waypoint("RCTP05L", 20.0, 120.0); var wpt1 = new Waypoint("HLG", 22.0, 122.0); wptList.AddWaypoint(wpt1); var p1 = new Waypoint("P1", 21.0, 121.0); var sid = new SidEntry( "05L", "SID1", new[] { p1 }, EntryType.RwySpecific, false); var extractor = new SidExtractor( route.ToRouteString(), "05L", rwy, wptList, new SidCollection(new[] { sid })); // Invoke var result = extractor.Extract(); // Assert Assert.IsTrue(result.RemainingRoute.SequenceEqual(new[] { "HLG", "A1", "MKG" })); var origRoute = result.OrigRoute; Assert.AreEqual(3, origRoute.Count); var node = origRoute.First; var neighbor1 = node.Value.Neighbor; Assert.IsTrue(node.Value.Waypoint.Equals(rwy)); Assert.IsTrue(neighbor1.Airway == sid.Name); Assert.AreEqual(neighbor1.Distance, rwy.Distance(p1), 1E-8); Assert.AreEqual(0, neighbor1.InnerWaypoints.Count); Assert.AreEqual(InnerWaypointsType.Terminal, neighbor1.Type); node = node.Next; var neighbor2 = node.Value.Neighbor; Assert.IsTrue(node.Value.Waypoint.Equals(p1)); Assert.IsTrue(neighbor2.Airway == "DCT"); Assert.AreEqual(neighbor2.Distance, p1.Distance(wpt1), 1E-8); Assert.AreEqual(0, neighbor2.InnerWaypoints.Count); Assert.AreEqual(InnerWaypointsType.None, neighbor2.Type); node = node.Next; Assert.IsTrue(node.Value.Waypoint.Equals(wpt1)); }
private void OnDeleteSelectedItem(object obj) { WaypointList.Remove(SelectedWaypointItem); var availableWaipoints = new Waypoints(); availableWaipoints.AddRange(WaypointList); Task.Run(() => _repository.SaveAsync(availableWaipoints)); NotifyOfPropertyChange(() => WaypointList); }
private bool StarIsAdded(int fromIndex, string name, double dis, WaypointList wptList) { return(wptList.EdgesFrom(fromIndex).Any(i => { var edge = wptList.GetEdge(i); return edge.Value.Airway == name && Math.Abs(dis - edge.Value.Distance) < DistanceEpsilon; })); }
public AirwayNodeFinder( int indexStart, string airway, string identEnd, WaypointList wptList) { this.indexStart = indexStart; this.airway = airway; this.identEnd = identEnd; this.wptList = wptList; }
private void AddToWptListCase3And5(WaypointList wptList) { var entry = new SidEntry( "18", "SID1", List(wpt101, wpt102, wpt103, wpt104), EntryType.RwySpecific, false); var adder = new SidAdder( "AXYZ", new SidCollection( List(entry)), wptList, wptList.GetEditor(), GetAirportManager()); int rwyIndex = adder.AddSidsToWptList("18", List("SID1")); // Check the SID has been added with correct total distance. var edges = wptList.EdgesFrom(rwyIndex).ToList(); Assert.IsTrue(edges.Count > 0); Assert.IsTrue(edges.Select(e => wptList.GetEdge(e)) .All(e => e.Value.InnerWaypoints.SequenceEqual(List(wpt101, wpt102, wpt103)) && e.Value.Type == InnerWaypointsType.Terminal)); double dis = List(rwy, wpt101, wpt102, wpt103, wpt104).TotalDistance(); Assert.IsTrue(SidIsAdded( rwyIndex, "SID1", dis, wptList)); // Check the edges of last wpt int index = wptList.FindByWaypoint(wpt104); Assert.AreEqual(2, wptList.EdgesFromCount(index)); foreach (var i in wptList.EdgesFrom(index)) { var edge = wptList.GetEdge(i); var neighbor = edge.Value; Assert.AreEqual("DCT", neighbor.Airway); Assert.AreEqual(0, neighbor.InnerWaypoints.Count); var expectedDis = wpt104.Distance(wptList[edge.ToNodeIndex]); Assert.AreEqual( expectedDis, neighbor.Distance, DistanceEpsilon); } }
public RouteFinder( WaypointList wptList, CountryCodeCollection avoidedCountry = null, AvgWindCalculator windCalc = null) { this.wptList = wptList; this.avoidedCountry = avoidedCountry ?? new CountryCodeCollection(); this.windCalc = windCalc; }
public AirwayNetwork(WaypointList wptList, AirportManager airportList, MultiMap <string, Navaid> Navaids) { this.WptList = wptList; this.AirportList = airportList; this.Navaids = Navaids; SetTrackData(); }
public void Case3Test() { // Setup var route = new[] { "SIERA", "P1", "STAR1" }; var wptList = new WaypointList(); var wpt = new Waypoint("SIERA", 18.0, 115.0); wptList.AddWaypoint(wpt); var rwy = new Waypoint("VHHH07L", 18.0, 118.0); var p1 = new Waypoint("P1", 18.5, 117.0); var star = new StarEntry( "07L", "STAR1", new[] { p1 }, EntryType.RwySpecific); var stars = new StarCollection(new[] { star }); var extractor = new StarExtractor( route.ToRouteString(), "07L", rwy, wptList, stars); var result = extractor.Extract(); Assert.IsTrue(result.RemainingRoute.SequenceEqual(new[] { "SIERA" })); var destRoute = result.DestRoute; Assert.AreEqual(3, destRoute.Count); var node1 = destRoute.First(); var neighbor1 = node1.AirwayToNext; Assert.IsTrue(node1.Waypoint.Equals(wpt)); Assert.IsTrue("DCT" == neighbor1.Airway); Assert.AreEqual(wpt.Distance(p1), neighbor1.Distance, 1E-8); Assert.AreEqual(0, neighbor1.InnerWaypoints.Count); Assert.AreEqual(InnerWaypointsType.None, neighbor1.Type); var node2 = destRoute.First.Next.Value; var neighbor2 = node2.AirwayToNext; Assert.IsTrue(node2.Waypoint.Equals(p1)); Assert.IsTrue("STAR1" == neighbor2.Airway); Assert.AreEqual(p1.Distance(rwy), neighbor2.Distance, 1E-8); Assert.AreEqual(0, neighbor2.InnerWaypoints.Count); Assert.AreEqual(InnerWaypointsType.Terminal, neighbor2.Type); Assert.IsTrue(destRoute.Last().Waypoint.Equals(rwy)); }
public override void displayPlayer(PlayerInfo _pInfo) { string output = ""; output += new ClientInfoList(_pInfo, _options).DisplayShort(_sep); output += _sep; output += new WaypointList(_pInfo, _options).Display(_sep); SendOutput(output); }
private static void AddWpts(WaypointList wptList, IEnumerable <string> Idents) { var rd = new Random(123); foreach (var i in Idents) { wptList.AddWaypoint( new Waypoint(i, rd.Next(-90, 91), rd.Next(-180, 181))); } }
private static void AddLatLons(WaypointList wptList) { for (int lon = -180; lon <= 180; lon++) { for (int lat = -90; lat <= 90; lat++) { wptList.AddWaypoint( new Waypoint(Format5Letter.ToString(lat, lon), lat, lon)); } } }
public TrackAdder( WaypointList wptList, WaypointListEditor editor, StatusRecorder recorder, TrackType type) { this.wptList = wptList; this.editor = editor; this.recorder = recorder; this.type = type; }
private static void AddAirways(WaypointList wptList) { foreach (var i in airwayEntries) { int x = TryAddWpt(wptList, i.StartWpt); int y = TryAddWpt(wptList, i.EndWpt); var neighbor = new Neighbor(i.Airway, wptList.Distance(x, y)); wptList.AddNeighbor(x, y, neighbor); } }
public AutoSelectAnalyzer( RouteString route, ICoordinate orig, ICoordinate dest, WaypointList wptList) { this.route = route; this.orig = orig; this.dest = dest; this.wptList = wptList; }
/// <summary> /// Adds a waypoint before the current destination /// </summary> /// <param name="targetPosition">The target position in world coordinates</param> public void AddWaypointPrev(Vector2 targetPosition) { if (current == null) { WaypointList.AddFirst(targetPosition); } else { WaypointList.AddBefore(current, targetPosition); } }
private static int GetEdgeIndex(string ID, string firstWpt, WaypointList wptList) { foreach (var i in wptList.EdgesFrom(wptList.FindById(firstWpt))) { if (wptList.GetEdge(i).Value.Airway == ID) { return(i); } } return(-1); }
public RouteSeachRegion( WaypointList wptList, int StartPtIndex, int EndPtIndex, double MaxDistanceSum = 0.0) { this.StartPtIndex = StartPtIndex; this.EndPtIndex = EndPtIndex; this.MaxDistanceSum = MaxDistanceSum; DirectDistance = wptList.Distance(StartPtIndex, EndPtIndex); }
public TrackHandler( WaypointList wptList, WaypointListEditor editor, AirportManager airportList, TrackInUseCollection tracksInUse) { this.wptList = wptList; this.editor = editor; this.airportList = airportList; this.tracksInUse = tracksInUse; }
/// <summary> /// Adds a waypoint after the current destination /// </summary> /// <param name="targetPosition">The target position in world coordinates</param> public void AddWaypointNext(Vector2 targetPosition) { if (current == null) { WaypointList.AddLast(targetPosition); } else { WaypointList.AddAfter(current, targetPosition); } }
private static WaypointList BasicWptList() { var wptList = new WaypointList(); int index1 = wptList.AddWaypoint(new Waypoint("25N050E", 25.0, 50.0)); int index2 = wptList.AddWaypoint(new Waypoint("27N050E", 27.0, 50.0)); wptList.AddNeighbor(index1, "AIRWAY1", index2); wptList.AddNeighbor(index2, "AIRWAY1", index1); return(wptList); }
private void AddToWptListCase2And4(WaypointList wptList) { var entry = new StarEntry( "18", "STAR1", List(wpt101, wpt102, wpt103, wpt104), EntryType.RwySpecific); var adder = new StarAdder( "AXYZ", new StarCollection(List(entry)), wptList, wptList.GetEditor(), GetAirportManager()); int rwyIndex = adder.AddStarsToWptList("18", List("STAR1")); // Check the STAR1 has been added with correct total distance. var edges = wptList.EdgesTo(rwyIndex).ToList(); Assert.IsTrue(edges.Count > 0); Assert.IsTrue(edges .Select(e => wptList.GetEdge(e)) .All(e => e.Value.InnerWaypoints.SequenceEqual(List(wpt102, wpt103, wpt104)) && e.Value.Type == InnerWaypointsType.Terminal)); double dis = List(wpt101, wpt102, wpt103, wpt104, rwy) .TotalDistance(); Assert.IsTrue(StarIsAdded( wptList.FindByWaypoint(wpt101), "STAR1", dis, wptList)); // Check the edges of first wpt int index = wptList.FindByWaypoint(wpt101); Assert.IsTrue(index >= 0); Assert.AreEqual(2, wptList.EdgesToCount(index)); foreach (var i in wptList.EdgesTo(index)) { var edge = wptList.GetEdge(i); Assert.AreEqual("DCT", edge.Value.Airway); Assert.AreEqual(0, edge.Value.InnerWaypoints.Count); double expectedDis = wpt101.Distance(wptList[edge.FromNodeIndex]); Assert.AreEqual(expectedDis, edge.Value.Distance, DistanceEpsilon); } }
private static void AssertDct(WaypointList wptList, string from, string to) { foreach (var i in wptList.EdgesFrom(wptList.FindById(from))) { if (wptList[wptList.GetEdge(i).ToNodeIndex].ID == to) { return; } } Assert.Fail("{0} is not connected to {1}", from, to); }
public RouteFinderFacade( WaypointList wptList, AirportManager airportList, string navDataLocation = null, CountryCodeCollection avoidedCountry = null, AvgWindCalculator windCalc = null) { this.wptList = wptList; this.airportList = airportList; this.navDataLocation = navDataLocation; finder = new RouteFinder(wptList, avoidedCountry, windCalc); }
public Unit() { Speed = MaxSpeed; IsAnimating = false; PreviousDirection = Direction.North; IsWithinTargetRange = true; Controls = new ControlManager(); _waypoints = new WaypointList(); _energyTextures = new List<Texture2D>(); }
public async Task AddWaypoint(ICrestSolarSystem waypoint, WaypointList waypointList) { await EnsureTokenIsValid() .ConfigureAwait(false); var json = string.Format( WAYPOINT_TEMPLATE, waypoint.Href, waypoint.Id, waypointList == WaypointList.AddToFront ? "false" : "true", "false"); await Crest.Settings.DocumentLoader.AuthenticatedPostRequest(Character.Waypoints.Href, BearerToken, json, DataType.Json) .ConfigureAwait(false); }
/// <summary> /// Called on Awake /// </summary> protected override void Awake() { base.Awake(); this.WarnIfMultipleInstances(); _transform = this.transform; _wayPoints = new WaypointList(); _navMessage = new UnitNavigationEventMessage(this.gameObject); _resultProcessors = this.GetComponents<SteerForPathResultProcessorComponent>(); Array.Sort(_resultProcessors, (a, b) => a.processingOrder.CompareTo(b.processingOrder)); _unit = this.GetUnitFacade(); _pathSettings = _unit.pathNavigationOptions; _stopped = true; }
/// <summary> /// Tank constructor /// </summary> public Tank() { waypoints = new WaypointList(); }
/// <summary> /// Called on Awake /// </summary> protected override void Awake() { base.Awake(); _transform = this.transform; _wayPoints = new WaypointList(); _navMessage = new UnitNavigationEventMessage(this.gameObject); _resultProcessors = this.GetComponents<SteerForPathResultProcessorComponent>(); Array.Sort(_resultProcessors, (a, b) => a.processingOrder.CompareTo(b.processingOrder)); StartCoroutine(delayToInit()); }
/// <summary> /// Tank constructor /// </summary> public Tank(Game game) : base(game) { location = Vector2.Zero; waypoints = new WaypointList(); BehaviorType = BehaviorType.Linear; }