18#ifndef __StaticBillboardSet_H__
19#define __StaticBillboardSet_H__
21#include <OgrePrerequisites.h>
23#include <OgreRenderSystem.h>
24#include <OgreVector3.h>
26#include <OgreMaterial.h>
27#include <OgreBillboard.h>
28#include <OgreBillboardSet.h>
29#include <OgreMaterialManager.h>
30#include <OgreSceneNode.h>
31#include <OgreStringConverter.h>
57 const Ogre::ColourValue &clr, Ogre::uint16 texcrdIndexU, Ogre::uint16 texcrdIndexV) :
61 Ogre::Root::getSingletonPtr()->getRenderSystem()->convertColourValue(clr, &
color);
98 void createBillboard(
const Ogre::Vector3 &position,
float xScale = 1.0f,
float yScale = 1.0f,
99 const Ogre::ColourValue &color = Ogre::ColourValue::White, Ogre::uint16 texcoordIndexU = 0, Ogre::uint16 texcoordIndexV = 0)
150 void setFade(
bool enabled, Ogre::Real visibleDist, Ogre::Real invisibleDist);
168 void setMaterial(
const Ogre::String &materialName,
const Ogre::String &resourceGroup =
169 Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME);
195 static void updateAll(
const Ogre::Vector3 &cameraDirection);
199 Ogre::MaterialPtr
getFadeMaterial(
const Ogre::MaterialPtr &protoMaterial, Ogre::Real visibleDist, Ogre::Real invisibleDist);
235 static Ogre::String
getUniqueID(
const Ogre::String &prefix) {
return prefix + Ogre::StringConverter::toString(++
GUID); }
249 static void addMaterialRef(
const Ogre::MaterialPtr &matP, Ogre::BillboardOrigin o);
static void removeMaterialRef(const Ogre::MaterialPtr &matP)
static SBMaterialRefList selfList
static SBMaterialRefList & getList()
Ogre::Material * getMaterial()
Ogre::Material * material
Ogre::BillboardOrigin origin
Ogre::BillboardOrigin getOrigin()
static void addMaterialRef(const Ogre::MaterialPtr &matP, Ogre::BillboardOrigin o)
Ogre::uint16 texcoordIndexV
Ogre::uint16 texcoordIndexU
StaticBillboard(const Ogre::Vector3 &pos, float xScale, float yScale, const Ogre::ColourValue &clr, Ogre::uint16 texcrdIndexU, Ogre::uint16 texcrdIndexV)
A faster alternative to Ogre's built-in BillboardSet class.
Ogre::MaterialPtr mPtrFadeMaterial
static bool s_isGLSL
OpenGL.
Ogre::BillboardOrigin getBillboardOrigin() const
Returns the current billboard origin.
void setBillboardOrigin(Ogre::BillboardOrigin origin)
Sets the billboard's origin (pivotal point)
Ogre::MaterialPtr getFadeMaterial(const Ogre::MaterialPtr &protoMaterial, Ogre::Real visibleDist, Ogre::Real invisibleDist)
static unsigned int s_nSelfInstances
Instances counter.
void setFade(bool enabled, Ogre::Real visibleDist, Ogre::Real invisibleDist)
Enables/disables distance fade-out for this billboard set.
Ogre::SceneNode * mpSceneNode
Ogre::SceneManager * mpSceneMgr
void build()
Performs final steps required for the created billboards to appear in the scene.
void setVisible(bool visible)
Sets whether or not this StaticBillboardSet will be rendered.
static FadedMaterialMap s_mapFadedMaterial
std::map< Ogre::String, Ogre::MaterialPtr > FadedMaterialMap
std::vector< StaticBillboard * > TBillBuf
static Ogre::String getUniqueID(const Ogre::String &prefix)
static unsigned long GUID
~StaticBillboardSet()
Destructor.
void setTextureStacksAndSlices(Ogre::uint16 stacks, Ogre::uint16 slices)
Sets how many horizontal slices and vertical stacks the currently applied material is using.
void createBillboard(const Ogre::Vector3 &position, float xScale=1.0f, float yScale=1.0f, const Ogre::ColourValue &color=Ogre::ColourValue::White, Ogre::uint16 texcoordIndexU=0, Ogre::uint16 texcoordIndexV=0)
Adds a billboard to the StaticBillboardSet at the specified position.
void setMaterial(const Ogre::String &materialName, const Ogre::String &resourceGroup=Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME)
Applies a material to the billboards in this set.
Ogre::BillboardOrigin mBBOrigin
void clear()
Deletes all billboards from the scene.
Ogre::MaterialPtr mPtrMaterial
TBillBuf mBillboardBuffer
Ogre::Real mFadeInvisibleDist
Ogre::Real mFadeVisibleDist
static void updateAll(const Ogre::Vector3 &cameraDirection)
Manually updates all StaticBillboardSet objects for a frame.
std::map< Ogre::Material *, SBMaterialRef * > SBMaterialRefList