1 Star 0 Fork 0

s1mplexu/RayTracing

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
hitable_list.h 813 Bytes
一键复制 编辑 原始数据 按行查看 历史
s1mplexu 提交于 2024-02-28 17:37 . Add Material
#ifndef HITABLELISTH
#define HITABLELISTH
#include "hitable.h"
class hitable_list : public hitable
{
public:
hitable_list() {}
hitable_list(hitable **l, int n)
{
list = l;
list_size = n;
}
virtual bool hit(
const ray &r, float tmin, float tmax, hit_record &rec) const;
hitable **list;
int list_size;
};
bool hitable_list::hit(
const ray &r, float t_min, float t_max, hit_record &rec) const
{
hit_record temp_rec;
bool hit_anything = false;
double closest_so_far = t_max;
for (int i = 0; i < list_size; i++)
{
if (list[i]->hit(r, t_min, closest_so_far, temp_rec))
{
hit_anything = true;
closest_so_far = temp_rec.t;
rec = temp_rec;
}
}
return hit_anything;
}
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/s1mplexu/ray-tracing.git
git@gitee.com:s1mplexu/ray-tracing.git
s1mplexu
ray-tracing
RayTracing
master

搜索帮助