added Vec3.orientedAngle()

This commit is contained in:
ZappoMan 2014-10-09 17:35:58 -07:00
parent 458475ee64
commit b50e996ec8
2 changed files with 8 additions and 1 deletions

View file

@ -9,6 +9,8 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
// //
#include <glm/gtx/vector_angle.hpp>
#include <QDebug> #include <QDebug>
#include "Vec3.h" #include "Vec3.h"
@ -37,7 +39,7 @@ glm::vec3 Vec3::sum(const glm::vec3& v1, const glm::vec3& v2) {
return v1 + v2; return v1 + v2;
} }
glm::vec3 Vec3::subtract(const glm::vec3& v1, const glm::vec3& v2) { glm::vec3 Vec3::subtract(const glm::vec3& v1, const glm::vec3& v2) {
return v1 - v2; return v1 - v2;
} }
float Vec3::length(const glm::vec3& v) { float Vec3::length(const glm::vec3& v) {
@ -48,6 +50,10 @@ float Vec3::distance(const glm::vec3& v1, const glm::vec3& v2) {
return glm::distance(v1, v2); return glm::distance(v1, v2);
} }
float Vec3::orientedAngle(const glm::vec3& v1, const glm::vec3& v2, const glm::vec3& v3) {
return glm::degrees(glm::orientedAngle(glm::normalize(v1), glm::normalize(v2), glm::normalize(v3)));
}
glm::vec3 Vec3::normalize(const glm::vec3& v) { glm::vec3 Vec3::normalize(const glm::vec3& v) {
return glm::normalize(v); return glm::normalize(v);
} }

View file

@ -34,6 +34,7 @@ public slots:
glm::vec3 subtract(const glm::vec3& v1, const glm::vec3& v2); glm::vec3 subtract(const glm::vec3& v1, const glm::vec3& v2);
float length(const glm::vec3& v); float length(const glm::vec3& v);
float distance(const glm::vec3& v1, const glm::vec3& v2); float distance(const glm::vec3& v1, const glm::vec3& v2);
float orientedAngle(const glm::vec3& v1, const glm::vec3& v2, const glm::vec3& v3);
glm::vec3 normalize(const glm::vec3& v); glm::vec3 normalize(const glm::vec3& v);
void print(const QString& lable, const glm::vec3& v); void print(const QString& lable, const glm::vec3& v);
bool equal(const glm::vec3& v1, const glm::vec3& v2); bool equal(const glm::vec3& v1, const glm::vec3& v2);