#include "Ray.hxx"
-#define MAX_RECURSION_DEPTH 5
-
Ray::Ray()
: m_org(Vec3f()),
m_dir(Vec3f()),
- m_hit(0),
- m_level(MAX_RECURSION_DEPTH)
+ m_level(0),
+ m_density(1.0),
+ m_hit(0)
{
m_t = std::numeric_limits<float>::max();
}
-Ray::Ray(const Vec3f& org,
- const Vec3f& dir)
+Ray::Ray(const Vec3f& org,
+ const Vec3f& dir,
+ unsigned int recursion_level)
: m_org(org),
m_dir(dir),
- m_hit(0),
- m_level(MAX_RECURSION_DEPTH)
+ m_level(recursion_level),
+ m_density(1.0),
+ m_hit(0)
{
m_t = std::numeric_limits<float>::max();
}
m_t = r.m_t;
m_hit = r.m_hit;
m_level = r.m_level;
+ m_density = r.m_density;
}
Ray&
m_dir = r.m_dir;
m_t = r.m_t;
m_hit = r.m_hit;
+ m_level = r.m_level;
+ m_density = r.m_density;
}
return *this;
}
m_t = t;
}
-void
-Ray::setHit(Primitive * p)
-{
- m_hit = p;
-}
-
Primitive*
Ray::hit()
{
return m_hit;
}
-unsigned int
+void
+Ray::setHit(Primitive* p)
+{
+ m_hit = p;
+}
+
+unsigned int
Ray::recursionDepth() const
{
return m_level;
{
m_level = i;
}
+
+float
+Ray::indexOfRefraction() const
+{
+ return m_density;
+}
+
+void
+Ray::setIndexOfRefraction(float d)
+{
+ m_density = d;
+}