#pragma once #include "../camera/CamObs.h" #include "../shape/Shape.h" #include "Sampler.h" class Scene : public util::Sampler { public: Scene(std::shared_ptr<shapes::Shape> group, cam::CamObs cam, size_t depth); util::Vec3 color(float x, float y) const override; util::Vec3 calculateRadiance(const cam::Ray& r, size_t depth) const; private: std::shared_ptr<shapes::Shape> group; cam::CamObs cam; size_t depth; };