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 "BoundingBox.h"
|
||||||
#include "Vertex.h"
|
#include "Vertex.h"
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <algorithm>
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <Vector3.h>
|
#include <Vector3.h>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
|
||||||
namespace RenderData
|
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
|
struct Triangle
|
||||||
{
|
{
|
||||||
Scene::Vertex v0;
|
Scene::Vertex v0;
|
||||||
|
|
@ -22,10 +27,10 @@ namespace RenderData
|
||||||
{
|
{
|
||||||
using namespace Math;
|
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 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(std::max({ 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(std::min({ v0.position.y, v1.position.y, v2.position.y })));
|
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(std::max({ 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 min(minX, minY);
|
||||||
Vector2Int max(maxX, maxY);
|
Vector2Int max(maxX, maxY);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue