From c3f12d9013a1d7cb8108a09cc1d77fe6db2da0da Mon Sep 17 00:00:00 2001 From: SepComet <202308010230@stu.csust.edu.cn> Date: Sun, 7 Jun 2026 21:37:36 +0800 Subject: [PATCH] =?UTF-8?q?Triangle::get=5FboundingBox=20=E6=B6=88?= =?UTF-8?q?=E9=99=A4=20std::min({a,b,c})=20=E6=9B=BF=E6=8D=A2=E4=B8=BA=20d?= =?UTF-8?q?etail::min3f/max3f?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Core/RenderData/Triangle.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Core/RenderData/Triangle.h b/src/Core/RenderData/Triangle.h index dae9c99..555a1f2 100644 --- a/src/Core/RenderData/Triangle.h +++ b/src/Core/RenderData/Triangle.h @@ -3,13 +3,18 @@ #include "BoundingBox.h" #include "Vertex.h" #include -#include #include #include #include namespace RenderData { + namespace detail + { + inline float min3f(float a, float b, float c) { return a < b ? (a < c ? a : c) : (b < c ? b : c); } + inline float max3f(float a, float b, float c) { return a > b ? (a > c ? a : c) : (b > c ? b : c); } + } + struct Triangle { Scene::Vertex v0; @@ -22,10 +27,10 @@ namespace RenderData { using namespace Math; - int32_t minX = static_cast(std::floor(std::min({ v0.position.x, v1.position.x, v2.position.x }))); - int32_t maxX = static_cast(std::ceil(std::max({ v0.position.x, v1.position.x, v2.position.x }))); - int32_t minY = static_cast(std::floor(std::min({ v0.position.y, v1.position.y, v2.position.y }))); - int32_t maxY = static_cast(std::ceil(std::max({ v0.position.y, v1.position.y, v2.position.y }))); + int32_t minX = static_cast(std::floor(detail::min3f(v0.position.x, v1.position.x, v2.position.x))); + int32_t maxX = static_cast(std::ceil(detail::max3f(v0.position.x, v1.position.x, v2.position.x))); + int32_t minY = static_cast(std::floor(detail::min3f(v0.position.y, v1.position.y, v2.position.y))); + int32_t maxY = static_cast(std::ceil(detail::max3f(v0.position.y, v1.position.y, v2.position.y))); Vector2Int min(minX, minY); Vector2Int max(maxX, maxY);