vector math: add implementation of Length and Normalize
This commit is contained in:
		@@ -186,6 +186,18 @@ Vec2<T> operator*(const V& f, const Vec2<T>& vec) {
 | 
			
		||||
 | 
			
		||||
typedef Vec2<float> Vec2f;
 | 
			
		||||
 | 
			
		||||
template <>
 | 
			
		||||
inline float Vec2<float>::Length() const {
 | 
			
		||||
    return std::sqrt(x * x + y * y);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <>
 | 
			
		||||
inline float Vec2<float>::Normalize() {
 | 
			
		||||
    float length = Length();
 | 
			
		||||
    *this /= length;
 | 
			
		||||
    return length;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <typename T>
 | 
			
		||||
class Vec3 {
 | 
			
		||||
public:
 | 
			
		||||
@@ -388,6 +400,13 @@ inline Vec3<float> Vec3<float>::Normalized() const {
 | 
			
		||||
    return *this / Length();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <>
 | 
			
		||||
inline float Vec3<float>::Normalize() {
 | 
			
		||||
    float length = Length();
 | 
			
		||||
    *this /= length;
 | 
			
		||||
    return length;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
typedef Vec3<float> Vec3f;
 | 
			
		||||
 | 
			
		||||
template <typename T>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user