diff --git a/server/gameserver/glmhelper.cc b/server/gameserver/glmhelper.cc index 93295ed1..00569adf 100644 --- a/server/gameserver/glmhelper.cc +++ b/server/gameserver/glmhelper.cc @@ -14,7 +14,17 @@ const glm::vec3 GlmHelper::DONW = glm::vec3(0.0f, 0.0f, 1.0f); void GlmHelper::RotateY(glm::vec3& v, float angle) { - + auto transform = + glm::rotate( + glm::mat4(1.0), + angle, + //glm::radians(angle), + glm::vec3(0.0f, 1.0f, 0.0f) + ); + glm::vec4 v1 = transform * glm::vec4(v.x, v.y, v.z, 0.0f); + v.x = v1.x; + v.y = v1.y; + v.z = v1.z; } void GlmHelper::Normalize(glm::vec3& v) @@ -33,17 +43,16 @@ void GlmHelper::Normalize(glm::vec3& v) float GlmHelper::Norm(const glm::vec3& v) { - + return glm::length(v); } - bool GlmHelper::IsZero(const glm::vec3& v) { - + return fabs(v.x) < 0.00001f && fabs(v.y) < 0.00001f && fabs(v.z) < 0.00001f; } - float GlmHelper::CalcAngle(const glm::vec3& v1, const glm::vec3& v2) { - + float angle = acos(glm::dot(v1, v2) / Norm(v1) / Norm(v2)); + return angle / 3.1415926f; }