// Copyright (C) 2015 Jérôme Leclercq // This file is part of the "Nazara Engine - Graphics module" // For conditions of distribution and use, see copyright notice in Config.hpp #include #include #include #include #include #include #include namespace Nz { /*! * \ingroup graphics * \class Nz::Billboard * \brief Graphics class that represents a billboard, a 2D surface which simulates a 3D object */ /*! * \brief Adds this billboard to the render queue * * \param renderQueue Queue to be added * \param instanceData Data used for instance */ void Billboard::AddToRenderQueue(AbstractRenderQueue* renderQueue, const InstanceData& instanceData) const { if (!m_material) return; renderQueue->AddBillboard(instanceData.renderOrder, m_material, instanceData.transformMatrix.GetTranslation(), m_size, m_sinCos, m_color); } /* * \brief Makes the bounding volume of this billboard */ void Billboard::MakeBoundingVolume() const { constexpr float sqrt2 = float(M_SQRT2); m_boundingVolume.Set(Vector3f(0.f), sqrt2 * m_size.x * Vector3f::Right() + sqrt2 * m_size.y * Vector3f::Down()); } BillboardLibrary::LibraryMap Billboard::s_library; }