22 #define _USE_MATH_DEFINES 
   27 #include "src/functions/alog.h" 
   28 #include "src/functions/atime.h" 
   44     double deg = rad * (180 / M_PI);
 
   55     double rad = deg * (M_PI / 180);
 
   66     double nm = rad * 3440.06479482;
 
  120 double solarElevation(QDateTime utc_time_point, 
double lat, 
double lon);
 
  132 int calculateNightTime(
const QString &dept, 
const QString &dest, QDateTime departureTime, 
int tblk, 
int nightAngle);
 
  134 bool isNight(
const QString &icao, QDateTime event_time, 
int night_angle);
 
  147     NightTimeValues(
const QString& dept, 
const QString& dest, 
const QDateTime& departure_time, 
int block_minutes, 
int night_angle)
 
  149         nightMinutes = 
calculateNightTime(dept, dest, departure_time, block_minutes, night_angle);
 
  151         nightTime = ATime::qTimefromMinutes(nightMinutes);
 
  152         totalTime = ATime::qTimefromMinutes(block_minutes);
 
  154         if (nightMinutes == 0) { 
 
  155             takeOffNight = 
false;
 
  156             landingNight  = 
false;
 
  158         else if (nightMinutes == block_minutes) { 
 
  162             if(isNight(dept, departure_time,  night_angle))
 
  165                 takeOffNight = 
false;
 
  166             if(isNight(dest, departure_time.addSecs(block_minutes * 60), night_angle))
 
  169                 landingNight = 
false;
 
  173     NightTimeValues(
bool to_night, 
bool ldg_night, 
int night_minutes, QTime night_time, QTime total_time)
 
  174         : takeOffNight(to_night), landingNight(ldg_night), nightMinutes(night_minutes), nightTime(night_time), totalTime(total_time){};
 
  181     inline bool isAllDay()      {
return (!takeOffNight  && !landingNight);}
 
  182     inline bool isAllNight()    {
return ( takeOffNight  &&  landingNight);}
 
  183     inline bool isDayToNight()  {
return (!takeOffNight  &&  landingNight);}
 
  184     inline bool isNightToDay()  {
return ( takeOffNight  && !landingNight);}
 
The ACalc namespace provides various functions for calculations that are performed outside of the dat...
Definition: acalc.h:35
double radToDeg(double rad)
radToDeg Converts radians to degrees
Definition: acalc.h:42
double greatCircleDistanceBetweenAirports(const QString &dept, const QString &dest)
ACalc::greatCircleDistanceBetweenAirports Calculates Great Circle distance between two coordinates,...
Definition: acalc.cpp:107
double radToNauticalMiles(double rad)
radToNauticalMiles Convert Radians to nautical miles
Definition: acalc.h:64
void updateAutoTimes(int acft_id)
ACalc::updateAutoTimes When the details of an aircraft are changed, this function recalculates deduct...
Definition: acalc.cpp:305
QVector< QVector< double > > intermediatePointsOnGreatCircle(double lat1, double lon1, double lat2, double lon2, int tblk)
Calculates a list of points (lat,lon) along the Great Circle between two points. The points are space...
Definition: acalc.cpp:137
int calculateNightTime(const QString &dept, const QString &dest, QDateTime departureTime, int tblk, int nightAngle)
Calculates which portion of a flight was conducted in night conditions.
Definition: acalc.cpp:230
double greatCircleDistance(double lat1, double lon1, double lat2, double lon2)
greatCircleDistance Calculates Great Circle distance between two coordinates, return in Radians.
Definition: acalc.cpp:88
double degToRad(double deg)
degToRad Converts degrees to radians
Definition: acalc.h:53
double solarElevation(QDateTime utc_time_point, double lat, double lon)
Calculates solar elevation angle for a given point in time and latitude/longitude coordinates.
Definition: acalc.cpp:171
QString formatTimeInput(QString user_input)
ACalc::formatTimeInput verifies user input and formats to hh:mm if the output is not a valid time,...
Definition: acalc.cpp:35
void updateNightTimes()
ACalc::updateNightTimes updates the night times in the database, used when changing night angle setti...
Definition: acalc.cpp:348
The NightTimeValues struct encapsulates values relating to night time that are needed by the NewFligh...
Definition: acalc.h:145