diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2020-12-20 01:18:38 +0100 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2020-12-20 01:18:38 +0100 |
| commit | 2d8e108dd6811bcf55bed28f1855a36077f8c674 (patch) | |
| tree | 4f4c33f79322b1f8074b3a2c5ec15d7b81cb2c26 /include | |
| parent | 0aabf36c6bf5aa68846d055e310171da5b2b8859 (diff) | |
Add vector class
Diffstat (limited to 'include')
| -rw-r--r-- | include/color.hpp | 10 | ||||
| -rw-r--r-- | include/vec3.hpp | 51 |
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_ |
