mirror of
https://github.com/orange-cpp/omath.git
synced 2026-04-18 19:03:28 +00:00
fixed bug
This commit is contained in:
@@ -18,8 +18,7 @@ namespace omath::hud
|
|||||||
virtual void add_polyline(const std::span<const Vector2<float>>& vertexes, const Color& color,
|
virtual void add_polyline(const std::span<const Vector2<float>>& vertexes, const Color& color,
|
||||||
float thickness) = 0;
|
float thickness) = 0;
|
||||||
|
|
||||||
virtual void add_filled_polyline(const std::span<const Vector2<float>>& vertexes, const Color& color,
|
virtual void add_filled_polyline(const std::span<const Vector2<float>>& vertexes, const Color& color) = 0;
|
||||||
float thickness) = 0;
|
|
||||||
|
|
||||||
virtual void add_rectangle(const Vector2<float>& min, const Vector2<float>& max, const Color& color) = 0;
|
virtual void add_rectangle(const Vector2<float>& min, const Vector2<float>& max, const Color& color) = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace omath::hud
|
|||||||
void add_line(const Vector2<float>& line_start, const Vector2<float>& line_end, const Color& color,
|
void add_line(const Vector2<float>& line_start, const Vector2<float>& line_end, const Color& color,
|
||||||
float thickness) override;
|
float thickness) override;
|
||||||
void add_polyline(const std::span<const Vector2<float>>& vertexes, const Color& color, float thickness) override;
|
void add_polyline(const std::span<const Vector2<float>>& vertexes, const Color& color, float thickness) override;
|
||||||
void add_filled_polyline(const std::span<const Vector2<float>>& vertexes, const Color& color, float thickness) override;
|
void add_filled_polyline(const std::span<const Vector2<float>>& vertexes, const Color& color) override;
|
||||||
void add_rectangle(const Vector2<float>& min, const Vector2<float>& max, const Color& color) override;
|
void add_rectangle(const Vector2<float>& min, const Vector2<float>& max, const Color& color) override;
|
||||||
void add_filled_rectangle(const Vector2<float>& min, const Vector2<float>& max, const Color& color) override;
|
void add_filled_rectangle(const Vector2<float>& min, const Vector2<float>& max, const Color& color) override;
|
||||||
void add_text(const Vector2<float>& position, const Color& color, const std::string_view& text) override;
|
void add_text(const Vector2<float>& position, const Color& color, const std::string_view& text) override;
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ namespace omath::hud
|
|||||||
const auto points = m_canvas.as_array();
|
const auto points = m_canvas.as_array();
|
||||||
|
|
||||||
m_renderer->add_polyline({points.data(), points.size()}, box_color, thickness);
|
m_renderer->add_polyline({points.data(), points.size()}, box_color, thickness);
|
||||||
m_renderer->add_filled_polyline({points.data(), points.size()}, fill_color, thickness);
|
|
||||||
|
if (fill_color.value().w > 0.f)
|
||||||
|
m_renderer->add_filled_polyline({points.data(), points.size()}, fill_color);
|
||||||
}
|
}
|
||||||
void EntityOverlay::add_cornered_2d_box(const Color& box_color, const Color& fill_color,
|
void EntityOverlay::add_cornered_2d_box(const Color& box_color, const Color& fill_color,
|
||||||
const float corner_ratio_len, const float thickness) const
|
const float corner_ratio_len, const float thickness) const
|
||||||
@@ -173,11 +175,11 @@ namespace omath::hud
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EntityOverlay::add_centered_bottom_label(const Color& color, const float offset, const bool outlined,
|
void EntityOverlay::add_centered_bottom_label(const Color& color, const float offset, const bool outlined,
|
||||||
const std::string_view& text)
|
const std::string_view& text)
|
||||||
{
|
{
|
||||||
const auto text_size = m_renderer->calc_text_size(text);
|
const auto text_size = m_renderer->calc_text_size(text);
|
||||||
const auto box_center_x = m_canvas.bottom_left_corner.x
|
const auto box_center_x =
|
||||||
+ (m_canvas.bottom_right_corner.x - m_canvas.bottom_left_corner.x) / 2.f;
|
m_canvas.bottom_left_corner.x + (m_canvas.bottom_right_corner.x - m_canvas.bottom_left_corner.x) / 2.f;
|
||||||
const auto pos = Vector2<float>{box_center_x - text_size.x / 2.f, m_text_cursor_bottom.y + offset};
|
const auto pos = Vector2<float>{box_center_x - text_size.x / 2.f, m_text_cursor_bottom.y + offset};
|
||||||
|
|
||||||
if (outlined)
|
if (outlined)
|
||||||
@@ -192,8 +194,8 @@ namespace omath::hud
|
|||||||
const std::string_view& text)
|
const std::string_view& text)
|
||||||
{
|
{
|
||||||
const auto text_size = m_renderer->calc_text_size(text);
|
const auto text_size = m_renderer->calc_text_size(text);
|
||||||
const auto box_center_x = m_canvas.top_left_corner.x
|
const auto box_center_x =
|
||||||
+ (m_canvas.top_right_corner.x - m_canvas.top_left_corner.x) / 2.f;
|
m_canvas.top_left_corner.x + (m_canvas.top_right_corner.x - m_canvas.top_left_corner.x) / 2.f;
|
||||||
|
|
||||||
m_text_cursor_top.y -= text_size.y;
|
m_text_cursor_top.y -= text_size.y;
|
||||||
const auto pos = Vector2<float>{box_center_x - text_size.x / 2.f, m_text_cursor_top.y - offset};
|
const auto pos = Vector2<float>{box_center_x - text_size.x / 2.f, m_text_cursor_top.y - offset};
|
||||||
|
|||||||
@@ -25,12 +25,10 @@ namespace omath::hud
|
|||||||
ImDrawFlags_Closed, thickness);
|
ImDrawFlags_Closed, thickness);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImguiHudRenderer::add_filled_polyline(const std::span<const Vector2<float>>& vertexes, const Color& color,
|
void ImguiHudRenderer::add_filled_polyline(const std::span<const Vector2<float>>& vertexes, const Color& color)
|
||||||
const float thickness)
|
|
||||||
{
|
{
|
||||||
ImGui::GetBackgroundDrawList()->AddPolyline(reinterpret_cast<const ImVec2*>(vertexes.data()),
|
ImGui::GetBackgroundDrawList()->AddConvexPolyFilled(reinterpret_cast<const ImVec2*>(vertexes.data()),
|
||||||
static_cast<int>(vertexes.size()), color.to_im_color(),
|
static_cast<int>(vertexes.size()), color.to_im_color());
|
||||||
ImDrawFlags_Closed, thickness);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImguiHudRenderer::add_rectangle(const Vector2<float>& min, const Vector2<float>& max, const Color& color)
|
void ImguiHudRenderer::add_rectangle(const Vector2<float>& min, const Vector2<float>& max, const Color& color)
|
||||||
|
|||||||
Reference in New Issue
Block a user