Zum Inhalt

FlightPlan.InsertWaypoint

Eigenschaft Wert
Modul FlightPlan
Klasse FlightPlan
Typ Function
Sichtbarkeit Public
Datei FlightPlan/FlightPlanModels.vb

Beschreibung

Fuegt ein Leg nach dem angegebenen globalen Index ein. Die Methode bestimmt anhand der Segment-Groessen, in welches Segment der Index faellt, und delegiert an die WithInsertedLeg-Methode des entsprechenden Segments. Prozedur-Segmente (Departure, Arrival, Approach) werden am Tail-Ende zum naechsten Segment uebergeleitet, da manuell hinzugefuegte Wegpunkte keine veroeffentlichten Prozeduren erweitern.

Signatur

Public Function InsertWaypoint(afterLegIndex As Integer, leg As FlightPlanLeg) As FlightPlan

Parameter

Name Typ Beschreibung Standard
afterLegIndex Integer Globaler 0-basierter Index, nach dem das neue Leg eingefuegt wird; -1 = am Anfang
leg FlightPlanLeg Das einzufuegende Leg

Rückgabewert

Typ Beschreibung
FlightPlan Neuer FlightPlan mit dem eingefuegten Leg im richtigen Segment

Ablaufdiagramm

flowchart TD
    A[Start] --> B[Segment-Counts ermitteln: dep, enr, arr, app]
    B --> C{afterLegIndex < depCount - 1?}
    C -- Ja --> D[In DepartureSegment einfuegen]
    C -- Nein --> E{afterLegIndex < depCount + enrCount?}
    E -- Ja --> F[In EnRouteSegment einfuegen]
    E -- Nein --> G{afterLegIndex < dep+enr+arrCount - 1?}
    G -- Ja --> H[In ArrivalSegment einfuegen]
    G -- Nein --> I{afterLegIndex < dep+enr+arr+appCount - 1?}
    I -- Ja --> J[In ApproachSegment einfuegen]
    I -- Nein --> K[In MissedApproachSegment einfuegen]

Aufgerufen von

Modul Sub/Function Kontext
FlightPlanActor Receive(Of InsertWaypoint) Fuegt Waypoint ueber Actor-Message ein
TmpyActor Waypoint-Einfuegung Fuegt Waypoint im TMPY-Plan ein
TmpyActor Discontinuity-Einfuegung Fuegt Discontinuity-Leg nach Delete ein
KernelActor Waypoint-Einfuegung Fuegt Waypoint ueber Kernel ein
McduActor MCDU-Eingabe Fuegt Waypoint ueber MCDU-Interaktion ein

Ruft auf

Modul Sub/Function Kontext
FlightPlanModels DepartureSegment.WithInsertedLeg Einfuegen im Departure-Bereich
FlightPlanModels EnRouteSegment.WithInsertedLeg Einfuegen im EnRoute-Bereich
FlightPlanModels ArrivalSegment.WithInsertedLeg Einfuegen im Arrival-Bereich
FlightPlanModels ApproachSegment.WithInsertedLeg Einfuegen im Approach-Bereich
FlightPlanModels MissedApproachSegment.WithInsertedLeg Einfuegen im MissedApproach-Bereich
FlightPlanModels FlightPlan.WithDepartureSegment Neuer FlightPlan mit aktualisiertem Segment
FlightPlanModels FlightPlan.WithEnRouteSegment Neuer FlightPlan mit aktualisiertem Segment
FlightPlanModels FlightPlan.WithArrivalSegment Neuer FlightPlan mit aktualisiertem Segment
FlightPlanModels FlightPlan.WithApproachSegment Neuer FlightPlan mit aktualisiertem Segment
FlightPlanModels FlightPlan.WithMissedApproachSegment Neuer FlightPlan mit aktualisiertem Segment

Beispiel

Dim plan = FlightPlan.Empty().WithEnRouteSegment(New EnRouteSegment({
    New FlightPlanLeg("WPT1", 49.0, 10.0, "TF", "", 90.0, 0.0, 0.0, 0.0, 50.0, 0.0, 0.0,
        0, "", 0, 0, 0, False, 0, False, "", FlightPlanLegType.Normal),
    New FlightPlanLeg("WPT2", 49.5, 10.5, "TF", "", 90.0, 0.0, 0.0, 0.0, 30.0, 0.0, 0.0,
        0, "", 0, 0, 0, False, 0, False, "", FlightPlanLegType.Normal)
}))

Dim newLeg As New FlightPlanLeg("NEWWP", 49.3, 10.3, "TF", "", 90.0, 0.0, 0.0, 0.0, 20.0, 0.0, 0.0,
    0, "", 0, 0, 0, False, 0, False, "", FlightPlanLegType.Normal)

Dim updated = plan.InsertWaypoint(0, newLeg)
' updated.GetAllLegs().Count = 3
' updated.GetAllLegs()(1).WaypointIdent = "NEWWP"

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation