Triangle::get_boundingBox 消除 std::min({a,b,c}) 替换为 detail::min3f/max3f
This commit is contained in:
parent
a8630c720e
commit
c3f12d9013
|
|
@ -3,13 +3,18 @@
|
|||
#include "BoundingBox.h"
|
||||
#include "Vertex.h"
|
||||
#include <cstdint>
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <Vector3.h>
|
||||
#include <cstdlib>
|
||||
|
||||
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<int32_t>(std::floor(std::min({ v0.position.x, v1.position.x, v2.position.x })));
|
||||
int32_t maxX = static_cast<int32_t>(std::ceil(std::max({ v0.position.x, v1.position.x, v2.position.x })));
|
||||
int32_t minY = static_cast<int32_t>(std::floor(std::min({ v0.position.y, v1.position.y, v2.position.y })));
|
||||
int32_t maxY = static_cast<int32_t>(std::ceil(std::max({ v0.position.y, v1.position.y, v2.position.y })));
|
||||
int32_t minX = static_cast<int32_t>(std::floor(detail::min3f(v0.position.x, v1.position.x, v2.position.x)));
|
||||
int32_t maxX = static_cast<int32_t>(std::ceil(detail::max3f(v0.position.x, v1.position.x, v2.position.x)));
|
||||
int32_t minY = static_cast<int32_t>(std::floor(detail::min3f(v0.position.y, v1.position.y, v2.position.y)));
|
||||
int32_t maxY = static_cast<int32_t>(std::ceil(detail::max3f(v0.position.y, v1.position.y, v2.position.y)));
|
||||
|
||||
Vector2Int min(minX, minY);
|
||||
Vector2Int max(maxX, maxY);
|
||||
|
|
|
|||
Loading…
Reference in New Issue