Skip to content
Snippets Groups Projects

refactor: Use GetSeconds from OSC API

Merged Andreas Rauschert requested to merge use_get_seconds_from_osc_api into main
1 file
+ 14
34
Compare changes
  • Side-by-side
  • Inline
/********************************************************************************
* Copyright (c) 2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
*
@@ -22,12 +21,13 @@ namespace detail
{
// Normalize to [0,2PI]
units::angle::radian_t normalize_angle(const units::angle::radian_t & angle)
units::angle::radian_t normalize_angle(const units::angle::radian_t& angle)
{
constexpr units::angle::radian_t TWO_PI {2 * units::constants::detail::PI_VAL};
constexpr units::angle::radian_t TWO_PI{2 * units::constants::detail::PI_VAL};
units::angle::radian_t normalized_angle = units::math::fmod(angle, TWO_PI);
if (normalized_angle.value() < 0) {
normalized_angle += TWO_PI;
if (normalized_angle.value() < 0)
{
normalized_angle += TWO_PI;
}
return normalized_angle;
}
@@ -88,7 +88,7 @@ mantle_api::Sun ConvertSun(const NET_ASAM_OPENSCENARIO::v1_3::ISun& parsed_sun,
return sun;
}
[[ nodiscard ]] mantle_api::Weather ConvertWeather(const std::shared_ptr<NET_ASAM_OPENSCENARIO::v1_3::IWeather> weather)
[[nodiscard]] mantle_api::Weather ConvertWeather(const std::shared_ptr<NET_ASAM_OPENSCENARIO::v1_3::IWeather> weather)
{
mantle_api::Weather mantle_weather = GetDefaultWeather();
return {weather->IsSetFog()
@@ -110,24 +110,6 @@ mantle_api::Sun ConvertSun(const NET_ASAM_OPENSCENARIO::v1_3::ISun& parsed_sun,
: mantle_weather.sun};
}
long long GetSeconds(const NET_ASAM_OPENSCENARIO::DateTime& dateTime)
{
struct tm timestruct;
timestruct.tm_year = dateTime.year;;
timestruct.tm_mday = dateTime.mday;
timestruct.tm_mon = dateTime.mon;
timestruct.tm_hour = dateTime.hour;
timestruct.tm_min = dateTime.min;
timestruct.tm_sec = (int) std::ceil(dateTime.sec);
timestruct.tm_isdst = 0;
time_t localTime = mktime(&timestruct);
localTime -= (dateTime.gmtHours * 3600);
localTime -= (dateTime.gmtMin * 60);
return localTime;
}
const NET_ASAM_OPENSCENARIO::v1_3::IEnvironment& ResolveChoice(const std::shared_ptr<NET_ASAM_OPENSCENARIO::v1_3::IEnvironment>& environment,
const std::shared_ptr<NET_ASAM_OPENSCENARIO::v1_3::ICatalogReference>& catalogReference)
{
@@ -147,16 +129,14 @@ const NET_ASAM_OPENSCENARIO::v1_3::IEnvironment& ResolveChoice(const std::shared
Environment ConvertEnvironment(const NET_ASAM_OPENSCENARIO::v1_3::IEnvironment& scenario_environment)
{
return
{
scenario_environment.IsSetTimeOfDay()
? std::optional(units::make_unit<units::time::second_t>(
GetSeconds(scenario_environment.GetTimeOfDay()->GetDateTime())))
: std::nullopt,
scenario_environment.IsSetWeather()
? std::optional(ConvertWeather(scenario_environment.GetWeather()))
: std::nullopt
};
return {
scenario_environment.IsSetTimeOfDay()
? std::optional(units::make_unit<units::time::second_t>(
NET_ASAM_OPENSCENARIO::DateTime::GetSeconds(scenario_environment.GetTimeOfDay()->GetDateTime())))
: std::nullopt,
scenario_environment.IsSetWeather()
? std::optional(ConvertWeather(scenario_environment.GetWeather()))
: std::nullopt};
}
} // namespace detail
Loading