Added CalculateRadian/Angle

This commit is contained in:
hyzboy 2024-08-04 01:26:31 +08:00
parent ec35feb883
commit f8387f8b1f

View File

@ -418,5 +418,29 @@ namespace hgl
{
return glm::normalize(old_direction*(1.0f-alpha)+new_direction*alpha);
}
/**
*
*/
template<typename T>
inline float CalculateRadian(const T &a,const T &b)
{
float ma=glm::length(a);
float mb=glm::length(b);
if(IsNearlyZero(ma)||IsNearlyZero(mb))
return 0.0f;
return glm::clamp(glm::dot(a,b)/(ma*mb),-1.0f,1.0f);
}
/**
*
*/
template<typename T>
inline float CalculateAngle(const T &a,const T &b)
{
return std::acos(dotProduct/(ma*mb));
}
}//namespace hgl
#endif//HGL_ALGORITHM_MATH_VECTOR_INCLUDE