diff --git a/RayTracer/camera/Hit.cpp b/RayTracer/camera/Hit.cpp index 1b51a6904b5b0913259817c8ed842a5a90ee5872..815fb7d5abf0d99ce4e6c978e17afaa2029b11a1 100644 --- a/RayTracer/camera/Hit.cpp +++ b/RayTracer/camera/Hit.cpp @@ -11,4 +11,9 @@ Hit::Hit(const util::Vec3& hit, const util::Vec3& n, float t, float Hit::scalar() const { return t; } +std::ostream& operator<<(std::ostream& os, const cam::Hit& rhs) { + os << "(" << rhs.point() << " " << rhs.normal() << " " << rhs.scalar() + << ")"; + return os; +} } // namespace cam \ No newline at end of file diff --git a/RayTracer/camera/Hit.h b/RayTracer/camera/Hit.h index 6e0775e3965ed820f5b700729186f06276e8643e..2d346b28e3958010e0439cc8571d09a44db36fe2 100644 --- a/RayTracer/camera/Hit.h +++ b/RayTracer/camera/Hit.h @@ -11,6 +11,8 @@ class Hit : public util::SurfacePoint { const std::shared_ptr<material::Material>& material); float scalar() const; + // Operator + friend std::ostream& operator<<(std::ostream& os, const cam::Hit& rhs); private: float t;