cast cast what

This commit is contained in:
benkyd
2022-12-03 10:59:57 +00:00
parent 832a61dfd6
commit de032a27bd
4 changed files with 22 additions and 6 deletions

View File

@@ -50,7 +50,8 @@ public:
std::vector<Material*>* mats,
std::vector<int>* indicies) = 0;
virtual void submitQueue(std::queue<Ray*> queue) = 0;
// module keeps queue reference
virtual void submitQueue(std::vector<Ray*> queue) = 0;
virtual void pushtoQueue(Ray* ray) = 0;
inline void passHitCallback(HART_HIT_CALLBACK callback)

View File

@@ -1,5 +1,9 @@
#include "hart_module.hpp"
#include <renderer/ray_source.hpp>
#include <scene/scene.hpp>
#include <scene/mesh.hpp>
using namespace inferno;
HHM::HHM()
@@ -20,26 +24,35 @@ HARTModuleDirectory* HHM::getModuleDirectory()
void HHM::newScene(Scene* scene)
{
// extract mesh's
HARTModule* mod = mDirectory.getActiveModule();
std::vector<Mesh*> meshs = scene->getRenderables();
for (const auto* mesh : meshs) {
// mesh->getVerticies();
}
// mod->submitTris();
}
void HHM::notifySceneUpdate()
{
HARTModule* mod = mDirectory.getActiveModule();
// same again
}
void HHM::startTrace(RaySource* sourceScatter)
void HHM::startTrace(RayField* sourceScatter)
{
HARTModule* mod = mDirectory.getActiveModule();
mod->submitQueue(reinterpret_cast<std::vector<Ray*>>(sourceScatter));
}
void HHM::rayReturn(HitInfo* hit)
{
HARTModule* mod = mDirectory.getActiveModule();
}
void HHM::bounce(Ray* newRay)
{
HARTModule* mod = mDirectory.getActiveModule();
}

View File

@@ -9,7 +9,7 @@ namespace inferno {
class Scene;
class Ray;
class RaySource;
class RayField;
class HitInfo;
class HARTModule;
@@ -25,7 +25,7 @@ public:
void newScene(Scene* scene);
void notifySceneUpdate();
void startTrace(RaySource* sourceScatter);
void startTrace(RayField* sourceScatter);
void rayReturn(HitInfo* hit);
void bounce(Ray* newRay);

View File

@@ -42,6 +42,7 @@ void RayRenderer::setScene(Scene* scene)
delete mRaySource;
}
mRaySource = new RaySource(scene->getCamera());
mIface->newScene(scene);
}
void RayRenderer::setTargetSize(glm::ivec2 size)
@@ -70,6 +71,7 @@ void RayRenderer::prepare()
void RayRenderer::draw()
{
RayField startRays = mRaySource->getInitialRays(true);
mIface->startTrace(&startRays);
for (int x = 0; x < mRenderTargetSize.x; x++)
for (int y = 0; y < mRenderTargetSize.y; y++)