Math/Vector3: Add ProjectOnPlane
This commit is contained in:
@@ -53,6 +53,7 @@ namespace Nz
|
|||||||
constexpr Vector3& Minimize(const Vector3& vec);
|
constexpr Vector3& Minimize(const Vector3& vec);
|
||||||
|
|
||||||
constexpr Vector3 Project(const Vector3& normal) const;
|
constexpr Vector3 Project(const Vector3& normal) const;
|
||||||
|
constexpr Vector3 ProjectOnPlane(const Vector3& normal) const;
|
||||||
|
|
||||||
Vector3& Normalize(T* length = nullptr);
|
Vector3& Normalize(T* length = nullptr);
|
||||||
|
|
||||||
|
|||||||
@@ -290,6 +290,13 @@ namespace Nz
|
|||||||
return normal * dot;
|
return normal * dot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
constexpr Vector3<T> Vector3<T>::ProjectOnPlane(const Vector3& normal) const
|
||||||
|
{
|
||||||
|
float dot = DotProduct(normal);
|
||||||
|
return *this - normal * dot;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Normalizes the current vector
|
* \brief Normalizes the current vector
|
||||||
* \return A reference to this vector
|
* \return A reference to this vector
|
||||||
|
|||||||
Reference in New Issue
Block a user