Fix Reflection calculation error.

This commit is contained in:
scorpioblood 2024-06-10 22:07:53 +02:00
parent e894b55748
commit 668a01491a
3 changed files with 7 additions and 7 deletions

View File

@ -684,7 +684,7 @@ namespace Phanes::Core::Math {
template<RealType T> template<RealType T>
TVector2<T, false> ReflectV(TVector2<T, false>& v1, const TVector2<T, false>& normal) TVector2<T, false> ReflectV(TVector2<T, false>& v1, const TVector2<T, false>& normal)
{ {
Set(v1, v1 - (2 * (v1 * normal) * normal)); Set(v1, v1 - (2 * DotP(v1, normal) * normal));
return v1; return v1;
} }
@ -855,7 +855,7 @@ namespace Phanes::Core::Math {
// ============================================================== // // ============================================================== //
// TVector2 static function implementation with return values // // TVector2 static function implementation with return values //
// ============================================================== // // ============================================================== //
@ -871,7 +871,7 @@ namespace Phanes::Core::Math {
template<RealType T> template<RealType T>
TVector2<T, false> Reflect(const TVector2<T, false>& v1, const TVector2<T, false>& normal) TVector2<T, false> Reflect(const TVector2<T, false>& v1, const TVector2<T, false>& normal)
{ {
return TVector2<T, false>(v1 - (2 * (v1 * normal) * normal)); return TVector2<T, false>(v1 - (2 * DotP(v1, normal) * normal));
} }
/** /**

View File

@ -375,7 +375,7 @@ namespace Phanes::Core::Math {
template<RealType T> template<RealType T>
TVector3<T, false> ReflectV(TVector3<T, false>& v1, const TVector3<T, false>& normal) TVector3<T, false> ReflectV(TVector3<T, false>& v1, const TVector3<T, false>& normal)
{ {
Set(v1, v1 - (2 * (v1 * normal) * normal)); Set(v1, v1 - (2 * DotP(v1, normal) * normal));
return v1; return v1;
} }
@ -962,7 +962,7 @@ namespace Phanes::Core::Math {
template<RealType T> template<RealType T>
TVector3<T, false> Reflect(const TVector3<T, false>& v1, const TVector3<T, false>& normal) TVector3<T, false> Reflect(const TVector3<T, false>& v1, const TVector3<T, false>& normal)
{ {
return v1 - (2 * (v1 * normal) * normal); return v1 - (2 * DotP(v1, normal) * normal);
} }

View File

@ -745,7 +745,7 @@ namespace Phanes::Core::Math
template<RealType T> template<RealType T>
TVector4<T, false> Reflect(const TVector4<T, false>& v1, const TVector4<T, false> normal) TVector4<T, false> Reflect(const TVector4<T, false>& v1, const TVector4<T, false> normal)
{ {
return v1 - (2 * (v1 * normal) * normal); return v1 - (2 * DotP(v1, normal) * normal);
} }
/// <summary> /// <summary>
@ -759,7 +759,7 @@ namespace Phanes::Core::Math
template<RealType T> template<RealType T>
TVector4<T, false> ReflectV(TVector4<T, false>& v1, const TVector4<T, false> normal) TVector4<T, false> ReflectV(TVector4<T, false>& v1, const TVector4<T, false> normal)
{ {
Set(v1, v1 - (2 * (v1 * normal) * normal)); Set(v1, v1 - (2 * DotP(v1, normal) * normal));
return v1; return v1;
} }