diff options
| author | Franklin Wei <me@fwei.tk> | 2019-02-11 12:52:45 -0500 |
|---|---|---|
| committer | Franklin Wei <me@fwei.tk> | 2019-02-11 12:52:45 -0500 |
| commit | 291bd26fd8920831181e8207e1fcdf544cd6cd6f (patch) | |
| tree | 58fc7bac5b018197590af66727ea71e11d00a737 /vec3.cpp | |
| parent | 8f49ddea98f32dd8e90416012c264d8cc5501bb0 (diff) | |
| download | fieldviz-291bd26fd8920831181e8207e1fcdf544cd6cd6f.zip fieldviz-291bd26fd8920831181e8207e1fcdf544cd6cd6f.tar.gz fieldviz-291bd26fd8920831181e8207e1fcdf544cd6cd6f.tar.bz2 fieldviz-291bd26fd8920831181e8207e1fcdf544cd6cd6f.tar.xz | |
Reorganize, use readline
Diffstat (limited to 'vec3.cpp')
| -rw-r--r-- | vec3.cpp | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/vec3.cpp b/vec3.cpp deleted file mode 100644 index e894a01..0000000 --- a/vec3.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* copy-pasted from: - * https://www.programming-techniques.com/2013/05/basic-euclidean-vector-operations-in-c.htm - */ - -#include <iostream> -#include <cmath> -#include "vec3.h" -using std::ostream; -vec3::vec3() { - v[0] = 0; - v[1] = 0; - v[2] = 0; -} -vec3::vec3(scalar x) { - v[0] = x; - v[1] = 0; - v[2] = 0; -} -vec3::vec3(scalar x, scalar y, scalar z) { - v[0] = x; - v[1] = y; - v[2] = z; -} -scalar &vec3::operator[](int index) { - return v[index]; -} -scalar vec3::operator[](int index) const { - return v[index]; -} -vec3 vec3::operator*(scalar scale) const { - return vec3(v[0] * scale, v[1] * scale, v[2] * scale); -} -vec3 vec3::operator/(scalar scale) const { - return vec3(v[0] / scale, v[1] / scale, v[2] / scale); -} -vec3 vec3::operator+(const vec3 &other) const{ - return vec3(v[0] + other.v[0], v[1] + other.v[1], v[2] + other.v[2]); -} -vec3 vec3::operator-(const vec3 &other) const { - return vec3(v[0] - other.v[0], v[1] - other.v[1], v[2] - other.v[2]); -} -vec3 vec3::operator-() const { - return vec3(-v[0], -v[1], -v[2]); -} -const vec3 &vec3::operator*=(scalar scale) { - v[0] *= scale; - v[1] *= scale; - v[2] *= scale; - return *this; -} -const vec3 &vec3::operator/=(scalar scale) { - v[0] /= scale; - v[1] /= scale; - v[2] /= scale; - return *this; -} -const vec3 &vec3::operator+=(const vec3 &other) { - v[0] += other.v[0]; - v[1] += other.v[1]; - v[2] += other.v[2]; - return *this; -} -const vec3 &vec3::operator-=(const vec3 &other) { - v[0] -= other.v[0]; - v[1] -= other.v[1]; - v[2] -= other.v[2]; - return *this; -} -scalar vec3::magnitude() const { - return sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]); -} -scalar vec3::magnitudeSquared() const { - return v[0] * v[0] + v[1] * v[1] + v[2] * v[2]; -} -vec3 vec3::normalize() const { - scalar m = sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]); - return vec3(v[0] / m, v[1] / m, v[2] / m); -} -scalar vec3::dot(const vec3 &other) const { - return v[0] * other.v[0] + v[1] * other.v[1] + v[2] * other.v[2]; -} -vec3 vec3::cross(const vec3 &other) const { - return vec3(v[1] * other.v[2] - v[2] * other.v[1], - v[2] * other.v[0] - v[0] * other.v[2], - v[0] * other.v[1] - v[1] * other.v[0]); -} -std::ostream &operator<<(std::ostream &output, const vec3 &v) { - return output << v[0] << " " << v[1] << " " << v[2]; -} - -std::istream &operator>>(std::istream &input, vec3 &v) -{ - if(!(input >> v[0] >> v[1] >> v[2])) - throw "error parsing vector"; - return input; -} - -vec3 operator*(scalar scale, const vec3 &v) -{ - return v * scale; -} |