aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/color.hpp10
-rw-r--r--include/vec3.hpp51
2 files changed, 61 insertions, 0 deletions
diff --git a/include/color.hpp b/include/color.hpp
new file mode 100644
index 0000000..3acdf35
--- /dev/null
+++ b/include/color.hpp
@@ -0,0 +1,10 @@
+#ifndef __COLOR_HPP_
+#define __COLOR_HPP_
+
+#include <iostream>
+
+#include "vec3.hpp"
+
+void write_color(std::ostream& out, color pixel_color);
+
+#endif // !__COLOR_HPP_
diff --git a/include/vec3.hpp b/include/vec3.hpp
new file mode 100644
index 0000000..b76792b
--- /dev/null
+++ b/include/vec3.hpp
@@ -0,0 +1,51 @@
+#ifndef __VEC3_HPP_
+#define __VEC3_HPP_
+
+#include <iostream>
+#include <cmath>
+
+class vec3 {
+ public:
+ vec3();
+
+ vec3(double x, double y, double z);
+
+ void operator-();
+
+ vec3& operator+=(vec3& vec);
+
+ vec3& operator*=(double scale);
+
+ vec3& operator/=(double numerator);
+
+ double length();
+
+ double length_sq();
+
+ double dot(vec3& vec);
+
+ vec3 cross(vec3& vec);
+
+ vec3 unit_vector();
+
+ double x, y, z;
+};
+
+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*(double scale, vec3& u);
+
+vec3 operator/(vec3& u, double scale);
+
+std::ostream& operator<<(std::ostream& out, vec3& vec);
+
+using point3 = vec3;
+using color = vec3;
+
+#endif // !__VEC3_HPP_