/// ray.h // ----------------------------------------------------- // [author] lv // [begin ] 2019.1 // [brief ] the ray-class for the ray-tracing project // from the 《ray tracing The Next week》 // ----------------------------------------------------- #pragma once #include "RTdef.h" namespace rt { class ray { public: ray() :_a{ rtvec() } , _b{ rtvec() } { } ray(const rtvec& a, const rtvec& b, const rtvar time = 0.) :_a(a) , _b(b) ,_time(time) { } ray(const ray& r) :_a(r._a) , _b(r._b) { } inline rtvec origin()const { return _a; } inline rtvec direction()const { return _b; } inline rtvar time()const { return _time; } inline rtvec go(const rtvar t)const { return _a + t * _b; } private: rtvec _a; rtvec _b; rtvar _time; }; }
【Ray Tracing The Next Week 超详解】 光线追踪2-1 (2)
内容版权声明:除非注明,否则皆为本站原创文章。