定义光线,书中已经有原理。
类声明:
#ifndef __RAY_HEADER__
#define __RAY_HEADER__
#include "geometry.h"
class Ray {
public:
Ray();
~Ray();
Ray(const Point3& ori , const Vector3& dir);
Ray(const Ray& r);
Ray& operator=(const Ray& r);
Point3 o;
Vector3 d;
};
#endif
类实现:
#include "pch.h"
#include "ray.h" //光线应该新建一个文件,这里是ray.h
Ray::Ray() :o(), d() {}
Ray::~Ray() {}
Ray::Ray(const Point3& ori, const Vector3& dir) : o(ori), d(dir) {}
Ray::Ray(const Ray& r) : o(r.o), d(r.d) {}
Ray& Ray::operator=(const Ray& r) {
if (this == &r)
return *this;
o = r.o;
d = r.d;
return *this;
}