Ray::Ray()
: m_org(Vec3f()),
m_dir(Vec3f()),
+ 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)
+ const Vec3f& dir,
+ unsigned int recursion_level)
: m_org(org),
m_dir(dir),
+ m_level(recursion_level),
+ m_density(1.0),
m_hit(0)
{
m_t = std::numeric_limits<float>::max();
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;
}
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;
}
return m_hit;
}
+void
+Ray::setHit(Primitive* p)
+{
+ m_hit = p;
+}
+
unsigned int
Ray::recursionDepth() const
{
{
m_level = i;
}
+
+float
+Ray::indexOfRefraction() const
+{
+ return m_density;
+}
+
+void
+Ray::setIndexOfRefraction(float d)
+{
+ m_density = d;
+}