1#include "interfaces/IHittable.hpp"
2#include "interfaces/ITexture.hpp"
7namespace Raytracer::Effects
11 std::shared_ptr<Interfaces::IHittable> _boundary;
12 std::shared_ptr<Interfaces::IMaterial> _phaseFunction;
16 Smoke(std::shared_ptr<Interfaces::IHittable> boundary,
double density,
17 std::shared_ptr<Interfaces::ITexture> texture);
18 Smoke(std::shared_ptr<Interfaces::IHittable> boundary,
double density,
Definition Payload.hpp:11
bool hit(const Core::Ray &ray, Utils::Interval interval, Core::Payload &payload) const override
Check if the ray hits the smoke.
Definition Smoke.cpp:63
Smoke(std::shared_ptr< Interfaces::IHittable > boundary, double density, std::shared_ptr< Interfaces::ITexture > texture)
Construct a new Smoke object.
Definition Smoke.cpp:18
Utils::AxisAlignedBBox boundingBox() const override
Get the bounding box of the smoke.
Definition Smoke.cpp:117
Definition IHittable.hpp:11
Definition AxisAlignedBBox.hpp:10
Definition Interval.hpp:9