38 lines
674 B
C++
38 lines
674 B
C++
#ifndef HOLESOME_VECTOR_UTILS_HPP
|
|
#define HOLESOME_VECTOR_UTILS_HPP
|
|
|
|
#include <SFML/System/Vector2.hpp>
|
|
#include <valarray>
|
|
|
|
template<typename T>
|
|
float length(sf::Vector2<T> v)
|
|
{
|
|
return std::sqrt(pow(v.x, 2) + pow(v.y, 2));
|
|
}
|
|
|
|
template<typename T>
|
|
sf::Vector2<T> normalize(sf::Vector2<T> v)
|
|
{
|
|
auto vectorLength = length(v);
|
|
|
|
if (vectorLength != 0)
|
|
{
|
|
v.x /= vectorLength;
|
|
v.y /= vectorLength;
|
|
}
|
|
return v;
|
|
}
|
|
|
|
template<typename T>
|
|
sf::Vector2<T> abs(sf::Vector2<T> v)
|
|
{
|
|
return sf::Vector2<T>(std::abs(v.x), std::abs(v.y));
|
|
}
|
|
|
|
template<typename T>
|
|
T sum(sf::Vector2<T> v)
|
|
{
|
|
return v.x + v.y;
|
|
}
|
|
|
|
#endif //HOLESOME_VECTOR_UTILS_HPP
|