Math: Add M_SQRT3 constant, fix sphere radius calculations

Former-commit-id: 71ac4d3522f427fda60a0e71d76eca7558539187
This commit is contained in:
Lynix 2015-05-26 23:39:01 +02:00
parent b0f418c481
commit 2bba1be938
3 changed files with 6 additions and 2 deletions

View File

@ -20,6 +20,10 @@
#define M_SQRT2 1.4142135623730950488016887 #define M_SQRT2 1.4142135623730950488016887
#endif #endif
#ifndef M_SQRT3
#define M_SQRT3 1.7320508075688772935274463
#endif
template<typename T> T NzApproach(T value, T objective, T increment); template<typename T> T NzApproach(T value, T objective, T increment);
template<typename T> constexpr T NzClamp(T value, T min, T max); template<typename T> constexpr T NzClamp(T value, T min, T max);
template<typename T> T NzCountBits(T value); template<typename T> T NzCountBits(T value);

View File

@ -194,7 +194,7 @@ void NzLight::MakeBoundingVolume() const
case nzLightType_Point: case nzLightType_Point:
{ {
NzVector3f radius(m_radius); ///FIXME: Incorrect NzVector3f radius(m_radius * M_SQRT3);
m_boundingVolume.Set(-radius, radius); m_boundingVolume.Set(-radius, radius);
break; break;
} }

View File

@ -400,7 +400,7 @@ m_radius(radius)
NzBoxf NzSphereGeom::ComputeAABB(const NzMatrix4f& offsetMatrix, const NzVector3f& scale) const NzBoxf NzSphereGeom::ComputeAABB(const NzMatrix4f& offsetMatrix, const NzVector3f& scale) const
{ {
NzVector3f size(m_radius * scale); NzVector3f size(m_radius * M_SQRT3 * scale);
NzVector3f position(offsetMatrix.GetTranslation()); NzVector3f position(offsetMatrix.GetTranslation());
return NzBoxf(position - size, position + size); return NzBoxf(position - size, position + size);