|
|
|
@ -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> |
|
|
|
|