More boilerplate

This commit is contained in:
Dynamitos
2025-01-24 18:21:34 +01:00
parent a5950cd471
commit fff6d19bb2
12 changed files with 169 additions and 17 deletions
+34 -1
View File
@@ -1,5 +1,6 @@
#include "BVH.h"
#include <list>
#include <algorithm>
#include <ranges>
void BVH::addModel(PModel model, glm::mat4 transform)
{
@@ -54,3 +55,35 @@ void BVH::generate()
}
hierarchy = std::move(pendingNodes[0]);
}
std::optional<IntersectionInfo> BVH::traceRay(Ray ray)
{
}
std::vector<IntersectionInfo> BVH::generateIntersections(PNode& currentNode, Ray ray)
{
if(!currentNode->aabb.intersects(ray))
{
return {};
}
if(currentNode->model != nullptr)
{
auto result = currentNode->model->intersect(ray);
if(result.has_value())
{
return {*result};
}
else
{
return {};
}
}
auto leftResults = generateIntersections(currentNode->left, ray);
auto rightResults = generateIntersections(currentNode->right, ray);
for(auto it : rightResults)
{
leftResults.push_back(it);
}
return leftResults;
}