"RayTracer/shape/TriangleMesh.h" did not exist on "2da69a2b07b1fa1852ea0949f5ab7cf4d0c5890e"
Newer
Older
#include "Light.h"
#include "Shape.h"
class Sphere : public Light, public Shape {
public:
Sphere(float radius, const std::shared_ptr<material::Material>& material);
std::pair<float, float> texture_coordinates(
const util::Vec3& pos) const override;
util::Vec3 texture_coordinates(std::pair<float, float> texel) const;
util::AxisAlignedBoundingBox bounds() const override;
util::SurfacePoint sampleLight(const cam::Hit& h) const override;
util::Vec3 lightEmission(const util::SurfacePoint& p) const override;
virtual float lightPdf(const util::SurfacePoint& p,
const util::Vec3& dl_out) const override;
std::shared_ptr<material::Material> material;
const float radius;