#ifndef RAYTRYCPP_INFINITEPLANE_H #define RAYTRYCPP_INFINITEPLANE_H #include "RenderObject.h" #include namespace raytry { class InfinitePlane : public raytry::RenderObject { public: InfinitePlane(); InfinitePlane(float zLevel, QVector3D normalVec); ~InfinitePlane() override = default; [[nodiscard]] std::optional intersects(const Ray& ray) const override; [[nodiscard]] RenderMaterial material() const override; [[nodiscard]] QVector3D calculateNormal(QVector3D hitpoint) const override; private: float zLevel; QVector3D normalVec; }; }// namespace raytry #endif//RAYTRYCPP_INFINITEPLANE_H