X-Git-Url: https://git.rohieb.name/MicroTrace.git/blobdiff_plain/0e3446ceb6fd6db0cb292671f37b46daaa2aed5b..7dc19699bd3ae76b3802dfb43854fd88fea3ffc3:/Ray.hxx diff --git a/Ray.hxx b/Ray.hxx index f37425c..0ec9f76 100644 --- a/Ray.hxx +++ b/Ray.hxx @@ -9,7 +9,7 @@ class Ray { public: Ray(); - Ray(const Vec3f& org, const Vec3f& dir); + Ray(const Vec3f& org, const Vec3f& dir, unsigned int recursion_level = 0); ~Ray(); Ray(const Ray& r); Ray& operator=(const Ray& r); @@ -19,11 +19,14 @@ public: float t() const; Primitive* hit(); unsigned int recursionDepth() const; + float indexOfRefraction() const; void setOrigin(const Vec3f& o); void setDir(const Vec3f& d); void setT(float t); + void setHit(Primitive* p); void setRecursionDepth(unsigned int i); + void setIndexOfRefraction(float ior); private: Vec3f m_org; //!< ray origin @@ -31,7 +34,8 @@ private: float m_t; //!< current/maximum hit distance unsigned int m_level; //!< level of recursion - + float m_density; //!< index of refraction + Primitive* m_hit; };