这个类主要是用于检测光线是否穿过球体。是核心,所有的碰撞都继承于这个类,书上也阐述了很多。详细就看书。

类定义:

#pragma once
#ifndef __TRACER_HEADER__
#define __TRACER_HEADER__

#include "../../Types.h"

class World;
class Ray;
class RGBColor;

class Tracer {
public:
	Tracer(World* wr_ptr);
	virtual ~Tracer();
	virtual RGBColor trace_ray(const Ray& ray) const;
	virtual RGBColor trace_ray(const Ray ray, const integer depth) const;
protected:
	World* world_ptr;
private:
	Tracer();
};
#endif  

类实现:

#include "pch.h"
#include "tracer.h"
#include "../utilities/world.h" //这个文件最后实现,因为时刻都在扩展,所以World类时刻都在修改

Tracer::Tracer(World* wr_ptr) :world_ptr(wr_ptr) {}

Tracer::~Tracer() {}

RGBColor Tracer::trace_ray(const Ray& ray) const {
	return RGBColor();
}

RGBColor Tracer::trace_ray(const Ray ray, const integer depth) const {
	return RGBColor();
}

  

posted on 2020-03-31 04:03  dalgleish  阅读(341)  评论(0编辑  收藏  举报