#pragma once #include "Shape.h" namespace shapes { class Sphere : public Shape { public: Sphere(float radius, const std::shared_ptr<material::Material>& material); std::shared_ptr<cam::Hit> intersect(const cam::Ray& r) const override; util::AxisAlignedBoundingBox bounds() const override; private: std::shared_ptr<material::Material> material; const float radius; }; } // namespace shapes