Euphoria
|
raytracer.h
Go to the documentation of this file.
std::shared_ptr< Material > create_metal_material(const Rgb &albedo, float fuzz)
Definition: raytracer.cc:342
std::shared_ptr< Object > create_sphere(const Sphere &sphere, const vec3f &position, std::shared_ptr< raytracer::Material > material)
Definition: raytracer.cc:81
void raytrace(Image *aimage, const raytracer::Scene &scene, int number_of_samples)
Definition: raytracer.cc:466
std::shared_ptr< Material > create_dielectric_material(const Rgb &albedo, float refractive_index)
Definition: raytracer.cc:357
std::shared_ptr< Material > create_diffuse_material(const Rgb &albedo)
Definition: raytracer.cc:329
Definition: argparse.cc:45
Definition: ray.h:9
Definition: image.h:29
Definition: sphere.h:6
Definition: raytracer.h:51
Collision(float aray_distance, const vec3f &aposition, const unit3f &anormal, std::shared_ptr< raytracer::Material > amaterial)
Definition: raytracer.cc:18
std::shared_ptr< raytracer::Material > material
Definition: raytracer.h:55
Definition: raytracer.h:31
virtual std::optional< ScatterResult > get_scattered(const UnitRay3f &ray, const Collision &hit, Random *random)=0
Material()=default
virtual ~Material()=default
Material(const Material &other)=delete
void operator=(const Material &)=delete
Material(Material &&other)=delete
void operator=(Material &&)=delete
Definition: raytracer.h:68
Object(const Object &)=delete
Object(Object &&)=delete
void operator=(Object &&)=delete
Object()=default
void operator=(const Object &)=delete
virtual std::optional< Collision > get_collision(const UnitRay3f &ray, const Range< float > &range) const =0
virtual ~Object()=default
Definition: raytracer.h:24
Definition: raytracer.h:112
std::vector< std::shared_ptr< Object > > objects
Definition: raytracer.h:113
std::optional< Collision > get_collision(const UnitRay3f &ray, const Range< float > &range) const
Definition: raytracer.cc:97
Definition: vec3.h:102