Package com.luciad.ais.model.procedure
Class TLcdProcedure3DGeometryCalculator
java.lang.Object
com.luciad.ais.model.procedure.TLcdProcedureGeometryCalculator
com.luciad.ais.model.procedure.TLcdProcedure3DGeometryCalculator
This geometry calculator extends
TLcdProcedureGeometryCalculator
to include actual
altitudes in the geometry. It takes into account the aircraft performance settings to descend or climb (in
accordance with the altitude descriptions of each leg).
The following strategies are used to compute altitudes in the flight profile:
SID: Start at runway altitude. Then climb as soon as possible, not violating the maximum
altitude.
STAR: The initial altitude is determined from the altitudes in the legs. The first minimum
altitude encountered in the procedure leg sequence is used as a starting altitude. If none, found
the first maximum is taken. If also none is found, 11000ft is taken.
Within a leg, try to descend to the maximum allowed altitude within the current leg.
IAP: The initial altitude is determined as for the STAR except that 2000ft is used when no
altitude is found.
The aircraft descends as in a STAR, until it reaches the Missed Approach Point (MAPT) which is a
property of a leg. From that leg on, it will inspect the minimal altitude of each leg.
When the minimal altitude increase between 2 legs, the aircraft will climb as in a SID. The leg before the MAPT
usually has an undefined altitude with an AT or AT_OR_ABOVE constraint. If this is the case, the
target altitude is 0.-
Nested Class Summary
Nested classes/interfaces inherited from class com.luciad.ais.model.procedure.TLcdProcedureGeometryCalculator
TLcdProcedureGeometryCalculator.CFBehavior
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
calculateProcedureGeometry
(ILcdProcedure aProcedure, ILcdProcedureGeometryHandler aProcedureGeometryHandler) Calculates the geometry of the given procedure.protected void
endProcedureLeg
(ILcdProcedure aProcedure, ILcdProcedureLeg aCurrentLeg) Called when the geometry of the current leg has been generated INCLUDING the transition to the next leg.protected void
initializeAircraft
(ILcdProcedure aProcedure) This method is called at the beginning of a procedure, before any leg is handled.protected void
startProcedureLeg
(ILcdProcedure aProcedure, ILcdProcedureLeg aCurrentLeg) Called when a new leg is about to be handled.Methods inherited from class com.luciad.ais.model.procedure.TLcdProcedureGeometryCalculator
flyByOntoArc, flyByOntoLine, flyOverOntoArc, flyOverOntoLine, getAircraftPerformanceSettings, getAircraftState, getCFBehavior, getDiscretizationResolutionAngle, getEllipsoid, handleAngleArc, handleLine, handlePoint, isClassTraceOn, isDoHoldingEntries, setAircraftPerformanceSettings, setCFBehavior, setClassTraceOn, setCoordinateSystems, setDiscretizationResolutionAngle, setDoHoldingEntries
-
Constructor Details
-
TLcdProcedure3DGeometryCalculator
public TLcdProcedure3DGeometryCalculator()
-
-
Method Details
-
calculateProcedureGeometry
public void calculateProcedureGeometry(ILcdProcedure aProcedure, ILcdProcedureGeometryHandler aProcedureGeometryHandler) Description copied from class:TLcdProcedureGeometryCalculator
Calculates the geometry of the given procedure. AnILcdProcedureGeometryHandler
must be provided to process the geometry with.An
ILcdProcedure
represents a high-level modeling of a procedure, following the ARINC 424 Path & Terminator concept. This method is capable of turning such a procedure into a list of points that can be visualized on the map. This approach is typically used in combination withTLcdProcedureTrajectory
, which uses it to represent anILcdProcedure
as a polyline.- Overrides:
calculateProcedureGeometry
in classTLcdProcedureGeometryCalculator
- Parameters:
aProcedure
- the procedure for which the geometry must be calculatedaProcedureGeometryHandler
- a call-back instance that gets updated when new geometry segments are calculated
-
initializeAircraft
Description copied from class:TLcdProcedureGeometryCalculator
This method is called at the beginning of a procedure, before any leg is handled. It allows to set the current altitude and other properties if necessary. The default implementation sets position to invalid, and the altitude and heading to Double.NaN.Be careful with position and heading of the aircraft, as it may interfere with the initial IF leg and possibly also the next leg(s).
- Overrides:
initializeAircraft
in classTLcdProcedureGeometryCalculator
-
startProcedureLeg
Description copied from class:TLcdProcedureGeometryCalculator
Called when a new leg is about to be handled. Derived classes must call the super method to ensure proper functioning of the geometry calculator.- Overrides:
startProcedureLeg
in classTLcdProcedureGeometryCalculator
- Parameters:
aProcedure
- the procedure whose geometry is being calculatedaCurrentLeg
- the procedure leg about to be processed
-
endProcedureLeg
Description copied from class:TLcdProcedureGeometryCalculator
Called when the geometry of the current leg has been generated INCLUDING the transition to the next leg.This method shall update the current altitude of the aircraft to its altitude after the leg.
- Overrides:
endProcedureLeg
in classTLcdProcedureGeometryCalculator
- Parameters:
aProcedure
- the procedure whose geometry is being calculatedaCurrentLeg
- the procedure leg that has been processed
-