OgreBillboardParticleRenderer.h
Go to the documentation of this file.
1 /*
2 -----------------------------------------------------------------------------
3 This source file is part of OGRE
4 (Object-oriented Graphics Rendering Engine)
5 For the latest info, see http://www.ogre3d.org/
6 
7 Copyright (c) 2000-2013 Torus Knot Software Ltd
8 
9 Permission is hereby granted, free of charge, to any person obtaining a copy
10 of this software and associated documentation files (the "Software"), to deal
11 in the Software without restriction, including without limitation the rights
12 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 copies of the Software, and to permit persons to whom the Software is
14 furnished to do so, subject to the following conditions:
15 
16 The above copyright notice and this permission notice shall be included in
17 all copies or substantial portions of the Software.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 THE SOFTWARE.
26 -----------------------------------------------------------------------------
27 */
28 #ifndef __BillboardParticleRenderer_H__
29 #define __BillboardParticleRenderer_H__
30 
31 #include "OgrePrerequisites.h"
33 #include "OgreBillboardSet.h"
34 #include "OgreHeaderPrefix.h"
35 
36 namespace Ogre {
37 
53  {
54  protected:
57  public:
60 
63  {
64  public:
65  String doGet(const void* target) const;
66  void doSet(void* target, const String& val);
67  };
70  {
71  public:
72  String doGet(const void* target) const;
73  void doSet(void* target, const String& val);
74  };
77  {
78  public:
79  String doGet(const void* target) const;
80  void doSet(void* target, const String& val);
81  };
84  {
85  public:
86  String doGet(const void* target) const;
87  void doSet(void* target, const String& val);
88  };
91  {
92  public:
93  String doGet(const void* target) const;
94  void doSet(void* target, const String& val);
95  };
98  {
99  public:
100  String doGet(const void* target) const;
101  void doSet(void* target, const String& val);
102  };
105  {
106  public:
107  String doGet(const void* target) const;
108  void doSet(void* target, const String& val);
109  };
110 
122 
125 
127  void setUseAccurateFacing(bool acc);
129  bool getUseAccurateFacing(void) const;
130 
142  void setBillboardOrigin(BillboardOrigin origin) { mBillboardSet->setBillboardOrigin(origin); }
143 
148  BillboardOrigin getBillboardOrigin(void) const { return mBillboardSet->getBillboardOrigin(); }
149 
160 
166 
174  void setCommonDirection(const Vector3& vec);
175 
177  const Vector3& getCommonDirection(void) const;
178 
188  void setCommonUpVector(const Vector3& vec);
189 
191  const Vector3& getCommonUpVector(void) const;
192 
194  void setPointRenderingEnabled(bool enabled);
195 
197  bool isPointRenderingEnabled(void) const;
198 
199 
200 
202  const String& getType(void) const;
205  list<Particle*>::type& currentParticles, bool cullIndividually);
208  bool debugRenderables = false);
218  void _notifyParticleQuota(size_t quota);
220  void _notifyAttached(Node* parent, bool isTagPoint = false);
222  void _notifyDefaultDimensions(Real width, Real height);
224  void setRenderQueueGroup(uint8 queueID);
226  void setRenderQueueGroupAndPriority(uint8 queueID, ushort priority);
228  void setKeepParticlesInLocalSpace(bool keepLocal);
230  SortMode _getSortMode(void) const;
231 
233  BillboardSet* getBillboardSet(void) const { return mBillboardSet; }
234 
235  protected:
243 
244 
245  };
246 
249  {
250  public:
252  const String& getType() const;
257  };
261 } // namespace Ogre
262 
263 #include "OgreHeaderSuffix.h"
264 
265 #endif // __BillboardParticleRenderer_H__
266 
OgreHeaderSuffix.h
Ogre::BillboardParticleRenderer::setBillboardType
void setBillboardType(BillboardType bbt)
Sets the type of billboard to render.
Ogre::BillboardParticleRenderer::CmdBillboardOrigin
Command object for billboard origin (see ParamCommand).
Definition: OgreBillboardParticleRenderer.h:70
Ogre::BillboardParticleRenderer::_notifyAttached
void _notifyAttached(Node *parent, bool isTagPoint=false)
Delegated to by ParticleSystem::_notifyAttached.
Ogre::BillboardParticleRenderer::getBillboardRotationType
BillboardRotationType getBillboardRotationType(void) const
Gets billboard rotation type.
Ogre::BillboardParticleRenderer::CmdAccurateFacing::doSet
void doSet(void *target, const String &val)
Ogre
Definition: OgreAndroidLogListener.h:35
Ogre::BillboardParticleRenderer::msBillboardRotationTypeCmd
static CmdBillboardRotationType msBillboardRotationTypeCmd
Definition: OgreBillboardParticleRenderer.h:238
Ogre::BillboardParticleRenderer::msBillboardTypeCmd
static CmdBillboardType msBillboardTypeCmd
Definition: OgreBillboardParticleRenderer.h:236
Ogre::BillboardParticleRenderer::CmdCommonUpVector::doSet
void doSet(void *target, const String &val)
Ogre::ushort
unsigned short ushort
Definition: OgrePrerequisites.h:113
Ogre::Camera
A viewpoint from which the scene will be rendered.
Definition: OgreCamera.h:87
Ogre::BillboardParticleRendererFactory::destroyInstance
void destroyInstance(ParticleSystemRenderer *ptr)
Destroys an object which was created by this factory.
Ogre::BillboardType
BillboardType
The type of billboard to use.
Definition: OgreBillboardSet.h:76
Ogre::BillboardParticleRendererFactory::createInstance
ParticleSystemRenderer * createInstance(const String &name)
Creates a new object.
Ogre::BillboardParticleRenderer::setCommonUpVector
void setCommonUpVector(const Vector3 &vec)
Use this to specify the common up-vector given to billboards of type BBT_PERPENDICULAR_SELF.
Ogre::BillboardParticleRenderer::mBillboardSet
BillboardSet * mBillboardSet
The billboard set that's doing the rendering.
Definition: OgreBillboardParticleRenderer.h:56
Ogre::BillboardParticleRenderer::CmdCommonUpVector::doGet
String doGet(const void *target) const
Ogre::BillboardSet::setBillboardOrigin
virtual void setBillboardOrigin(BillboardOrigin origin)
Sets the point which acts as the origin point for all billboards in this set.
Ogre::BillboardParticleRendererFactory
Factory class for BillboardParticleRenderer.
Definition: OgreBillboardParticleRenderer.h:249
Ogre::BillboardParticleRenderer::CmdCommonDirection
Command object for common direction (see ParamCommand).
Definition: OgreBillboardParticleRenderer.h:84
Ogre::BillboardParticleRenderer::getBillboardOrigin
BillboardOrigin getBillboardOrigin(void) const
Gets the point which acts as the origin point for all billboards in this set.
Definition: OgreBillboardParticleRenderer.h:148
Ogre::ParticleSystemRenderer
Abstract class defining the interface required to be implemented by classes which provide rendering c...
Definition: OgreParticleSystemRenderer.h:50
Ogre::BillboardParticleRenderer
Specialisation of ParticleSystemRenderer to render particles using a BillboardSet.
Definition: OgreBillboardParticleRenderer.h:53
Ogre::BillboardParticleRenderer::msCommonUpVectorCmd
static CmdCommonUpVector msCommonUpVectorCmd
Definition: OgreBillboardParticleRenderer.h:240
Ogre::BillboardParticleRenderer::_setMaterial
void _setMaterial(MaterialPtr &mat)
Sets the material this renderer must use; called by ParticleSystem.
Ogre::BillboardParticleRenderer::CmdBillboardType
Command object for billboard type (see ParamCommand).
Definition: OgreBillboardParticleRenderer.h:63
Ogre::BillboardSet
A collection of billboards (faces which are always facing the given direction) with the same (default...
Definition: OgreBillboardSet.h:111
Ogre::String
_StringBase String
Definition: OgrePrerequisites.h:439
Ogre::SortMode
SortMode
Sort mode for billboard-set and particle-system.
Definition: OgreCommon.h:287
Ogre::BillboardParticleRenderer::visitRenderables
void visitRenderables(Renderable::Visitor *visitor, bool debugRenderables=false)
Required method to allow the renderer to communicate the Renderables it will be using to render the s...
Ogre::BillboardParticleRenderer::CmdPointRendering::doGet
String doGet(const void *target) const
Ogre::ParamCommand
Abstract class which is command object which gets/sets parameters.
Definition: OgreStringInterface.h:80
Ogre::BillboardParticleRenderer::msBillboardOriginCmd
static CmdBillboardOrigin msBillboardOriginCmd
Definition: OgreBillboardParticleRenderer.h:237
Ogre::BillboardParticleRenderer::msAccurateFacingCmd
static CmdAccurateFacing msAccurateFacingCmd
Definition: OgreBillboardParticleRenderer.h:242
OgreHeaderPrefix.h
Ogre::list
Definition: OgrePrerequisites.h:506
Ogre::BillboardParticleRendererFactory::getType
const String & getType() const
Returns the factory type.
Ogre::BillboardParticleRenderer::CmdCommonUpVector
Command object for common up-vector (see ParamCommand).
Definition: OgreBillboardParticleRenderer.h:91
Ogre::BillboardParticleRenderer::_notifyCurrentCamera
void _notifyCurrentCamera(Camera *cam)
Delegated to by ParticleSystem::_notifyCurrentCamera.
Ogre::BillboardParticleRenderer::CmdPointRendering::doSet
void doSet(void *target, const String &val)
OgrePrerequisites.h
Ogre::BillboardParticleRenderer::setRenderQueueGroupAndPriority
void setRenderQueueGroupAndPriority(uint8 queueID, ushort priority)
Sets the render queue group and group priority this entity will be rendered through.
Ogre::BillboardParticleRenderer::getCommonDirection
const Vector3 & getCommonDirection(void) const
Gets the common direction for all billboards (BBT_ORIENTED_COMMON)
Ogre::BillboardParticleRenderer::CmdCommonDirection::doSet
void doSet(void *target, const String &val)
Ogre::BillboardParticleRenderer::CmdBillboardOrigin::doSet
void doSet(void *target, const String &val)
Ogre::BillboardParticleRenderer::CmdPointRendering
Command object for point rendering (see ParamCommand).
Definition: OgreBillboardParticleRenderer.h:98
Ogre::BillboardParticleRenderer::setRenderQueueGroup
void setRenderQueueGroup(uint8 queueID)
Sets which render queue group this renderer should target with it's output.
_OgreExport
#define _OgreExport
Definition: OgrePlatform.h:257
Ogre::BillboardParticleRenderer::getBillboardSet
BillboardSet * getBillboardSet(void) const
Access BillboardSet in use.
Definition: OgreBillboardParticleRenderer.h:233
Ogre::BillboardParticleRenderer::getBillboardType
BillboardType getBillboardType(void) const
Returns the billboard type in use.
Ogre::BillboardParticleRenderer::setPointRenderingEnabled
void setPointRenderingEnabled(bool enabled)
Set whether or not the BillboardSet will use point rendering rather than manually generated quads.
Ogre::BillboardParticleRenderer::CmdBillboardRotationType::doGet
String doGet(const void *target) const
Ogre::BillboardOrigin
BillboardOrigin
Enum covering what exactly a billboard's position means (center, top-left etc).
Definition: OgreBillboardSet.h:55
Ogre::BillboardParticleRenderer::getType
const String & getType(void) const
Gets the type of this renderer - must be implemented by subclasses.
Ogre::BillboardRotationType
BillboardRotationType
The rotation type of billboard.
Definition: OgreBillboardSet.h:68
Ogre::BillboardParticleRenderer::CmdBillboardType::doGet
String doGet(const void *target) const
Ogre::BillboardParticleRenderer::msCommonDirectionCmd
static CmdCommonDirection msCommonDirectionCmd
Definition: OgreBillboardParticleRenderer.h:239
Ogre::SharedPtr< Material >
Ogre::BillboardParticleRenderer::CmdBillboardRotationType::doSet
void doSet(void *target, const String &val)
Ogre::uint8
unsigned char uint8
Definition: OgrePlatform.h:361
Ogre::ParticleSystemRendererFactory
Abstract class definition of a factory object for ParticleSystemRenderer.
Definition: OgreParticleSystemRenderer.h:134
OgreParticleSystemRenderer.h
Ogre::BillboardParticleRenderer::setKeepParticlesInLocalSpace
void setKeepParticlesInLocalSpace(bool keepLocal)
Setting carried over from ParticleSystem.
Ogre::BillboardParticleRenderer::_notifyDefaultDimensions
void _notifyDefaultDimensions(Real width, Real height)
Tells the renderer that the particle default size has changed.
Ogre::BillboardParticleRenderer::setBillboardOrigin
void setBillboardOrigin(BillboardOrigin origin)
Sets the point which acts as the origin point for all billboards in this set.
Definition: OgreBillboardParticleRenderer.h:142
Ogre::BillboardParticleRenderer::CmdCommonDirection::doGet
String doGet(const void *target) const
Ogre::BillboardParticleRenderer::getUseAccurateFacing
bool getUseAccurateFacing(void) const
Gets whether or not billboards use an 'accurate' facing model based on the vector from each billboard...
Ogre::BillboardParticleRenderer::CmdBillboardOrigin::doGet
String doGet(const void *target) const
Ogre::Renderable::Visitor
Visitor object that can be used to iterate over a collection of Renderable instances abstractly.
Definition: OgreRenderable.h:378
Ogre::BillboardSet::getBillboardOrigin
virtual BillboardOrigin getBillboardOrigin(void) const
Gets the point which acts as the origin point for all billboards in this set.
_OgrePrivate
#define _OgrePrivate
Definition: OgrePlatform.h:258
Ogre::BillboardParticleRenderer::setBillboardRotationType
void setBillboardRotationType(BillboardRotationType rotationType)
Sets billboard rotation type.
Ogre::BillboardParticleRenderer::_notifyParticleRotated
void _notifyParticleRotated(void)
Optional callback notified when particles are rotated.
Ogre::BillboardParticleRenderer::_notifyParticleResized
void _notifyParticleResized(void)
Optional callback notified when particles are resized individually.
Ogre::BillboardParticleRenderer::BillboardParticleRenderer
BillboardParticleRenderer()
Ogre::BillboardParticleRenderer::setCommonDirection
void setCommonDirection(const Vector3 &vec)
Use this to specify the common direction given to billboards of type BBT_ORIENTED_COMMON.
Ogre::BillboardParticleRenderer::_notifyParticleQuota
void _notifyParticleQuota(size_t quota)
Tells the renderer that the particle quota has changed.
Ogre::Real
float Real
Software floating point type.
Definition: OgrePrerequisites.h:70
Ogre::BillboardParticleRenderer::msPointRenderingCmd
static CmdPointRendering msPointRenderingCmd
Definition: OgreBillboardParticleRenderer.h:241
Ogre::BillboardParticleRenderer::_updateRenderQueue
void _updateRenderQueue(RenderQueue *queue, list< Particle * >::type &currentParticles, bool cullIndividually)
Delegated to by ParticleSystem::_updateRenderQueue.
Ogre::Node
Class representing a general-purpose node an articulated scene graph.
Definition: OgreNode.h:65
Ogre::BillboardParticleRenderer::CmdAccurateFacing
Command object for accurate facing(see ParamCommand).
Definition: OgreBillboardParticleRenderer.h:105
Ogre::BillboardParticleRenderer::setUseAccurateFacing
void setUseAccurateFacing(bool acc)
Sets whether or not billboards should use an 'accurate' facing model based on the vector from each bi...
Ogre::BillboardParticleRenderer::CmdAccurateFacing::doGet
String doGet(const void *target) const
OgreBillboardSet.h
Ogre::Vector3
Standard 3-dimensional vector.
Definition: OgreVector3.h:52
Ogre::BillboardParticleRenderer::_getSortMode
SortMode _getSortMode(void) const
Gets the desired particles sort mode of this renderer.
Ogre::RenderQueue
Class to manage the scene object rendering queue.
Definition: OgreRenderQueue.h:93
Ogre::BillboardParticleRenderer::getCommonUpVector
const Vector3 & getCommonUpVector(void) const
Gets the common up-vector for all billboards (BBT_PERPENDICULAR_SELF)
Ogre::BillboardParticleRenderer::~BillboardParticleRenderer
~BillboardParticleRenderer()
Ogre::BillboardParticleRenderer::CmdBillboardRotationType
Command object for billboard rotation type (see ParamCommand).
Definition: OgreBillboardParticleRenderer.h:77
Ogre::BillboardParticleRenderer::CmdBillboardType::doSet
void doSet(void *target, const String &val)
Ogre::BillboardParticleRenderer::isPointRenderingEnabled
bool isPointRenderingEnabled(void) const
Returns whether point rendering is enabled.

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.