Math: Add M_SQRT3 constant, fix sphere radius calculations
Former-commit-id: 71ac4d3522f427fda60a0e71d76eca7558539187
This commit is contained in:
parent
b0f418c481
commit
2bba1be938
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue