aboutsummaryrefslogtreecommitdiff
path: root/vec3.h
diff options
context:
space:
mode:
authorFranklin Wei <me@fwei.tk>2019-02-02 23:02:12 -0500
committerFranklin Wei <me@fwei.tk>2019-02-02 23:02:12 -0500
commit79a83c2cbee5adca798b8976b2a39ecd6ffd39af (patch)
tree379523f81d3e7dc02c62ca1505376b8d0bc6b30e /vec3.h
downloadfieldviz-79a83c2cbee5adca798b8976b2a39ecd6ffd39af.zip
fieldviz-79a83c2cbee5adca798b8976b2a39ecd6ffd39af.tar.gz
fieldviz-79a83c2cbee5adca798b8976b2a39ecd6ffd39af.tar.bz2
fieldviz-79a83c2cbee5adca798b8976b2a39ecd6ffd39af.tar.xz
initial commit
basic B field integrator
Diffstat (limited to 'vec3.h')
-rw-r--r--vec3.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/vec3.h b/vec3.h
new file mode 100644
index 0000000..1f01098
--- /dev/null
+++ b/vec3.h
@@ -0,0 +1,27 @@
+#include <iostream>
+class vec3 {
+ public:
+ double v[3];
+ public:
+ vec3();
+ vec3(double x);
+ vec3(double x, double y, double z);
+ double &operator[](int index);
+ double operator[](int index) const;
+ vec3 operator*(double scale) const;
+ vec3 operator/(double scale) const;
+ vec3 operator+(const vec3 &other) const;
+ vec3 operator-(const vec3 &other) const;
+ vec3 operator-() const;
+ const vec3 &operator*=(double scale);
+ const vec3 &operator/=(double scale);
+ const vec3 &operator+=(const vec3 &other);
+ const vec3 &operator-=(const vec3 &other);
+ double magnitude() const;
+ double magnitudeSquared() const;
+ vec3 normalize() const;
+ double dot(const vec3 &other) const;
+ vec3 cross(const vec3 &other) const;
+};
+
+std::ostream &operator<<(std::ostream &output, const vec3 &v);