2#include "core/Scene.hpp"
3#include "interfaces/IHittable.hpp"
8namespace Raytracer::Shapes
16 std::shared_ptr<Interfaces::IMaterial> _material;
24 std::shared_ptr<Interfaces::IMaterial> material);
35 std::shared_ptr<Interfaces::IMaterial> material);
Definition Payload.hpp:11
Definition IHittable.hpp:11
bool hit(const Core::Ray &ray, Utils::Interval interval, Core::Payload &payload) const override
Check if the ray hits the quad.
Definition Quad.cpp:43
virtual bool isInterior(double a, double b, Core::Payload &payload) const
Check if the point is inside the quad.
Definition Quad.cpp:113
virtual void setBBox()
Set the bounding box of the quad.
Definition Quad.cpp:91
Utils::AxisAlignedBBox boundingBox() const override
Get the bounding box of the quad.
Definition Quad.cpp:81
Quad(const Utils::Point3 &Q, const Utils::Vec3 &u, const Utils::Vec3 &v, std::shared_ptr< Interfaces::IMaterial > material)
Construct a new Quad object.
Definition Quad.cpp:18
Definition AxisAlignedBBox.hpp:10
Definition Interval.hpp:9