Refactored functionality into separate files

This commit is contained in:
2024-11-14 17:54:43 +01:00
parent efb58fba30
commit 1974d7bcc0
8 changed files with 241 additions and 40 deletions

23
objs/sphere.h Normal file
View File

@@ -0,0 +1,23 @@
#pragma once
#include <cuda_runtime.h>
#include <cmath>
#include "linalg/linalg.h"
struct Sphere {
Vec3 center;
double radius;
Vec3 color;
__device__ bool intersect(const Vec3& rayOrigin, const Vec3& rayDir, double& t) const {
Vec3 oc = rayOrigin - center;
double b = oc.dot(rayDir);
double c = oc.dot(oc) - radius * radius;
double h = b * b - c;
if (h < 0.0) return false;
h = sqrt(h);
t = -b - h;
return true;
}
};