mirror of
https://github.com/citra-emu/citra.git
synced 2024-12-18 20:00:05 +00:00
vector math: add implementation of Length and Normalize
This commit is contained in:
parent
55f5d0f777
commit
2e6d8e1321
@ -186,6 +186,18 @@ Vec2<T> operator*(const V& f, const Vec2<T>& vec) {
|
|||||||
|
|
||||||
typedef Vec2<float> Vec2f;
|
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>
|
template <typename T>
|
||||||
class Vec3 {
|
class Vec3 {
|
||||||
public:
|
public:
|
||||||
@ -388,6 +400,13 @@ inline Vec3<float> Vec3<float>::Normalized() const {
|
|||||||
return *this / Length();
|
return *this / Length();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
inline float Vec3<float>::Normalize() {
|
||||||
|
float length = Length();
|
||||||
|
*this /= length;
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
typedef Vec3<float> Vec3f;
|
typedef Vec3<float> Vec3f;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
Loading…
Reference in New Issue
Block a user