| Line | Branch | Exec | Source | 
|---|---|---|---|
| 1 | // This file is part of INSTINCT, the INS Toolkit for Integrated | ||
| 2 | // Navigation Concepts and Training by the Institute of Navigation of | ||
| 3 | // the University of Stuttgart, Germany. | ||
| 4 | // | ||
| 5 | // This Source Code Form is subject to the terms of the Mozilla Public | ||
| 6 | // License, v. 2.0. If a copy of the MPL was not distributed with this | ||
| 7 | // file, You can obtain one at https://mozilla.org/MPL/2.0/. | ||
| 8 | |||
| 9 | #include "Gravity.hpp" | ||
| 10 | |||
| 11 | #include <cmath> | ||
| 12 | |||
| 13 | #include <imgui.h> | ||
| 14 | |||
| 15 | namespace NAV | ||
| 16 | { | ||
| 17 | |||
| 18 | ✗ | const char* to_string(GravitationModel gravitationModel) | |
| 19 | { | ||
| 20 | ✗ | switch (gravitationModel) | |
| 21 | { | ||
| 22 | ✗ | case GravitationModel::None: | |
| 23 | ✗ | return "None"; | |
| 24 | ✗ | case GravitationModel::Const: | |
| 25 | ✗ | return "Const"; | |
| 26 | ✗ | case GravitationModel::WGS84: | |
| 27 | ✗ | return "WGS84"; | |
| 28 | ✗ | case GravitationModel::WGS84_Skydel: | |
| 29 | ✗ | return "WGS84 (Skydel Constants)"; | |
| 30 | ✗ | case GravitationModel::Somigliana: | |
| 31 | ✗ | return "Somigliana"; | |
| 32 | ✗ | case GravitationModel::EGM96: | |
| 33 | ✗ | return "EGM96"; | |
| 34 | ✗ | case GravitationModel::COUNT: | |
| 35 | ✗ | return ""; | |
| 36 | } | ||
| 37 | ✗ | return ""; | |
| 38 | } | ||
| 39 | |||
| 40 | ✗ | bool ComboGravitationModel(const char* label, GravitationModel& gravitationModel) | |
| 41 | { | ||
| 42 | ✗ | bool clicked = false; | |
| 43 | ✗ | if (ImGui::BeginCombo(label, NAV::to_string(gravitationModel))) | |
| 44 | { | ||
| 45 | ✗ | for (size_t i = 0; i < static_cast<size_t>(GravitationModel::COUNT); i++) | |
| 46 | { | ||
| 47 | ✗ | const bool is_selected = (static_cast<size_t>(gravitationModel) == i); | |
| 48 | ✗ | if (ImGui::Selectable(NAV::to_string(static_cast<GravitationModel>(i)), is_selected)) | |
| 49 | { | ||
| 50 | ✗ | gravitationModel = static_cast<GravitationModel>(i); | |
| 51 | ✗ | clicked = true; | |
| 52 | } | ||
| 53 | |||
| 54 | // Set the initial focus when opening the combo (scrolling + keyboard navigation focus) | ||
| 55 | ✗ | if (is_selected) | |
| 56 | { | ||
| 57 | ✗ | ImGui::SetItemDefaultFocus(); | |
| 58 | } | ||
| 59 | } | ||
| 60 | |||
| 61 | ✗ | ImGui::EndCombo(); | |
| 62 | } | ||
| 63 | ✗ | return clicked; | |
| 64 | } | ||
| 65 | |||
| 66 | } // namespace NAV | ||
| 67 |