60namespace pattern_detail
62constexpr float kNaN = std::numeric_limits<float>::quiet_NaN();
63inline float pick(
float param,
float fallback) {
return std::isnan(param) ? fallback : param; }
66 return std::isnan(altitudeAgl) ? currentZ : -altitudeAgl;
221 return std::atan2(to.
y - from.
y, to.
x - from.
x);
float altitudeToZ(float altitudeAgl, float currentZ)
float pick(float param, float fallback)
std::vector< NedPoint > generateFlightPatternSpiral(const FlightPatternSpiralParams &p, const NedPoint ¤t)
std::vector< NedPoint > generateFlightPatternSineWaveVertical(const FlightPatternSineWaveVerticalParams &p, const NedPoint ¤t)
std::vector< NedPoint > generateFlightPatternVSSearch(const FlightPatternVSSearchParams &p, const NedPoint ¤t)
std::vector< NedPoint > generateFlightPatternSquareSpiral(const FlightPatternSquareSpiralParams &p, const NedPoint ¤t)
std::vector< NedPoint > generateFlightPatternLoiter(const FlightPatternLoiterParams &p, const NedPoint ¤t)
float flightPatternSquareSpiralLength(const FlightPatternSquareSpiralParams &p)
float legHeading(const NedPoint &from, const NedPoint &to)
std::vector< NedPoint > generateFlightPatternSineWaveHorizontal(const FlightPatternSineWaveHorizontalParams &p, const NedPoint ¤t)
float flightPatternGridPatternLength(const FlightPatternGridPatternParams &p)
std::vector< NedPoint > generateFlightPatternLawnmower(const FlightPatternLawnmowerParams &p, const NedPoint ¤t)
const char * turnName(Turn t)
int flightPatternLawnmowerLaneCount(const FlightPatternLawnmowerParams &p)
float flightPatternVSSearchLength(const FlightPatternVSSearchParams &p)
std::vector< NedPoint > generateFlightPatternGridPattern(const FlightPatternGridPatternParams &p, const NedPoint ¤t)
float flightPatternSpiralLength(const FlightPatternSpiralParams &p)
float flightPatternLawnmowerLength(const FlightPatternLawnmowerParams &p)
std::vector< NedPoint > generateFlightPatternAscend(const FlightPatternAscendParams &p, const NedPoint ¤t)
FlightPatternLawnmowerParams base