This repository has been archived on 2024-12-30. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
2024CG-project-render/include/Sphere.h
github-classroom[bot] 5d6a4935ec
Initial commit
2024-09-26 09:17:55 +00:00

27 lines
647 B
C++

#ifndef SPHERE_H
#define SPHERE_H
#include "Sphere.h"
#include "Object.h"
#include <Eigen/Core>
class Sphere : public Object
{
public:
Eigen::Vector3d center;
double radius;
public:
// Intersect sphere with ray.
//
// Inputs:
// Ray ray to intersect with
// min_t minimum parametric distance to consider
// Outputs:
// t first intersection at ray.origin + t * ray.direction
// n surface normal at point of intersection
// Returns iff there a first intersection is found.
bool intersect(
const Ray & ray, const double min_t, double & t, Eigen::Vector3d & n) const;
};
#endif