32 lines
762 B
C++
32 lines
762 B
C++
#ifndef SDLPP_HPP_GEOMETRY_VECTOR
|
|
#define SDLPP_HPP_GEOMETRY_VECTOR
|
|
|
|
#include "sdlpp_common.hpp"
|
|
#include "sdlpp_vector.hpp"
|
|
#include <cmath>
|
|
|
|
namespace SDLPP {
|
|
template<typename T>
|
|
double vecDotProduct( const Vec2D<T> &a, const Vec2D<T> &b ) {
|
|
return a * b;
|
|
}
|
|
template<typename T>
|
|
double vecLengthSquared( const Vec2D<T> &vec ) {
|
|
return vecDotProduct( vec, vec );
|
|
}
|
|
template<typename T>
|
|
double vecLength( const Vec2D<T> &vec ) {
|
|
return std::sqrt( vecLengthSquared( vec ) );
|
|
}
|
|
template<typename T>
|
|
double vecDistanceSquared( const Vec2D<T> &a, const Vec2D<T> &b ) {
|
|
return vecLengthSquared( a - b );
|
|
}
|
|
template<typename T>
|
|
double vecDistance( const Vec2D<T> &a, const Vec2D<T> &b ) {
|
|
return vecLength( a - b );
|
|
}
|
|
} // namespace SDLPP
|
|
|
|
#endif
|