Skip to content

Commit 9867a6b

Browse files
committed
build: migrate to qt 5.15
1 parent 020ac6d commit 9867a6b

20 files changed

+2818
-2908
lines changed

src/SunClock.cpp

Lines changed: 82 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
#include <cmath>
21
#include <SunClock.hpp>
2+
#include <cmath>
33
#include <stdexcept>
44

55
inline double rad(double degrees) {
@@ -12,7 +12,8 @@ inline double deg(double radians) {
1212
return radians * radToDeg;
1313
}
1414

15-
Sunclock::Sunclock(double const &latitude_, double const &longitude_, double const &tz_offset_)
15+
Sunclock::Sunclock(double const &latitude_, double const &longitude_,
16+
double const &tz_offset_)
1617
: latitude(latitude_), longitude(longitude_), tz_offset(tz_offset_) {}
1718

1819
double Sunclock::irradiance() { return irradiance(time(0)); }
@@ -32,7 +33,8 @@ double Sunclock::irradiance(time_t when) {
3233
double _sun_app_long = sun_app_long(_sun_true_long, _julian_century);
3334
double _eccent_earth_orbit = eccent_earth_orbit(_julian_century);
3435
double _var_y = var_y(_obliq_corr);
35-
double _eq_of_time = eq_of_time(_var_y, _mean_long_sun, _eccent_earth_orbit, _mean_anom_sun);
36+
double _eq_of_time =
37+
eq_of_time(_var_y, _mean_long_sun, _eccent_earth_orbit, _mean_anom_sun);
3638
double _declination = declination(_obliq_corr, _sun_app_long);
3739
double _true_solar_time = true_solar_time(_time_of_day, _eq_of_time);
3840
double _hour_angle = hour_angle(_true_solar_time);
@@ -57,13 +59,16 @@ time_t Sunclock::sunrise(time_t date) {
5759
double _sun_app_long = sun_app_long(_sun_true_long, _julian_century);
5860
double _eccent_earth_orbit = eccent_earth_orbit(_julian_century);
5961
double _var_y = var_y(_obliq_corr);
60-
double _eq_of_time = eq_of_time(_var_y, _mean_long_sun, _eccent_earth_orbit, _mean_anom_sun);
62+
double _eq_of_time =
63+
eq_of_time(_var_y, _mean_long_sun, _eccent_earth_orbit, _mean_anom_sun);
6164
double _declination = declination(_obliq_corr, _sun_app_long);
6265
double _hour_angle_sunrise = hour_angle_sunrise(_declination);
6366

64-
double noon_decimal_day = (720 - 4 * longitude - _eq_of_time + tz_offset * 60) / 1440;
67+
double noon_decimal_day =
68+
(720 - 4 * longitude - _eq_of_time + tz_offset * 60) / 1440;
6569
double decimal_day = noon_decimal_day - _hour_angle_sunrise * 4 / 1440;
66-
return time_from_decimal_day(date, decimal_day) - (time_t)(tz_offset * 60 * 60);
70+
return time_from_decimal_day(date, decimal_day) -
71+
(time_t)(tz_offset * 60 * 60);
6772
}
6873

6974
time_t Sunclock::solar_noon() { return solar_noon(time(0)); }
@@ -80,10 +85,13 @@ time_t Sunclock::solar_noon(time_t date) {
8085
double _obliq_corr = obliq_corr(_mean_obliq_ecliptic, _julian_century);
8186
double _eccent_earth_orbit = eccent_earth_orbit(_julian_century);
8287
double _var_y = var_y(_obliq_corr);
83-
double _eq_of_time = eq_of_time(_var_y, _mean_long_sun, _eccent_earth_orbit, _mean_anom_sun);
88+
double _eq_of_time =
89+
eq_of_time(_var_y, _mean_long_sun, _eccent_earth_orbit, _mean_anom_sun);
8490

85-
double decimal_day = (720 - 4 * longitude - _eq_of_time + tz_offset * 60) / 1440;
86-
return time_from_decimal_day(date, decimal_day) - (time_t)(tz_offset * 60 * 60);
91+
double decimal_day =
92+
(720 - 4 * longitude - _eq_of_time + tz_offset * 60) / 1440;
93+
return time_from_decimal_day(date, decimal_day) -
94+
(time_t)(tz_offset * 60 * 60);
8795
}
8896

8997
time_t Sunclock::sunset() { return sunset(time(0)); }
@@ -103,13 +111,16 @@ time_t Sunclock::sunset(time_t date) {
103111
double _sun_app_long = sun_app_long(_sun_true_long, _julian_century);
104112
double _eccent_earth_orbit = eccent_earth_orbit(_julian_century);
105113
double _var_y = var_y(_obliq_corr);
106-
double _eq_of_time = eq_of_time(_var_y, _mean_long_sun, _eccent_earth_orbit, _mean_anom_sun);
114+
double _eq_of_time =
115+
eq_of_time(_var_y, _mean_long_sun, _eccent_earth_orbit, _mean_anom_sun);
107116
double _declination = declination(_obliq_corr, _sun_app_long);
108117
double _hour_angle_sunrise = hour_angle_sunrise(_declination);
109118

110-
double noon_decimal_day = (720 - 4 * longitude - _eq_of_time + tz_offset * 60) / 1440;
119+
double noon_decimal_day =
120+
(720 - 4 * longitude - _eq_of_time + tz_offset * 60) / 1440;
111121
double decimal_day = noon_decimal_day + _hour_angle_sunrise * 4 / 1440;
112-
return time_from_decimal_day(date, decimal_day) - (time_t)(tz_offset * 60 * 60);
122+
return time_from_decimal_day(date, decimal_day) -
123+
(time_t)(tz_offset * 60 * 60);
113124
}
114125

115126
double Sunclock::time_of_day(time_t date) {
@@ -142,7 +153,8 @@ time_t Sunclock::time_from_decimal_day(time_t date, double decimal_day) {
142153
int Sunclock::days_since_1900(struct tm *t) {
143154
int year = t->tm_year;
144155
if (year < 0 || year > 199) {
145-
throw std::invalid_argument("days_since_1900 - Date must be between 1900 and 2099");
156+
throw std::invalid_argument(
157+
"days_since_1900 - Date must be between 1900 and 2099");
146158
}
147159
int month = t->tm_mon + 1;
148160
int days = t->tm_mday;
@@ -157,89 +169,108 @@ int Sunclock::days_since_1900(struct tm *t) {
157169
return (yearDays + monthDays + days - 63);
158170
}
159171

160-
double Sunclock::julian_day(struct tm *t, double const &time_of_day, double const &tz_offset) {
172+
double Sunclock::julian_day(struct tm *t, double const &time_of_day,
173+
double const &tz_offset) {
161174
return days_since_1900(t) + 2415018.5 + time_of_day - tz_offset / 24;
162175
}
163176

164-
double Sunclock::julian_century(double _julian_day) { return (_julian_day - 2451545.0) / 36525.0; }
177+
double Sunclock::julian_century(double _julian_day) {
178+
return (_julian_day - 2451545.0) / 36525.0;
179+
}
165180

166181
double Sunclock::mean_long_sun(double _julian_century) {
167-
return (280.46646 + fmod(_julian_century * (36000.76983 + _julian_century * 0.0003032), 360));
182+
return (
183+
280.46646 +
184+
fmod(_julian_century * (36000.76983 + _julian_century * 0.0003032), 360));
168185
}
169186

170187
double Sunclock::mean_anom_sun(double _julian_century) {
171-
return 357.52911 + _julian_century * (35999.05029 - 0.0001537 * _julian_century);
188+
return 357.52911 +
189+
_julian_century * (35999.05029 - 0.0001537 * _julian_century);
172190
}
173191

174-
double Sunclock::sun_eq_of_centre(double _mean_anom_sun, double _julian_century) {
175-
return sin(rad(_mean_anom_sun))
176-
* (1.914602 - _julian_century * (0.004817 + 0.000014 * _julian_century))
177-
+ sin(rad(2 * _mean_anom_sun)) * (0.019993 - 0.000101 * _julian_century)
178-
+ sin(rad(3 * _mean_anom_sun)) * 0.000289;
192+
double Sunclock::sun_eq_of_centre(double _mean_anom_sun,
193+
double _julian_century) {
194+
return sin(rad(_mean_anom_sun)) *
195+
(1.914602 -
196+
_julian_century * (0.004817 + 0.000014 * _julian_century)) +
197+
sin(rad(2 * _mean_anom_sun)) *
198+
(0.019993 - 0.000101 * _julian_century) +
199+
sin(rad(3 * _mean_anom_sun)) * 0.000289;
179200
}
180201

181-
double Sunclock::sun_true_long(double _mean_long_sun, double _sun_eq_of_centre) {
202+
double Sunclock::sun_true_long(double _mean_long_sun,
203+
double _sun_eq_of_centre) {
182204
return _mean_long_sun + _sun_eq_of_centre;
183205
}
184206

185207
double Sunclock::eccent_earth_orbit(double _julian_century) {
186-
return 0.016708634 - _julian_century * (0.000042037 + 0.0001537 * _julian_century);
208+
return 0.016708634 -
209+
_julian_century * (0.000042037 + 0.0001537 * _julian_century);
187210
}
188211

189212
double Sunclock::var_y(double _obliq_corr) {
190213
return tan(rad(_obliq_corr / 2)) * tan(rad(_obliq_corr / 2));
191214
}
192215

193216
double Sunclock::mean_obliq_ecliptic(double _julian_century) {
194-
return (23
195-
+ (26
196-
+ ((21.448
197-
- _julian_century
198-
* (46.815 + _julian_century * (0.00059 - _julian_century * 0.001813))))
199-
/ 60)
200-
/ 60);
217+
return (23 + (26 + ((21.448 - _julian_century *
218+
(46.815 + _julian_century *
219+
(0.00059 - _julian_century *
220+
0.001813)))) /
221+
60) /
222+
60);
201223
}
202224

203-
double Sunclock::obliq_corr(double _mean_obliq_ecliptic, double _julian_century) {
204-
return _mean_obliq_ecliptic + 0.00256 * cos(deg(125.04 - 1934.136 * _julian_century));
225+
double Sunclock::obliq_corr(double _mean_obliq_ecliptic,
226+
double _julian_century) {
227+
return _mean_obliq_ecliptic +
228+
0.00256 * cos(deg(125.04 - 1934.136 * _julian_century));
205229
}
206230

207231
double Sunclock::sun_app_long(double _sun_true_long, double _julian_century) {
208-
return (_sun_true_long - 0.00569 - 0.00478 * sin(deg(125.04 - 1934.136 * _julian_century)));
232+
return (_sun_true_long - 0.00569 -
233+
0.00478 * sin(deg(125.04 - 1934.136 * _julian_century)));
209234
}
210235

211236
double Sunclock::declination(double _obliq_corr, double _sun_app_long) {
212237
return deg(asin(sin(rad(_obliq_corr)) * sin(rad(_sun_app_long))));
213238
}
214239

215-
double Sunclock::eq_of_time(double _var_y, double _mean_long_sun, double _eccent_earth_orbit,
216-
double _mean_anom_sun) {
217-
return 4
218-
* deg(_var_y * sin(2 * rad(_mean_long_sun))
219-
- 2 * _eccent_earth_orbit * sin(rad(_mean_anom_sun))
220-
+ 4 * _eccent_earth_orbit * _var_y * sin(rad(_mean_anom_sun))
221-
* cos(2 * rad(_mean_long_sun))
222-
- 0.5 * _var_y * _var_y * sin(4 * rad(_mean_long_sun))
223-
- 1.25 * _eccent_earth_orbit * _eccent_earth_orbit * sin(2 * rad(_mean_anom_sun)));
240+
double Sunclock::eq_of_time(double _var_y, double _mean_long_sun,
241+
double _eccent_earth_orbit, double _mean_anom_sun) {
242+
return 4 * deg(_var_y * sin(2 * rad(_mean_long_sun)) -
243+
2 * _eccent_earth_orbit * sin(rad(_mean_anom_sun)) +
244+
4 * _eccent_earth_orbit * _var_y * sin(rad(_mean_anom_sun)) *
245+
cos(2 * rad(_mean_long_sun)) -
246+
0.5 * _var_y * _var_y * sin(4 * rad(_mean_long_sun)) -
247+
1.25 * _eccent_earth_orbit * _eccent_earth_orbit *
248+
sin(2 * rad(_mean_anom_sun)));
224249
}
225250

226251
double Sunclock::true_solar_time(double _time_of_day, double _eq_of_time) {
227-
return fmod((_time_of_day * 1440 + _eq_of_time + 4 * longitude - 60 * tz_offset), 1440);
252+
return fmod(
253+
(_time_of_day * 1440 + _eq_of_time + 4 * longitude - 60 * tz_offset),
254+
1440);
228255
}
229256

230257
double Sunclock::hour_angle(double _true_solar_time) {
231-
return (_true_solar_time / 4 < 0 ? _true_solar_time / 4 + 180 : _true_solar_time / 4 - 180);
258+
return (_true_solar_time / 4 < 0 ? _true_solar_time / 4 + 180
259+
: _true_solar_time / 4 - 180);
232260
}
233261

234262
double Sunclock::hour_angle_sunrise(double _declination) {
235-
return deg(acos(cos(rad(90.833)) / (cos(rad(latitude)) * cos(rad(_declination)))
236-
- tan(rad(latitude)) * tan(rad(_declination))));
263+
return deg(
264+
acos(cos(rad(90.833)) / (cos(rad(latitude)) * cos(rad(_declination))) -
265+
tan(rad(latitude)) * tan(rad(_declination))));
237266
}
238267

239268
double Sunclock::solar_zenith(double _declination, double _hour_angle) {
240-
return deg(acos(sin(rad(latitude)) * sin(rad(_declination))
241-
+ cos(rad(latitude)) * cos(rad(_declination)) * cos(rad(_hour_angle))));
269+
return deg(acos(sin(rad(latitude)) * sin(rad(_declination)) +
270+
cos(rad(latitude)) * cos(rad(_declination)) *
271+
cos(rad(_hour_angle))));
242272
}
243273

244-
double Sunclock::solar_elevation(double _solar_zenith) { return 90 - _solar_zenith; }
245-
274+
double Sunclock::solar_elevation(double _solar_zenith) {
275+
return 90 - _solar_zenith;
276+
}

0 commit comments

Comments
 (0)