#ifndef RAYTRYCPP_SCENE_H #define RAYTRYCPP_SCENE_H #include "Camera.h" #include "viewerwindow.h" #include "InfinitePlane.h" #include "KDNode.h" #include "KDTree.h" #include "Sphere.h" #include "Triangle.h" #include namespace raytry { class Scene { public: Scene(); ~Scene() = default; void render(ViewerWindow& window, std::function updateImage); private: std::list, float>> findIntersections(const raytry::Ray &ray); void rayTrace(const Ray& ray, unsigned int depth, QColor& color); static const constexpr unsigned int maxDepth{1}; static const constexpr float globalIllumination{0.5f}; static const constexpr QColor backgroundColor{177, 190, 223}; static const constexpr QVector3D pointLight{-10, -10, 10}; size_t triangleIntersections{0}; Camera camera{}; InfinitePlane ground{}; std::array spheres{}; std::array triangles{}; std::vector teapotMesh{}; std::vector> background{}; KD::Tree foregroundTree{}; }; }// namespace raytry #endif//RAYTRYCPP_SCENE_H