aboutsummaryrefslogtreecommitdiff
path: root/src/vec3.cpp
diff options
context:
space:
mode:
authorFranklin Wei <me@fwei.tk>2019-05-30 23:03:58 -0400
committerFranklin Wei <me@fwei.tk>2019-05-30 23:03:58 -0400
commitf9be2ace4ca871d7ad68c1a4dbdcff87511d838b (patch)
tree56dee4cf1b75b22f990c7aa169c7c57bb1116c3b /src/vec3.cpp
parentad380a22d4fc6b0fbd54388b79c93e736ff90e03 (diff)
downloadlibfml-f9be2ace4ca871d7ad68c1a4dbdcff87511d838b.zip
libfml-f9be2ace4ca871d7ad68c1a4dbdcff87511d838b.tar.gz
libfml-f9be2ace4ca871d7ad68c1a4dbdcff87511d838b.tar.bz2
libfml-f9be2ace4ca871d7ad68c1a4dbdcff87511d838b.tar.xz
Add some useful stuff
Diffstat (limited to 'src/vec3.cpp')
-rw-r--r--src/vec3.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/vec3.cpp b/src/vec3.cpp
index bf0b021..c03bdd9 100644
--- a/src/vec3.cpp
+++ b/src/vec3.cpp
@@ -102,4 +102,19 @@ namespace fml{
{
return v * scale;
}
+
+ vec3 vec3::rotateby(const quat &rotquat) const
+ {
+ return rotquat * (*this) * rotquat.conjugate();
+ }
+
+#define EPS 1e-5
+#define ISZERO(a) ((fabs((a)) < EPS))
+
+ vec3 vec3::any_unit_normal(const vec3 &v)
+ {
+ if(ISZERO(v[0]) && ISZERO(v[1]))
+ return vec3(1, 0, 0);
+ return vec3(-v[1], v[0], 0).normalize();
+ }
}