init: create git repo
This commit is contained in:
38
include/objects.hpp
Normal file
38
include/objects.hpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include "./vec.hpp"
|
||||
#include "./raytrace.hpp"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
struct Plane : Renderable {
|
||||
v3 n;
|
||||
choice_t offset;
|
||||
|
||||
int surface_type;
|
||||
|
||||
Plane(const v3& n, choice_t offset, const Material& specs, int surface_type);
|
||||
Plane(const v3& n, choice_t offset, const Material& specs);
|
||||
|
||||
inline v3 normal(const v3& _) { return n; }
|
||||
int intersect(const v3& eye, const v3& dir, choice_t& hit_dist, v3& hit_loc, v3& hit_normal) override;
|
||||
};
|
||||
|
||||
struct Sphere : Renderable {
|
||||
v3 o;
|
||||
choice_t r;
|
||||
|
||||
int surface_type;
|
||||
|
||||
Sphere(const v3& origin, choice_t r, const Material& specs, int surface_type);
|
||||
Sphere(const v3& origin, choice_t r);
|
||||
|
||||
inline v3 normal(const v3& xyz) const { return (xyz - o).norm(); }
|
||||
int intersect(const v3& eye, const v3& dir, choice_t& hit_dist, v3& hit_loc, v3& hit_normal) override;
|
||||
int transmit(const v3& eye, const v3& dir, choice_t& hit_dist, v3& hit_loc, v3& hit_normal) override;
|
||||
};
|
||||
|
||||
struct Light : Sphere {
|
||||
Light(const v3& origin, choice_t r, const v3& colour);
|
||||
Light(const v3& origin, choice_t r, const Material& specs);
|
||||
};
|
||||
Reference in New Issue
Block a user