aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/color.hpp2
-rw-r--r--include/ray.hpp17
-rw-r--r--include/vec3.hpp18
3 files changed, 28 insertions, 9 deletions
diff --git a/include/color.hpp b/include/color.hpp
index 3acdf35..f300e76 100644
--- a/include/color.hpp
+++ b/include/color.hpp
@@ -5,6 +5,6 @@
#include "vec3.hpp"
-void write_color(std::ostream& out, color pixel_color);
+void write_color(std::ostream& out, const color& pixel_color);
#endif // !__COLOR_HPP_
diff --git a/include/ray.hpp b/include/ray.hpp
new file mode 100644
index 0000000..3f8542b
--- /dev/null
+++ b/include/ray.hpp
@@ -0,0 +1,17 @@
+#ifndef __RAY_HPP_
+#define __RAY_HPP_
+
+#include "vec3.hpp"
+
+class ray {
+ public:
+
+ ray(const point3& origin, const vec3& direction);
+
+ point3 at(double t);
+
+ point3 origin;
+ vec3 direction;
+};
+
+#endif // !__RAY_HPP_
diff --git a/include/vec3.hpp b/include/vec3.hpp
index b76792b..801b0b5 100644
--- a/include/vec3.hpp
+++ b/include/vec3.hpp
@@ -26,24 +26,26 @@ class vec3 {
vec3 cross(vec3& vec);
- vec3 unit_vector();
+ vec3 unit();
double x, y, z;
};
-vec3 operator+(vec3& u, vec3& v);
+vec3 lerp(vec3 u, vec3 v, double t);
-vec3 operator-(vec3& u, vec3& v);
+vec3 operator+(vec3 u, vec3 v);
-vec3 operator*(vec3& u, vec3& v);
+vec3 operator-(vec3 u, vec3 v);
-vec3 operator*(vec3& u, double scale);
+vec3 operator*(vec3 u, vec3 v);
-vec3 operator*(double scale, vec3& u);
+vec3 operator*(vec3 u, double scale);
-vec3 operator/(vec3& u, double scale);
+vec3 operator*(double scale, vec3 u);
-std::ostream& operator<<(std::ostream& out, vec3& vec);
+vec3 operator/(vec3 u, double scale);
+
+std::ostream& operator<<(std::ostream& out, vec3 vec);
using point3 = vec3;
using color = vec3;