|
@@ -6034,41 +6034,39 @@ void ImGui::ShowStyleEditor(ImGuiStyle* ref)
|
|
|
if (style.CurveTessellationTol < 0.10f) style.CurveTessellationTol = 0.10f;
|
|
|
|
|
|
// When editing the "Circle Segment Max Error" value, draw a preview of its effect on auto-tessellated circles.
|
|
|
- ImGui::DragFloat("Circle Tessellation Max Error", &style.CircleTessellationMaxError , 0.005f, 0.10f, 10.0f, "%.2f", ImGuiSliderFlags_AlwaysClamp);
|
|
|
+ ImGui::DragFloat("Circle Tessellation Max Error", &style.CircleTessellationMaxError , 0.005f, 0.10f, 5.0f, "%.2f", ImGuiSliderFlags_AlwaysClamp);
|
|
|
if (ImGui::IsItemActive())
|
|
|
{
|
|
|
ImGui::SetNextWindowPos(ImGui::GetCursorScreenPos());
|
|
|
ImGui::BeginTooltip();
|
|
|
- ImGui::TextUnformatted("N - number of segments");
|
|
|
- ImGui::TextUnformatted("R - radius");
|
|
|
+ ImGui::TextUnformatted("(R = radius, N = number of segments)");
|
|
|
ImGui::Spacing();
|
|
|
ImDrawList* draw_list = ImGui::GetWindowDrawList();
|
|
|
- const float min_widget_width = ImGui::CalcTextSize("N: MM\nR: MM.MM").x;
|
|
|
- float RAD_MIN = 5.0f, RAD_MAX = 80.0f;
|
|
|
- for (int n = 0; n < 9; n++)
|
|
|
+ const float min_widget_width = ImGui::CalcTextSize("N: MMM\nR: MMM").x;
|
|
|
+ for (int n = 0; n < 8; n++)
|
|
|
{
|
|
|
- const float rad = RAD_MIN + (RAD_MAX - RAD_MIN) * (float)n / (9.0f - 1.0f);
|
|
|
-
|
|
|
- const int segment_count = draw_list->_CalcCircleAutoSegmentCount(rad);
|
|
|
+ const float RAD_MIN = 5.0f;
|
|
|
+ const float RAD_MAX = 70.0f;
|
|
|
+ const float rad = RAD_MIN + (RAD_MAX - RAD_MIN) * (float)n / (8.0f - 1.0f);
|
|
|
|
|
|
ImGui::BeginGroup();
|
|
|
- ImGui::Text("R: %.f", rad);
|
|
|
- ImGui::Text("N: %d", segment_count);
|
|
|
|
|
|
- const float circle_diameter = rad * 2.0f;
|
|
|
- const float canvas_width = IM_MAX(min_widget_width, circle_diameter);
|
|
|
- const float offset_x = floorf(canvas_width * 0.5f);
|
|
|
- const float offset_y = floorf(RAD_MAX);
|
|
|
- const ImVec2 p = ImGui::GetCursorScreenPos();
|
|
|
- draw_list->AddCircle(ImVec2(p.x + offset_x, p.y + offset_y), rad, ImGui::GetColorU32(ImGuiCol_Text));
|
|
|
+ ImGui::Text("R: %.f\nN: %d", rad, draw_list->_CalcCircleAutoSegmentCount(rad));
|
|
|
+
|
|
|
+ const float canvas_width = IM_MAX(min_widget_width, rad * 2.0f);
|
|
|
+ const float offset_x = floorf(canvas_width * 0.5f);
|
|
|
+ const float offset_y = floorf(RAD_MAX);
|
|
|
|
|
|
+ const ImVec2 p1 = ImGui::GetCursorScreenPos();
|
|
|
+ draw_list->AddCircle(ImVec2(p1.x + offset_x, p1.y + offset_y), rad, ImGui::GetColorU32(ImGuiCol_Text));
|
|
|
ImGui::Dummy(ImVec2(canvas_width, RAD_MAX * 2));
|
|
|
- ImGui::Text("N: %d", segment_count);
|
|
|
|
|
|
- const ImVec2 p2 = ImGui::GetCursorScreenPos();
|
|
|
+ /*
|
|
|
+ const ImVec2 p2 = ImGui::GetCursorScreenPos();
|
|
|
draw_list->AddCircleFilled(ImVec2(p2.x + offset_x, p2.y + offset_y), rad, ImGui::GetColorU32(ImGuiCol_Text));
|
|
|
-
|
|
|
ImGui::Dummy(ImVec2(canvas_width, RAD_MAX * 2));
|
|
|
+ */
|
|
|
+
|
|
|
ImGui::EndGroup();
|
|
|
ImGui::SameLine();
|
|
|
}
|