Graphics/Billboard: Fix bounding volume
This commit is contained in:
parent
1e88f5ddf8
commit
42a263ed6a
|
|
@ -83,6 +83,7 @@ Nazara Engine:
|
||||||
- Add support for emissive and normal maps in .mtl loader using custom keywords ([map_]emissive and [map_]normal)
|
- Add support for emissive and normal maps in .mtl loader using custom keywords ([map_]emissive and [map_]normal)
|
||||||
- Music, Sound and SoundEmitter are now movable
|
- Music, Sound and SoundEmitter are now movable
|
||||||
- Fixed Sound copy which was not copying looping state
|
- Fixed Sound copy which was not copying looping state
|
||||||
|
- Fixed Billboard bounding volume
|
||||||
|
|
||||||
Nazara Development Kit:
|
Nazara Development Kit:
|
||||||
- Added ImageWidget (#139)
|
- Added ImageWidget (#139)
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,12 @@ namespace Nz
|
||||||
|
|
||||||
void Billboard::MakeBoundingVolume() const
|
void Billboard::MakeBoundingVolume() const
|
||||||
{
|
{
|
||||||
constexpr float sqrt2 = float(M_SQRT2);
|
// As billboard always face the screen, we must take its maximum size in account on every axis
|
||||||
|
float maxSize = float(M_SQRT2) * std::max(m_size.x, m_size.y);
|
||||||
|
|
||||||
m_boundingVolume.Set(Vector3f(0.f), sqrt2 * m_size.x * Vector3f::Right() + sqrt2 * m_size.y * Vector3f::Down());
|
Nz::Vector3f halfSize = (maxSize * Vector3f::Right() + maxSize * Vector3f::Down() + maxSize * Vector3f::Forward()) / 2.f;
|
||||||
|
|
||||||
|
m_boundingVolume.Set(-halfSize, halfSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
BillboardLibrary::LibraryMap Billboard::s_library;
|
BillboardLibrary::LibraryMap Billboard::s_library;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue