125 ImGui::SetNextItemWidth(width - BUTTON_WIDTH - 2 * ImGui::GetStyle().ItemInnerSpacing.x);
128 if (ImGui::Button(fmt::format(
"...## GnssMeasurementError {}",
id).c_str(), ImVec2(BUTTON_WIDTH, 0)))
130 ImGui::OpenPopup(fmt::format(
"{} GnssMeasurementError Popup",
id).c_str());
132 ImGui::SameLine(0.0F, ImGui::GetStyle().ItemInnerSpacing.x);
133 ImGui::TextUnformatted(
"Weighting Function");
135 int combo_current_item = 0;
137 &
_carrierStdDev, combo_current_item,
"m\0\0", 0.0, 0.0,
"%.3g", ImGuiInputTextFlags_CharsScientific);
139 &
_codeStdDev, combo_current_item,
"m\0\0", 0.0, 0.0,
"%.3g", ImGuiInputTextFlags_CharsScientific);
142 &
_dopplerStdDev, combo_current_item,
"Hz\0\0", 0.0, 0.0,
"%.3g", ImGuiInputTextFlags_CharsScientific);
146 if (ImGui::BeginPopup(fmt::format(
"{} GnssMeasurementError Popup",
id).c_str()))
155 if (ImGui::BeginChild(
"left pane", ImVec2(PLOT_WIDTH, WINDOW_HEIGHT),
false, ImGuiWindowFlags_NoScrollbar))
158 if (ImPlot::BeginPlot(
"Weighting function", ImVec2(ImGui::GetContentRegionAvail().x, PLOT_HEIGHT)))
161 ImPlot::SetupAxisLimitsConstraints(ImAxis_Y1, 0.0, std::numeric_limits<double>::max());
162 ImPlot::SetupAxes(
"Elevation [deg]",
"Weighting function [-]");
163 ImPlot::SetupLegend(ImPlotLocation_NorthEast);
181 if (ImGui::BeginTable(
"parameter settings", 2, ImGuiTableFlags_SizingStretchSame, ImVec2(TABLE_WIDTH, 0.0F)))
183 ImGui::TableNextColumn();
184 ImGui::SetNextItemOpen(
true, ImGuiCond_Always);
187 ImGui::TextUnformatted(
"wf = a/sin(e)");
188 ImGui::SetNextItemWidth(ITEM_WIDTH);
195 ImGui::TableNextColumn();
196 ImGui::SetNextItemOpen(
true, ImGuiCond_Always);
199 ImGui::TextUnformatted(
"wf = (a + b/sin(e))");
200 ImGui::SetNextItemWidth(ITEM_WIDTH);
206 ImGui::SetNextItemWidth(ITEM_WIDTH);
213 ImGui::TableNextColumn();
214 ImGui::SetNextItemOpen(
true, ImGuiCond_Always);
215 if (ImGui::CollapsingHeader(fmt::format(
"{}##{}",
to_string(
Model::SINE_CN0),
id).c_str(), ImGuiTreeNodeFlags_DefaultOpen))
217 ImGui::TextUnformatted(
"wf = a/sin(e) * √(b + c/(c/n₀))");
218 ImGui::SetNextItemWidth(ITEM_WIDTH);
224 ImGui::SetNextItemWidth(ITEM_WIDTH);
230 ImGui::SetNextItemWidth(ITEM_WIDTH);
237 ImGui::TableNextColumn();
238 ImGui::SetNextItemOpen(
true, ImGuiCond_Always);
239 if (ImGui::CollapsingHeader(fmt::format(
"{}##{}",
to_string(
Model::RTKLIB),
id).c_str(), ImGuiTreeNodeFlags_DefaultOpen))
241 ImGui::TextUnformatted(
"wf = √(a² + b²/sin(e))");
242 ImGui::SetNextItemWidth(ITEM_WIDTH);
248 ImGui::SetNextItemWidth(ITEM_WIDTH);
255 ImGui::TableNextColumn();
256 ImGui::SetNextItemOpen(
true, ImGuiCond_Always);
257 if (ImGui::CollapsingHeader(fmt::format(
"{}##{}",
to_string(
Model::SINE_SQRT),
id).c_str(), ImGuiTreeNodeFlags_DefaultOpen))
259 ImGui::TextUnformatted(
"wf = √(a² + b²/sin²(e))");
260 ImGui::SetNextItemWidth(ITEM_WIDTH);
266 ImGui::SetNextItemWidth(ITEM_WIDTH);
273 ImGui::TableNextColumn();
274 ImGui::SetNextItemOpen(
true, ImGuiCond_Always);
277 ImGui::TextUnformatted(
"wf = (a + b * exp(-e/e₀))");
278 ImGui::SetNextItemWidth(ITEM_WIDTH);
284 ImGui::SetNextItemWidth(ITEM_WIDTH);
290 ImGui::SetNextItemWidth(ITEM_WIDTH);
297 ImGui::TableNextColumn();
298 ImGui::SetNextItemOpen(
true, ImGuiCond_Always);
301 ImGui::TextUnformatted(
"wf = √(a + b * cosⁿ(e))");
302 ImGui::SetNextItemWidth(ITEM_WIDTH);
308 ImGui::SetNextItemWidth(ITEM_WIDTH);
314 ImGui::SetNextItemWidth(ITEM_WIDTH);