# Ogre::BillboardSet Class Reference

A collection of billboards (faces which are always facing the camera) with the same (default) dimensions, material and which are fairly close proximity to each other. More...

`#include <OgreBillboardSet.h>`

Inheritance diagram for Ogre::BillboardSet:

List of all members.

## Public Types

typedef std::vector< ShadowRenderable * > | ShadowRenderableList
typedef VectorIterator< ShadowRenderableList > | ShadowRenderableListIterator

## Public Member Functions

| BillboardSet (const String &name, unsigned int poolSize=20, bool externalDataSource=false)
| Usual constructor - this is called by the SceneManager.
virtual | ~BillboardSet ()
Billboard * | createBillboard (const Vector3 &position, const ColourValue &colour=ColourValue::White)
| Creates a new billboard and adds it to this set.
Billboard * | createBillboard (Real x, Real y, Real z, const ColourValue &colour=ColourValue::White)
| Creates a new billboard and adds it to this set.
virtual int | getNumBillboards (void) const
| Returns the number of active billboards which currently make up this set.
virtual void | setAutoextend (bool autoextend)
| Tells the set whether to allow automatic extension of the pool of billboards.
virtual bool | getAutoextend (void) const
| Returns true if the billboard pool automatically extends.
virtual void | setPoolSize (unsigned int size)
| Adjusts the size of the pool of billboards available in this set.
virtual unsigned int | getPoolSize (void) const
| Returns the current size of the billboard pool.
virtual void | clear ()
| Empties this set of all billboards.
virtual Billboard * | getBillboard (unsigned int index) const
| Returns a pointer to the billboard at the supplied index.
virtual void | removeBillboard (unsigned int index)
| Removes the billboard at the supplied index.
virtual void | removeBillboard (Billboard *pBill)
| Removes a billboard from the set.
virtual void | setBillboardOrigin (BillboardOrigin origin)
| Sets the point which acts as the origin point for all billboards in this set.
virtual BillboardOrigin | getBillboardOrigin (void) const
| Gets the point which acts as the origin point for all billboards in this set.
virtual void | setDefaultDimensions (Real width, Real height)
| Sets the default dimensions of the billboards in this set.
virtual void | setDefaultWidth (Real width)
| See setDefaultDimensions - this sets 1 component individually.
virtual Real | getDefaultWidth (void) const
| See setDefaultDimensions - this gets 1 component individually.
virtual void | setDefaultHeight (Real height)
| See setDefaultDimensions - this sets 1 component individually.
virtual Real | getDefaultHeight (void) const
| See setDefaultDimensions - this gets 1 component individually.
virtual void | setMaterialName (const String &name)
| Sets the name of the material to be used for this billboard set.
virtual const String & | getMaterialName (void) const
| Sets the name of the material to be used for this billboard set.
virtual void | _notifyCurrentCamera (Camera *cam)
| Overridden from MovableObject.
void | beginBillboards (void)
| Begin injection of billboard data; applicable when constructing the BillboardSet for external data use.
void | injectBillboard (const Billboard &bb)
| Define a billboard.
void | endBillboards (void)
| Finish defining billboards.
void | setBounds (const AxisAlignedBox &box, Real radius)
| Set the bounds of the BillboardSet.
virtual const AxisAlignedBox & | getBoundingBox (void) const
| Overridden from MovableObject.
virtual Real | getBoundingRadius (void) const
| Overridden from MovableObject.
virtual void | _updateRenderQueue (RenderQueue *queue)
| Overridden from MovableObject.
virtual const MaterialPtr & | getMaterial (void) const
| Overridden from MovableObject.
virtual void | getRenderOperation (RenderOperation &op)
| Overridden from MovableObject.
virtual void | getWorldTransforms (Matrix4 *xform) const
| Overridden from MovableObject.
const Quaternion & | getWorldOrientation (void) const
const Vector3 & | getWorldPosition (void) const
virtual void | _notifyBillboardResized (void)
| Internal callback used by Billboards to notify their parent that they have been resized.
virtual void | _notifyBillboardTextureCoordsModified (void)
| Notifies the billboardset that texture coordinates will be modified for this set.
virtual bool | getCullIndividually (void) const
| Returns whether or not billbards in this are tested individually for culling.
virtual void | setCullIndividually (bool cullIndividual)
| Sets whether culling tests billboards in this individually as well as in a group.
virtual void | setBillboardType (BillboardType bbt)
| Sets the type of billboard to render.
virtual BillboardType | getBillboardType (void) const
| Returns the billboard type in use.
virtual void | setCommonDirection (const Vector3 &vec)
| Use this to specify the common direction given to billboards of type BBT_ORIENTED_COMMON.
virtual const Vector3 & | getCommonDirection (void) const
| Gets the common direction for all billboards (BBT_ORIENTED_COMMON).
virtual const String & | getName (void) const
| Overridden from MovableObject.
virtual const String & | getMovableType (void) const
| Overridden from MovableObject.
Real | getSquaredViewDepth (const Camera *cam) const
| Overridden, see Renderable.
virtual void | _updateBounds (void)
| Update the bounds of the billboardset.
const LightList & | getLights (void) const

Remarks:
  Directional lights, which have no position, will always be first on this list.

virtual void | setBillboardsInWorldSpace (bool ws)
| Sets whether billboards should be treated as being in world space.
virtual Node * | getParentNode (void) const
| Returns the node to which this object is attached.
virtual SceneNode * | getParentSceneNode (void) const
| Returns the scene node to which this object is attached.
virtual void | _notifyAttached (Node *parent, bool isTagPoint=false)
| Internal method called to notify the object that it has been attached to a node.
virtual bool | isAttached (void) const
| Returns true if this object is attached to a SceneNode or TagPoint.
virtual bool | isInScene (void) const
| Returns true if this object is attached to a SceneNode or TagPoint, and this SceneNode / TagPoint is currently in an active part of the scene graph.
virtual const AxisAlignedBox & | getWorldBoundingBox (bool derive=false) const
| Retrieves the axis-aligned bounding box for this object in world coordinates.
virtual const Sphere & | getWorldBoundingSphere (bool derive=false) const
| Retrieves the worldspace bounding sphere for this object.
virtual void | setVisible (bool visible)
| Tells this object whether to be visible or not, if it has a renderable component.
virtual bool | isVisible (void) const
| Returns whether or not this object is supposed to be visible or not.
virtual void | setUserObject (UserDefinedObject *obj)
| Call this to associate your own custom user object instance with this MovableObject.
virtual UserDefinedObject * | getUserObject (void)
| Retrieves a pointer to a custom application object associated with this movable by an earlier call to setUserObject.
virtual void | setRenderQueueGroup (RenderQueueGroupID queueID)
| Sets the render queue group this entity will be rendered through.
virtual RenderQueueGroupID | getRenderQueueGroup (void) const
| Gets the queue group for this entity, see setRenderQueueGroup for full details.
virtual Matrix4 | _getParentNodeFullTransform (void) const
| return the full transformation of the parent sceneNode or the attachingPoint node
virtual void | setQueryFlags (unsigned long flags)
| Sets the query flags for this object.
virtual void | addQueryFlags (unsigned long flags)
| As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object.
virtual void | removeQueryFlags (unsigned long flags)
| As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object.
virtual unsigned long | getQueryFlags (void) const
| Returns the query flags relevant for this object.
EdgeData * | getEdgeList (void)
| Define a default implementation of method from ShadowCaster which implements no shadows.
ShadowRenderableListIterator | getShadowVolumeRenderableIterator (ShadowTechnique shadowTechnique, const Light *light, HardwareIndexBufferSharedPtr *indexBuffer, bool extrudeVertices, Real extrusionDist, unsigned long flags=0)
| Define a default implementation of method from ShadowCaster which implements no shadows.
const AxisAlignedBox & | getLightCapBounds (void) const
| Overridden member from ShadowCaster.
const AxisAlignedBox & | getDarkCapBounds (const Light &light, Real dirLightExtrusionDist) const
| Overridden member from ShadowCaster.
void | setCastShadows (bool enabled)
| Sets whether or not this object will cast shadows.
bool | getCastShadows (void) const
| Returns whether shadow casting is enabled for this object.
Real | getPointExtrusionDistance (const Light *l) const
| Get the distance to extrude for a point/spot light.
virtual Technique * | getTechnique (void) const
| Retrieves a pointer to the Material Technique this renderable object uses.
virtual unsigned short | getNumWorldTransforms (void) const
| Returns the number of world transform matrices this renderable requires.
virtual bool | useIdentityProjection (void) const
| Returns whether or not to use an 'identity' projection.
virtual bool | useIdentityView (void) const
| Returns whether or not to use an 'identity' projection.
virtual SceneDetailLevel | getRenderDetail () const
| Returns the preferred rasterisation mode of this renderable.
virtual bool | getNormaliseNormals (void) const
| Returns whether or not this Renderable wishes the hardware to normalise normals.
virtual const PlaneList & | getClipPlanes () const
virtual bool | getCastsShadows (void) const
| Method which reports whether this renderable would normally cast a shadow.
void | setCustomParameter (size_t index, const Vector4 &value)
| Sets a custom parameter for this Renderable, which may be used to drive calculations for this specific Renderable, like GPU program parameters.
const Vector4 & | getCustomParameter (size_t index) const
| Gets the custom value associated with this Renderable at the given index.
virtual void | _updateCustomGpuParameter (const GpuProgramParameters::AutoConstantEntry &constantEntry, GpuProgramParameters *params) const
| Update a custom GpuProgramParameters constant which is derived from information only this Renderable knows.
virtual void | setRenderDetailOverrideable (bool override)
| Sets whether this renderable's chosen detail level can be overridden (downgraded) by the camera setting.
virtual bool | getRenderDetailOverrideable (void) const
| Gets whether this renderable's chosen detail level can be overridden (downgraded) by the camera setting.

## Static Public Member Functions

void | extrudeVertices (HardwareVertexBufferSharedPtr vertexBuffer, size_t originalVertexCount, const Vector4 &lightPos, Real extrudeDist)
| Utility method for extruding vertices based on a light.

## Protected Types

typedef std::list< Billboard * > | ActiveBillboardList
typedef std::deque< Billboard * > | FreeBillboardQueue
typedef std::vector< Billboard * > | BillboardPool
typedef std::map< size_t, Vector4 > | CustomParameterMap

## Protected Member Functions

| BillboardSet ()
| Private constructor (instances cannot be created directly).
bool | billboardVisible (Camera *cam, const Billboard &bill)
| Internal method for culling individual billboards.
virtual void | increasePool (unsigned int size)
| Internal method for increasing pool size.
virtual void | genBillboardAxes (Camera *cam, Vector3 *pX, Vector3 *pY, const Billboard *pBill=0)
| Internal method for generating billboard corners.
void | getParametricOffsets (Real &left, Real &right, Real &top, Real &bottom)
| Internal method, generates parametric offsets based on origin.
void | genVertices (const Vector3 *const offsets, const Billboard &pBillboard)
| Internal method for generating vertex data.
void | genVertOffsets (Real inleft, Real inright, Real intop, Real inbottom, Real width, Real height, const Vector3 &x, const Vector3 &y, Vector3 *pDestVec)
| Internal method generates vertex offsets.
Real | getExtrusionDistance (const Vector3 &objectPos, const Light *light) const
| Helper moethod for calculating extrusion distance.
virtual void | updateEdgeListLightFacing (EdgeData *edgeData, const Vector4 &lightPos)
| Tells the caster to perform the tasks necessary to update the edge data's light listing.
virtual void | generateShadowVolume (EdgeData *edgeData, HardwareIndexBufferSharedPtr indexBuffer, const Light *light, ShadowRenderableList &shadowRenderables, unsigned long flags)
| Generates the indexes required to render a shadow volume into the index buffer which is passed in, and updates shadow renderables to use it.
virtual void | extrudeBounds (AxisAlignedBox &box, const Vector4 &lightPos, Real extrudeDist) const
| Utility method for extruding a bounding box.

## Protected Attributes

String | mName
| Name of the entity; used for location in the scene.
AxisAlignedBox | mAABB
| Bounds of all billboards in this set.
Real | mBoundingRadius
| Bounding radius.
BillboardOrigin | mOriginType
| Origin of each billboard.
Real | mDefaultWidth
| Default width of each billboard.
Real | mDefaultHeight
| Default height of each billboard.
String | mMaterialName
| Name of the material to use.
MaterialPtr | mpMaterial
| Pointer to the material to use.
bool | mAllDefaultSize
| True if no billboards in this set have been resized - greater efficiency.
bool | mAutoExtendPool
| Flag indicating whether to autoextend pool.
bool | mFixedTextureCoords
bool | mWorldSpace
ActiveBillboardList | mActiveBillboards
| Active billboard list.
FreeBillboardQueue | mFreeBillboards
| Free billboard queue.
BillboardPool | mBillboardPool
| Pool of billboard instances for use and reuse in the active billboard list.
VertexData * | mVertexData
| The vertex position data for all billboards in this set.
HardwareVertexBufferSharedPtr | mMainBuf
| Shortcut to main buffer (positions, colours, texture coords).
float * | mLockPtr
| Locked pointer to buffer.
Vector3 | mVOffset [4]
| Boundary offsets based on origin and camera orientation Vector3 vLeftOff, vRightOff, vTopOff, vBottomOff; Final vertex offsets, used where sizes all default to save calcs.
Camera * | mCurrentCamera
| Current camera.
Real | mLeftOff
Real | mRightOff
Real | mTopOff
Real | mBottomOff
Vector3 | mCamX
Vector3 | mCamY
IndexData * | mIndexData
| The vertex index data for all billboards in this set (1 set only).
bool | mCullIndividual
| Flag indicating whether each billboard should be culled separately (default: false).
BillboardType | mBillboardType
| The type of billboard to render.
Vector3 | mCommonDirection
| Common direction for billboards of type BBT_ORIENTED_COMMON.
unsigned short | mNumVisibleBillboards
Node * | mParentNode
| node to which this object is attached
bool | mParentIsTagPoint
bool | mVisible
| Is this object visible?
UserDefinedObject * | mUserObject
| User defined object which is linked to this object.
RenderQueueGroupID | mRenderQueueID
| The render queue to use when rendering this object.
bool | mRenderQueueIDSet
| Flags whether the RenderQueue's default should be used.
unsigned long | mQueryFlags
| Flags determining whether this object is included / excluded from scene queries.
AxisAlignedBox | mWorldAABB
| Cached world AABB of this object.
Sphere | mWorldBoundingSphere
AxisAlignedBox | mWorldDarkCapBounds
| World space AABB of this object's dark cap.
bool | mCastShadows
| Does this object cast shadows?
CustomParameterMap | mCustomParameters
bool | mRenderDetailOverrideable

## Static Protected Attributes

String | msMovableType
| Shared class-level name for Movable type.
const PlaneList | msDummyPlaneList

## Private Member Functions

void | _createBuffers (void)
| Internal method creates vertex and index buffers.

## Private Attributes

bool | mBuffersCreated
| Flag indicating whether the HW buffers have been created.
unsigned int | mPoolSize
| The number of billboard in the pool.
bool | mExternalData
| Is external billboard data in use?

## Detailed Description

A collection of billboards (faces which are always facing the camera) with the same (default) dimensions, material and which are fairly close proximity to each other.

Remarks:
  Billboards are rectangles made up of 2 tris which are always facing the camera. They are typically used for special effects like particles. This class collects together a set of billboards with the same (default) dimensions, material and relative locality in order to process them more efficiently. The entire set of billboards will be culled as a whole (by default, although this can be changed if you want a large set of billboards which are spread out and you want them culled individually), individual Billboards have locations which are relative to the set (which itself derives it's position from the SceneNode it is attached to since it is a MoveableObject), they will be rendered as a single rendering operation, and some calculations will be sped up by the fact that they use the same dimensions so some workings can be reused.

  A BillboardSet can be created using the SceneManager::createBillboardSet method. They can also be used internally by other classes to create effects.

Note:
  Billboard bounds are only automatically calculated when you create them. If you modify the position of a billboard you may need to call _updateBounds if the billboard moves outside the original bounds. Similarly, the bounds do no shrink when you remove a billboard, if you want them to call _updateBounds, but note this requires a potentially expensive examination of every billboard in the set.

Definition at line 86 of file OgreBillboardSet.h.

## Member Typedef Documentation

typedef std::list<Billboard*> Ogre::BillboardSet::ActiveBillboardList `[protected]`

| Definition at line 123 of file OgreBillboardSet.h.

typedef std::vector<Billboard*> Ogre::BillboardSet::BillboardPool `[protected]`

| Definition at line 125 of file OgreBillboardSet.h.

typedef std::map<size_t, Vector4> Ogre::Renderable::CustomParameterMap `[protected, inherited]`

| Definition at line 251 of file OgreRenderable.h.

typedef std::deque<Billboard*> Ogre::BillboardSet::FreeBillboardQueue `[protected]`

| Definition at line 124 of file OgreBillboardSet.h.

typedef std::vector<ShadowRenderable*> Ogre::ShadowCaster::ShadowRenderableList `[inherited]`

| Definition at line 121 of file OgreShadowCaster.h.

typedef VectorIterator<ShadowRenderableList> Ogre::ShadowCaster::ShadowRenderableListIterator `[inherited]`

| Definition at line 122 of file OgreShadowCaster.h.

## Constructor & Destructor Documentation

Ogre::BillboardSet::BillboardSet | ( |  | ) | `[protected]`

| Private constructor (instances cannot be created directly).

Ogre::BillboardSet::BillboardSet | ( | const String & | name,
|  | unsigned int | poolSize = 20,
|  | bool | externalDataSource = false
| ) |

Usual constructor - this is called by the SceneManager.

Parameters:

  name | The name to give the billboard set (must be unique)
  poolSize | The initial size of the billboard pool. Estimate of the number of billboards which will be required, and pass it using this parameter. The set will preallocate this number to avoid memory fragmentation. The default behaviour once this pool has run out is to double it.

  externalDataSource

  If true, the source of data for drawing the billboards will not be the internal billboard list, but external data. When driving thebillboard from external data, you must call _notifyCurrentCamera to reorient the billboards, setPoolSize to set the maximum billboards you want to use, beginBillboards to start the update, and injectBillboard per billboard, followed by endBillboards.

See also:
  BillboardSet::setAutoextend

virtual Ogre::BillboardSet::~BillboardSet | ( |  | ) | `[virtual]`

## Member Function Documentation

void Ogre::BillboardSet::_createBuffers | ( | void |  | ) | `[private]`

| Internal method creates vertex and index buffers.

virtual Matrix4 Ogre::MovableObject::_getParentNodeFullTransform | ( | void |  | ) | const`[virtual, inherited]`

| return the full transformation of the parent sceneNode or the attachingPoint node

virtual void Ogre::MovableObject::_notifyAttached | ( | Node * | parent,
|  | bool | isTagPoint = false
| ) | `[virtual, inherited]`

| Internal method called to notify the object that it has been attached to a node. Reimplemented in Ogre::Entity, and Ogre::ParticleSystem.

virtual void Ogre::BillboardSet::_notifyBillboardResized | ( | void |  | ) | `[virtual]`

| Internal callback used by Billboards to notify their parent that they have been resized.

virtual void Ogre::BillboardSet::_notifyBillboardTextureCoordsModified | ( | void |  | ) | `[virtual]`

| Notifies the billboardset that texture coordinates will be modified for this set. Definition at line 507 of file OgreBillboardSet.h.

virtual void Ogre::BillboardSet::_notifyCurrentCamera | ( | Camera * | cam | ) | `[virtual]`

Overridden from MovableObject.

See also:
  MovableObject

Implements Ogre::MovableObject.

virtual void Ogre::BillboardSet::_updateBounds | ( | void |  | ) | `[virtual]`

| Update the bounds of the billboardset.

virtual void Ogre::Renderable::_updateCustomGpuParameter | ( | const GpuProgramParameters::AutoConstantEntry & | constantEntry,
|  | GpuProgramParameters * | params
| ) | const`[virtual, inherited]`

Update a custom GpuProgramParameters constant which is derived from information only this Renderable knows.

Remarks:
  This method allows a Renderable to map in a custom GPU program parameter based on it's own data. This is represented by a GPU auto parameter of ACT_CUSTOM, and to allow there to be more than one of these per Renderable, the 'data' field on the auto parameter will identify which parameter is being updated. The implementation of this method must identify the parameter being updated, and call a 'setConstant' method on the passed in GpuProgramParameters object, using the details provided in the incoming auto constant setting to identify the index at which to set the parameter.

  You do not need to override this method if you're using the standard sets of data associated with the Renderable as provided by setCustomParameter and getCustomParameter. By default, the implementation will map from the value indexed by the 'constantEntry.data' parameter to a value previously set by setCustomParameter. But custom Renderables are free to override this if they want, in any case.

Parameters:

  constantEntry | The auto constant entry referring to the parameter being updated
  params | The parameters object which this method should call to set the updated parameters.

Reimplemented in Ogre::TerrainRenderable.

Definition at line 219 of file OgreRenderable.h.

References Ogre::GpuProgramParameters::AutoConstantEntry::data, Ogre::GpuProgramParameters::AutoConstantEntry::index, and params.

virtual void Ogre::BillboardSet::_updateRenderQueue | ( | RenderQueue * | queue | ) | `[virtual]`

Overridden from MovableObject.

See also:
  MovableObject

Implements Ogre::MovableObject.

virtual void Ogre::MovableObject::addQueryFlags | ( | unsigned long | flags | ) | `[virtual, inherited]`

| As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object. Definition at line 203 of file OgreMovableObject.h.

void Ogre::BillboardSet::beginBillboards | ( | void |  | ) |

| Begin injection of billboard data; applicable when constructing the BillboardSet for external data use.

bool Ogre::BillboardSet::billboardVisible | ( | Camera * | cam,
|  | const Billboard & | bill
| ) | `[protected]`

| Internal method for culling individual billboards.

virtual void Ogre::BillboardSet::clear | ( |  | ) | `[virtual]`

| Empties this set of all billboards.

Billboard* Ogre::BillboardSet::createBillboard | ( | Real | x,
|  | Real | y,
|  | Real | z,
|  | const ColourValue & | colour = ColourValue::White
| ) |

Creates a new billboard and adds it to this set.

Remarks:
  Behaviour once the billboard pool has been exhausted depends on the BillboardSet::setAutoextendPool option.

Parameters:

  x |
  y |
  z | The position of the new billboard realtive to the certer of the set
  colour | Optional base colour of the billboard.

Returns:
  On success, a pointer to a newly created Billboard is returned.

  On failiure (i.e. no more space and can't autoextend), NULL is returned.

See also:
  BillboardSet::setAutoextend

Billboard* Ogre::BillboardSet::createBillboard | ( | const Vector3 & | position,
|  | const ColourValue & | colour = ColourValue::White
| ) |

Creates a new billboard and adds it to this set.

Remarks:
  Behaviour once the billboard pool has been exhausted depends on the BillboardSet::setAutoextendPool option.

Parameters:

  position | The position of the new billboard realtive to the certer of the set
  colour | Optional base colour of the billboard.

Returns:
  On success, a pointer to a newly created Billboard is returned.

  On failiure (i.e. no more space and can't autoextend), NULL is returned.

See also:
  BillboardSet::setAutoextend

void Ogre::BillboardSet::endBillboards | ( | void |  | ) |

| Finish defining billboards.

virtual void Ogre::ShadowCaster::extrudeBounds | ( | AxisAlignedBox & | box,
|  | const Vector4 & | lightPos,
|  | Real | extrudeDist
| ) | const`[protected, virtual, inherited]`

Utility method for extruding a bounding box.

Parameters:

  box | Original bounding box, will be updated in-place
  lightPos | 4D light position in object space, when w=0.0f this represents a directional light
  extrudeDist | The distance to extrude

void Ogre::ShadowCaster::extrudeVertices | ( | HardwareVertexBufferSharedPtr | vertexBuffer,
|  | size_t | originalVertexCount,
|  | const Vector4 & | lightPos,
|  | Real | extrudeDist
| ) | `[static, inherited]`

Utility method for extruding vertices based on a light.

Remarks:
  Unfortunately, because D3D cannot handle homogenous (4D) position coordinates in the fixed-function pipeline (GL can, but we have to be cross-API), when we extrude in software we cannot extrude to infinity the way we do in the vertex program (by setting w to 0.0f). Therefore we extrude by a fixed distance, which may cause some problems with larger scenes. Luckily better hardware (ie vertex programs) can fix this.

Parameters:

  vertexBuffer | The vertex buffer containing ONLY xyz position values, which must be originalVertexCount * 2 * 3 floats long.
  originalVertexCount | The count of the original number of vertices, ie the number in the mesh, not counting the doubling which has already been done (by VertexData::prepareForShadowVolume) to provide the extruded area of the buffer.
  lightPos | 4D light position in object space, when w=0.0f this represents a directional light
  extrudeDist | The distance to extrude

virtual void Ogre::BillboardSet::genBillboardAxes | ( | Camera * | cam,
|  | Vector3 * | pX,
|  | Vector3 * | pY,
|  | const Billboard * | pBill = 0
| ) | `[protected, virtual]`

Internal method for generating billboard corners.

Remarks:
  Optional parameter pBill is only present for type BBT_ORIENTED_SELF

virtual void Ogre::ShadowCaster::generateShadowVolume | ( | EdgeData * | edgeData,
|  | HardwareIndexBufferSharedPtr | indexBuffer,
|  | const Light * | light,
|  | ShadowRenderableList & | shadowRenderables,
|  | unsigned long | flags
| ) | `[protected, virtual, inherited]`

Generates the indexes required to render a shadow volume into the index buffer which is passed in, and updates shadow renderables to use it.

Parameters:

  edgeData | The edge information to use
  indexBuffer | The buffer into which to write data into; current contents are assumed to be discardable.
  light | The light, mainly for type info as silhouette calculations should already have been done in updateEdgeListLightFacing
  shadowRenderables | A list of shadow renderables which has already been constructed but will need populating with details of the index ranges to be used.
  flags | Additional controller flags, see ShadowRenderableFlags

void Ogre::BillboardSet::genVertices | ( | const Vector3 *const | offsets,
|  | const Billboard & | pBillboard
| ) | `[protected]`

Internal method for generating vertex data.

Parameters:

  offsets | Array of 4 Vector3 offsets
  bb | Referenceto billboard

void Ogre::BillboardSet::genVertOffsets | ( | Real | inleft,
|  | Real | inright,
|  | Real | intop,
|  | Real | inbottom,
|  | Real | width,
|  | Real | height,
|  | const Vector3 & | x,
|  | const Vector3 & | y,
|  | Vector3 * | pDestVec
| ) | `[protected]`

Internal method generates vertex offsets.

Remarks:
  Takes in parametric offsets as generated from getParametericOffsets, width and height values and billboard x and y axes as generated from genBillboardAxes. Fills output array of 4 vectors with vector offsets from origin for left-top, right-top, left-bottom, right-bottom corners.

virtual bool Ogre::BillboardSet::getAutoextend | ( | void |  | ) | const`[virtual]`

Returns true if the billboard pool automatically extends.

See also:
  BillboardSet::setAutoextend

virtual Billboard* Ogre::BillboardSet::getBillboard | ( | unsigned int | index | ) | const`[virtual]`

Returns a pointer to the billboard at the supplied index.

Note:
  This method requires linear time since the billboard list is a linked list.

Parameters:

  index | The index of the billboard that is requested.

Returns:
  On success, a valid pointer to the requested billboard is returned.

  On failiure, NULL is returned.

virtual BillboardOrigin Ogre::BillboardSet::getBillboardOrigin | ( | void |  | ) | const`[virtual]`

Gets the point which acts as the origin point for all billboards in this set.

Returns:
  A member of the BillboardOrigin enum specifying the origin for all the billboards in this set.

virtual BillboardType Ogre::BillboardSet::getBillboardType | ( | void |  | ) | const`[virtual]`

| Returns the billboard type in use.

virtual const AxisAlignedBox& Ogre::BillboardSet::getBoundingBox | ( | void |  | ) | const`[virtual]`

Overridden from MovableObject.

See also:
  MovableObject

Implements Ogre::MovableObject.

virtual Real Ogre::BillboardSet::getBoundingRadius | ( | void |  | ) | const`[virtual]`

Overridden from MovableObject.

See also:
  MovableObject

Implements Ogre::MovableObject.

bool Ogre::MovableObject::getCastShadows | ( | void |  | ) | const`[virtual, inherited]`

| Returns whether shadow casting is enabled for this object. Implements Ogre::ShadowCaster. Definition at line 238 of file OgreMovableObject.h.

virtual bool Ogre::Renderable::getCastsShadows | ( | void |  | ) | const`[virtual, inherited]`

Method which reports whether this renderable would normally cast a shadow.

Remarks:
  Subclasses should override this if they could have been used to generate a shadow.

Reimplemented in Ogre::StaticGeometry::GeometryBucket, and Ogre::SubEntity.

Definition at line 154 of file OgreRenderable.h.

virtual const PlaneList& Ogre::Renderable::getClipPlanes | ( |  | ) | const`[virtual, inherited]`

| Definition at line 146 of file OgreRenderable.h. References Ogre::PlaneList.

virtual const Vector3& Ogre::BillboardSet::getCommonDirection | ( | void |  | ) | const`[virtual]`

| Gets the common direction for all billboards (BBT_ORIENTED_COMMON).

virtual bool Ogre::BillboardSet::getCullIndividually | ( | void |  | ) | const`[virtual]`

| Returns whether or not billbards in this are tested individually for culling.

const Vector4& Ogre::Renderable::getCustomParameter | ( | size_t | index | ) | const`[inherited]`

Gets the custom value associated with this Renderable at the given index.

Parameters:

  @see | setCustomParaemter for full details.

Definition at line 180 of file OgreRenderable.h.

References OGRE_EXCEPT.

const AxisAlignedBox& Ogre::MovableObject::getDarkCapBounds | ( | const Light & | light,
|  | Real | dirLightExtrusionDist
| ) | const`[virtual, inherited]`

| Overridden member from ShadowCaster. Implements Ogre::ShadowCaster.

virtual Real Ogre::BillboardSet::getDefaultHeight | ( | void |  | ) | const`[virtual]`

| See setDefaultDimensions - this gets 1 component individually.

virtual Real Ogre::BillboardSet::getDefaultWidth | ( | void |  | ) | const`[virtual]`

| See setDefaultDimensions - this gets 1 component individually.

EdgeData* Ogre::MovableObject::getEdgeList | ( | void |  | ) | `[virtual, inherited]`

| Define a default implementation of method from ShadowCaster which implements no shadows. Implements Ogre::ShadowCaster. Reimplemented in Ogre::Entity, and Ogre::StaticGeometry::Region. Definition at line 213 of file OgreMovableObject.h.

Real Ogre::ShadowCaster::getExtrusionDistance | ( | const Vector3 & | objectPos,
|  | const Light * | light
| ) | const`[protected, inherited]`

| Helper moethod for calculating extrusion distance.

const AxisAlignedBox& Ogre::MovableObject::getLightCapBounds | ( | void |  | ) | const`[virtual, inherited]`

| Overridden member from ShadowCaster. Implements Ogre::ShadowCaster.

const LightList& Ogre::BillboardSet::getLights | ( | void |  | ) | const`[virtual]`

Remarks:
  Directional lights, which have no position, will always be first on this list.

Implements Ogre::Renderable.

virtual const MaterialPtr& Ogre::BillboardSet::getMaterial | ( | void |  | ) | const`[virtual]`

Overridden from MovableObject.

See also:
  MovableObject

Implements Ogre::Renderable.

virtual const String& Ogre::BillboardSet::getMaterialName | ( | void |  | ) | const`[virtual]`

Sets the name of the material to be used for this billboard set.

Returns:
  The name of the material that is used for this set.

virtual const String& Ogre::BillboardSet::getMovableType | ( | void |  | ) | const`[virtual]`

| Overridden from MovableObject. Implements Ogre::MovableObject.

virtual const String& Ogre::BillboardSet::getName | ( | void |  | ) | const`[virtual]`

| Overridden from MovableObject. Implements Ogre::MovableObject.

virtual bool Ogre::Renderable::getNormaliseNormals | ( | void |  | ) | const`[virtual, inherited]`

| Returns whether or not this Renderable wishes the hardware to normalise normals. Reimplemented in Ogre::SubEntity. Definition at line 138 of file OgreRenderable.h.

virtual int Ogre::BillboardSet::getNumBillboards | ( | void |  | ) | const`[virtual]`

| Returns the number of active billboards which currently make up this set.

virtual unsigned short Ogre::Renderable::getNumWorldTransforms | ( | void |  | ) | const`[virtual, inherited]`

Returns the number of world transform matrices this renderable requires.

Remarks:
  When a renderable uses vertex blending, it uses multiple world matrices instead of a single one. Each vertex sent to the pipeline can reference one or more matrices in this list with given weights. If a renderable does not use vertex blending this method returns 1, which is the default for simplicity.

Reimplemented in Ogre::BorderRenderable, and Ogre::SubEntity.

Definition at line 104 of file OgreRenderable.h.

void Ogre::BillboardSet::getParametricOffsets | ( | Real & | left,
|  | Real & | right,
|  | Real & | top,
|  | Real & | bottom
| ) | `[protected]`

| Internal method, generates parametric offsets based on origin.

virtual Node* Ogre::MovableObject::getParentNode | ( | void |  | ) | const`[virtual, inherited]`

Returns the node to which this object is attached.

Remarks:
  A MovableObject may be attached to either a SceneNode or to a TagPoint, the latter case if it's attached to a bone on an animated entity. Both are Node subclasses so this method will return either.

virtual SceneNode* Ogre::MovableObject::getParentSceneNode | ( | void |  | ) | const`[virtual, inherited]`

Returns the scene node to which this object is attached.

Remarks:
  A MovableObject may be attached to either a SceneNode or to a TagPoint, the latter case if it's attached to a bone on an animated entity. This method will return the scene node of the parent entity if the latter is true.

Real Ogre::MovableObject::getPointExtrusionDistance | ( | const Light * | l | ) | const`[virtual, inherited]`

| Get the distance to extrude for a point/spot light. Implements Ogre::ShadowCaster.

virtual unsigned int Ogre::BillboardSet::getPoolSize | ( | void |  | ) | const`[virtual]`

Returns the current size of the billboard pool.

Returns:
  The current size of the billboard pool.

See also:
  BillboardSet::setAutoextend

virtual unsigned long Ogre::MovableObject::getQueryFlags | ( | void |  | ) | const`[virtual, inherited]`

| Returns the query flags relevant for this object. Definition at line 210 of file OgreMovableObject.h.

virtual SceneDetailLevel Ogre::Renderable::getRenderDetail | ( |  | ) | const`[virtual, inherited]`

| Returns the preferred rasterisation mode of this renderable. Reimplemented in Ogre::SubEntity. Definition at line 135 of file OgreRenderable.h. References Ogre::SceneDetailLevel, and Ogre::SDL_SOLID.

virtual bool Ogre::Renderable::getRenderDetailOverrideable | ( | void |  | ) | const`[virtual, inherited]`

| Gets whether this renderable's chosen detail level can be overridden (downgraded) by the camera setting. Reimplemented in Ogre::BorderRenderable. Definition at line 243 of file OgreRenderable.h.

virtual void Ogre::BillboardSet::getRenderOperation | ( | RenderOperation & | op | ) | `[virtual]`

Overridden from MovableObject.

See also:
  MovableObject

Implements Ogre::Renderable.

virtual RenderQueueGroupID Ogre::MovableObject::getRenderQueueGroup | ( | void |  | ) | const`[virtual, inherited]`

| Gets the queue group for this entity, see setRenderQueueGroup for full details.

ShadowRenderableListIterator Ogre::MovableObject::getShadowVolumeRenderableIterator | ( | ShadowTechnique | shadowTechnique,
|  | const Light * | light,
|  | HardwareIndexBufferSharedPtr * | indexBuffer,
|  | bool | extrudeVertices,
|  | Real | extrusionDist,
|  | unsigned long | flags = 0
| ) | `[virtual, inherited]`

| Define a default implementation of method from ShadowCaster which implements no shadows. Implements Ogre::ShadowCaster. Reimplemented in Ogre::Entity, and Ogre::StaticGeometry::Region.

Real Ogre::BillboardSet::getSquaredViewDepth | ( | const Camera * | cam | ) | const`[virtual]`

| Overridden, see Renderable. Implements Ogre::Renderable.

virtual Technique* Ogre::Renderable::getTechnique | ( | void |  | ) | const`[virtual, inherited]`

Retrieves a pointer to the Material Technique this renderable object uses.

Remarks:
  This is to allow Renderables to use a chosen Technique if they wish, otherwise they will use the best Technique available for the Material they are using.

Reimplemented in Ogre::StaticGeometry::GeometryBucket, and Ogre::SubEntity.

Definition at line 69 of file OgreRenderable.h.

virtual UserDefinedObject* Ogre::MovableObject::getUserObject | ( | void |  | ) | `[virtual, inherited]`

| Retrieves a pointer to a custom application object associated with this movable by an earlier call to setUserObject. Definition at line 171 of file OgreMovableObject.h.

virtual const AxisAlignedBox& Ogre::MovableObject::getWorldBoundingBox | ( | bool | derive = false | ) | const`[virtual, inherited]`

| Retrieves the axis-aligned bounding box for this object in world coordinates. Implements Ogre::ShadowCaster. Reimplemented in Ogre::Entity.

virtual const Sphere& Ogre::MovableObject::getWorldBoundingSphere | ( | bool | derive = false | ) | const`[virtual, inherited]`

| Retrieves the worldspace bounding sphere for this object. Reimplemented in Ogre::Entity.

const Quaternion& Ogre::BillboardSet::getWorldOrientation | ( | void |  | ) | const`[virtual]`

| Implements Ogre::Renderable.

const Vector3& Ogre::BillboardSet::getWorldPosition | ( | void |  | ) | const`[virtual]`

| Implements Ogre::Renderable.

virtual void Ogre::BillboardSet::getWorldTransforms | ( | Matrix4 * | xform | ) | const`[virtual]`

Overridden from MovableObject.

See also:
  MovableObject

Implements Ogre::Renderable.

virtual void Ogre::BillboardSet::increasePool | ( | unsigned int | size | ) | `[protected, virtual]`

| Internal method for increasing pool size.

void Ogre::BillboardSet::injectBillboard | ( | const Billboard & | bb | ) |

| Define a billboard.

virtual bool Ogre::MovableObject::isAttached | ( | void |  | ) | const`[virtual, inherited]`

| Returns true if this object is attached to a SceneNode or TagPoint.

virtual bool Ogre::MovableObject::isInScene | ( | void |  | ) | const`[virtual, inherited]`

| Returns true if this object is attached to a SceneNode or TagPoint, and this SceneNode / TagPoint is currently in an active part of the scene graph.

virtual bool Ogre::MovableObject::isVisible | ( | void |  | ) | const`[virtual, inherited]`

| Returns whether or not this object is supposed to be visible or not. Reimplemented in Ogre::StaticGeometry::Region.

virtual void Ogre::BillboardSet::removeBillboard | ( | Billboard * | pBill | ) | `[virtual]`

Removes a billboard from the set.

Note:
  This version is more efficient than removing by index.

virtual void Ogre::BillboardSet::removeBillboard | ( | unsigned int | index | ) | `[virtual]`

Removes the billboard at the supplied index.

Note:
  This method requires linear time since the billboard list is a linked list.

virtual void Ogre::MovableObject::removeQueryFlags | ( | unsigned long | flags | ) | `[virtual, inherited]`

| As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object. Definition at line 207 of file OgreMovableObject.h.

virtual void Ogre::BillboardSet::setAutoextend | ( | bool | autoextend | ) | `[virtual]`

Tells the set whether to allow automatic extension of the pool of billboards.

Remarks:
  A BillboardSet stores a pool of pre-constructed billboards which are used as needed when a new billboard is requested. This allows applications to create / remove billboards efficiently without incurring construction / destruction costs (a must for sets with lots of billboards like particle effects). This method allows you to configure the behaviour when a new billboard is requested but the billboard pool has been exhausted.

  The default behaviour is to allow the pool to extend (typically this allocates double the current pool of billboards when the pool is expended), equivalent to calling this method with autoExtend = true. If you set the parameter to false however, any attempt to create a new billboard when the pool has expired will simply fail silently, returning a null pointer.

Parameters:

  autoextend | true to double the pool every time it runs out, false to fail silently.

virtual void Ogre::BillboardSet::setBillboardOrigin | ( | BillboardOrigin | origin | ) | `[virtual]`

Sets the point which acts as the origin point for all billboards in this set.

Remarks:
  This setting controls the fine tuning of where a billboard appears in relation to it's position. It could be that a billboard's position represents it's center (e.g. for fireballs), it could mean the center of the bottom edge (e.g. a tree which is positioned on the ground), the top-left corner (e.g. a cursor).

  The default setting is BBO_CENTER.

Parameters:

  origin | A member of the BillboardOrigin enum specifying the origin for all the billboards in this set.

virtual void Ogre::BillboardSet::setBillboardsInWorldSpace | ( | bool | ws | ) | `[virtual]`

Sets whether billboards should be treated as being in world space.

Remarks:
  This is most useful when you are driving the billboard set from an external data source.

Definition at line 580 of file OgreBillboardSet.h.

virtual void Ogre::BillboardSet::setBillboardType | ( | BillboardType | bbt | ) | `[virtual]`

Sets the type of billboard to render.

Remarks:
  The default sort of billboard (BBT_POINT), always has both x and y axes parallel to the camera's local axes. This is fine for 'point' style billboards (e.g. flares, smoke, anything which is symmetrical about a central point) but does not look good for billboards which have an orientation (e.g. an elongated raindrop). In this case, the oriented billboards are more suitable (BBT_ORIENTED_COMMON or BBT_ORIENTED_SELF) since they retain an independant Y axis and only the X axis is generated, perpendicular to both the local Y and the camera Z.

Parameters:

  bbt | The type of billboard to render

void Ogre::BillboardSet::setBounds | ( | const AxisAlignedBox & | box,
|  | Real | radius
| ) |

Set the bounds of the BillboardSet.

Remarks:
  You may need to call this if you're injecting billboards manually, and you're relying on the BillboardSet to determine culling.

void Ogre::MovableObject::setCastShadows | ( | bool | enabled | ) | `[inherited]`

Sets whether or not this object will cast shadows.

Remarks:
  This setting simply allows you to turn on/off shadows for a given object. An object will not cast shadows unless the scene supports it in any case (see SceneManager::setShadowTechnique), and also the material which is in use must also have shadow casting enabled. By default all entities cast shadows. If, however, for some reason you wish to disable this for a single object then you can do so using this method.

Note:
  This method normally refers to objects which block the light, but since Light is also a subclass of MovableObject, in that context it means whether the light causes shadows itself.

Definition at line 236 of file OgreMovableObject.h.

virtual void Ogre::BillboardSet::setCommonDirection | ( | const Vector3 & | vec | ) | `[virtual]`

Use this to specify the common direction given to billboards of type BBT_ORIENTED_COMMON.

Remarks:
  Use BBT_ORIENTED_COMMON when you want oriented billboards but you know they are always going to be oriented the same way (e.g. rain in calm weather). It is faster for the system to calculate the billboard vertices if they have a common direction.

Parameters:

  vec | The direction for all billboards.

virtual void Ogre::BillboardSet::setCullIndividually | ( | bool | cullIndividual | ) | `[virtual]`

Sets whether culling tests billboards in this individually as well as in a group.

Remarks:
  Billboard sets are always culled as a whole group, based on a bounding box which encloses all billboards in the set. For fairly localised sets, this is enough. However, you can optionally tell the set to also cull individual billboards in the set, i.e. to test each individual billboard before rendering. The default is not to do this.

  This is useful when you have a large, fairly distributed set of billboards, like maybe trees on a landscape. You probably still want to group them into more than one set (maybe one set per section of landscape), which will be culled coarsely, but you also want to cull the billboards individually because they are spread out. Whilst you could have lots of single-tree sets which are culled separately, this would be inefficient to render because each tree would be issued as it's own rendering operation.

  By calling this method with a parameter of true, you can have large billboard sets which are spaced out and so get the benefit of batch rendering and coarse culling, but also have fine-grained culling so unnecessary rendering is avoided.

Parameters:

  cullIndividual | If true, each billboard is tested before being sent to the pipeline as well as the whole set having to pass the coarse group bounding test.

void Ogre::Renderable::setCustomParameter | ( | size_t | index,
|  | const Vector4 & | value
| ) | `[inherited]`

Sets a custom parameter for this Renderable, which may be used to drive calculations for this specific Renderable, like GPU program parameters.

Remarks:
  Calling this method simply associates a numeric index with a 4-dimensional value for this specific Renderable. This is most useful if the material which this Renderable uses a vertex or fragment program, and has an ACT_CUSTOM parameter entry. This parameter entry can refer to the index you specify as part of this call, thereby mapping a custom parameter for this renderable to a program parameter.

Parameters:

  index | The index with which to associate the value. Note that this does not have to start at 0, and can include gaps. It also has no direct correlation with a GPU program parameter index - the mapping between the two is performed by the ACT_CUSTOM entry, if that is used.
  value | The value to associate.

Definition at line 171 of file OgreRenderable.h.

virtual void Ogre::BillboardSet::setDefaultDimensions | ( | Real | width,
|  | Real | height
| ) | `[virtual]`

Sets the default dimensions of the billboards in this set.

Remarks:
  All billboards in a set are created with these default dimensions. The set will render most efficiently if all the billboards in the set are the default size. It is possible to alter the size of individual billboards at the expense of extra calculation. See the Billboard class for more info.

Parameters:

  width | The new default width for the billboards in this set.
  height | The new default height for the billboards in this set.

virtual void Ogre::BillboardSet::setDefaultHeight | ( | Real | height | ) | `[virtual]`

| See setDefaultDimensions - this sets 1 component individually.

virtual void Ogre::BillboardSet::setDefaultWidth | ( | Real | width | ) | `[virtual]`

| See setDefaultDimensions - this sets 1 component individually.

virtual void Ogre::BillboardSet::setMaterialName | ( | const String & | name | ) | `[virtual]`

Sets the name of the material to be used for this billboard set.

Parameters:

  name | The new name of the material to use for this set.

virtual void Ogre::BillboardSet::setPoolSize | ( | unsigned int | size | ) | `[virtual]`

Adjusts the size of the pool of billboards available in this set.

Remarks:
  See the BillboardSet::setAutoextend method for full details of the billboard pool. This method adjusts the preallocated size of the pool. If you try to reduce the size of the pool, the set has the option of ignoring you if too many billboards are already in use. Bear in mind that calling this method will incur significant construction / destruction calls so should be avoided in time-critical code. The same goes for auto-extension, try to avoid it by estimating the pool size correctly up-front.

Parameters:

  size | The new size for the pool.

virtual void Ogre::MovableObject::setQueryFlags | ( | unsigned long | flags | ) | `[virtual, inherited]`

Sets the query flags for this object.

Remarks:
  When performing a scene query, this object will be included or excluded according to flags on the object and flags on the query. This is a bitwise value, so only when a bit on these flags is set, will it be included in a query asking for that flag. The meaning of the bits is application-specific.

Definition at line 199 of file OgreMovableObject.h.

virtual void Ogre::Renderable::setRenderDetailOverrideable | ( | bool | override | ) | `[virtual, inherited]`

Sets whether this renderable's chosen detail level can be overridden (downgraded) by the camera setting.

Parameters:

  override | true means that a lower camera detail will override this renderables detail level, false means it won't.

Definition at line 235 of file OgreRenderable.h.

virtual void Ogre::MovableObject::setRenderQueueGroup | ( | RenderQueueGroupID | queueID | ) | `[virtual, inherited]`

Sets the render queue group this entity will be rendered through.

Remarks:
  Render queues are grouped to allow you to more tightly control the ordering of rendered objects. If you do not call this method, all Entity objects default to the default queue (RenderQueue::getDefaultQueueGroup), which is fine for most objects. You may want to alter this if you want this entity to always appear in front of other objects, e.g. for a 3D menu system or such.

  See RenderQueue for more details.

Parameters:

  queueID | Enumerated value of the queue group to use.

Reimplemented in Ogre::Entity, and Ogre::ParticleSystem.

virtual void Ogre::MovableObject::setUserObject | ( | UserDefinedObject * | obj | ) | `[virtual, inherited]`

Call this to associate your own custom user object instance with this MovableObject.

Remarks:
  By simply making your game / application object a subclass of UserDefinedObject, you can establish a link between an OGRE instance of MovableObject and your own application classes. Call this method to establish the link.

Definition at line 167 of file OgreMovableObject.h.

virtual void Ogre::MovableObject::setVisible | ( | bool | visible | ) | `[virtual, inherited]`

Tells this object whether to be visible or not, if it has a renderable component.

Note:
  An alternative approach of making an object invisible is to detach it from it's SceneNode, or to remove the SceneNode entirely. Detaching a node means that structurally the scene graph changes. Once this change has taken place, the objects / nodes that have been removed have less overhead to the visbility detection pass than simply making the object invisible, so if you do this and leave the objects out of the tree for a long time, it's faster. However, the act of detaching / reattaching nodes is in itself more expensive than setting an object visibility flag, since in the latter case structural changes are not made. Therefore, small or frequent visbility changes are best done using this method; large or more longer term changes are best done by detaching.

Reimplemented in Ogre::Light.

virtual void Ogre::ShadowCaster::updateEdgeListLightFacing | ( | EdgeData * | edgeData,
|  | const Vector4 & | lightPos
| ) | `[protected, virtual, inherited]`

Tells the caster to perform the tasks necessary to update the edge data's light listing.

Can be overridden if the subclass needs to do additional things.

Parameters:

  edgeData | The edge information to update
  lightPos | 4D vector representing the light, a directional light has w=0.0

virtual bool Ogre::Renderable::useIdentityProjection | ( | void |  | ) | const`[virtual, inherited]`

Returns whether or not to use an 'identity' projection.

Remarks:
  Usually Renderable objects will use a projection matrix as determined by the active camera. However, if they want they can cancel this out and use an identity projection, which effectively projects in 2D using a {-1, 1} view space. Useful for overlay rendering. Normal renderables need not override this.

Reimplemented in Ogre::BorderRenderable, Ogre::OverlayElement, and Ogre::Rectangle2D.

Definition at line 114 of file OgreRenderable.h.

virtual bool Ogre::Renderable::useIdentityView | ( | void |  | ) | const`[virtual, inherited]`

Returns whether or not to use an 'identity' projection.

Remarks:
  Usually Renderable objects will use a view matrix as determined by the active camera. However, if they want they can cancel this out and use an identity matrix, which means all geometry is assumed to be relative to camera space already. Useful for overlay rendering. Normal renderables need not override this.

Reimplemented in Ogre::BorderRenderable, Ogre::OverlayElement, and Ogre::Rectangle2D.

Definition at line 124 of file OgreRenderable.h.

## Member Data Documentation

AxisAlignedBox Ogre::BillboardSet::mAABB `[protected]`

| Bounds of all billboards in this set. Definition at line 97 of file OgreBillboardSet.h.

ActiveBillboardList Ogre::BillboardSet::mActiveBillboards `[protected]`

Active billboard list.

Remarks:
  This is a linked list of pointers to billboards in the billboard pool.

  This allows very fast instertions and deletions from anywhere in the list to activate / deactivate billboards (required for particle systems etc) as well as resuse of Billboard instances in the pool without construction & destruction which avoids memory thrashing.

Definition at line 135 of file OgreBillboardSet.h.

bool Ogre::BillboardSet::mAllDefaultSize `[protected]`

| True if no billboards in this set have been resized - greater efficiency. Definition at line 115 of file OgreBillboardSet.h.

bool Ogre::BillboardSet::mAutoExtendPool `[protected]`

| Flag indicating whether to autoextend pool. Definition at line 118 of file OgreBillboardSet.h.

BillboardPool Ogre::BillboardSet::mBillboardPool `[protected]`

Pool of billboard instances for use and reuse in the active billboard list.

Remarks:
  This vector will be preallocated with the estimated size of the set,and will extend as required.

Definition at line 150 of file OgreBillboardSet.h.

BillboardType Ogre::BillboardSet::mBillboardType `[protected]`

| The type of billboard to render. Definition at line 178 of file OgreBillboardSet.h.

Real Ogre::BillboardSet::mBottomOff `[protected]`

| Definition at line 166 of file OgreBillboardSet.h.

Real Ogre::BillboardSet::mBoundingRadius `[protected]`

| Bounding radius. Definition at line 99 of file OgreBillboardSet.h.

bool Ogre::BillboardSet::mBuffersCreated `[private]`

| Flag indicating whether the HW buffers have been created. Definition at line 231 of file OgreBillboardSet.h.

Vector3 Ogre::BillboardSet::mCamX `[protected]`

| Definition at line 168 of file OgreBillboardSet.h.

Vector3 Ogre::BillboardSet::mCamY `[protected]`

| Definition at line 168 of file OgreBillboardSet.h.

bool Ogre::MovableObject::mCastShadows `[protected, inherited]`

| Does this object cast shadows? Definition at line 67 of file OgreMovableObject.h.

Vector3 Ogre::BillboardSet::mCommonDirection `[protected]`

| Common direction for billboards of type BBT_ORIENTED_COMMON. Definition at line 181 of file OgreBillboardSet.h.

bool Ogre::BillboardSet::mCullIndividual `[protected]`

| Flag indicating whether each billboard should be culled separately (default: false). Definition at line 175 of file OgreBillboardSet.h.

Camera* Ogre::BillboardSet::mCurrentCamera `[protected]`

| Current camera. Definition at line 164 of file OgreBillboardSet.h.

CustomParameterMap Ogre::Renderable::mCustomParameters `[protected, inherited]`

| Definition at line 252 of file OgreRenderable.h.

Real Ogre::BillboardSet::mDefaultHeight `[protected]`

| Default height of each billboard. Definition at line 107 of file OgreBillboardSet.h.

Real Ogre::BillboardSet::mDefaultWidth `[protected]`

| Default width of each billboard. Definition at line 105 of file OgreBillboardSet.h.

bool Ogre::BillboardSet::mExternalData `[private]`

| Is external billboard data in use? Definition at line 235 of file OgreBillboardSet.h.

bool Ogre::BillboardSet::mFixedTextureCoords `[protected]`

| Definition at line 120 of file OgreBillboardSet.h.

FreeBillboardQueue Ogre::BillboardSet::mFreeBillboards `[protected]`

Free billboard queue.

Remarks:
  This contains a list of the billboards free for use as new instances as required by the set. Billboard instances are preconstructed up to the estimated size in the mBillboardPool vector and are referenced on this deque at startup. As they get used this deque reduces, as they get released back to to the set they get added back to the deque.

Definition at line 144 of file OgreBillboardSet.h.

IndexData* Ogre::BillboardSet::mIndexData `[protected]`

| The vertex index data for all billboards in this set (1 set only). Definition at line 172 of file OgreBillboardSet.h.

Real Ogre::BillboardSet::mLeftOff `[protected]`

| Definition at line 166 of file OgreBillboardSet.h.

float* Ogre::BillboardSet::mLockPtr `[protected]`

| Locked pointer to buffer. Definition at line 158 of file OgreBillboardSet.h.

HardwareVertexBufferSharedPtr Ogre::BillboardSet::mMainBuf `[protected]`

| Shortcut to main buffer (positions, colours, texture coords). Definition at line 156 of file OgreBillboardSet.h.

String Ogre::BillboardSet::mMaterialName `[protected]`

| Name of the material to use. Definition at line 110 of file OgreBillboardSet.h.

String Ogre::BillboardSet::mName `[protected]`

| Name of the entity; used for location in the scene. Definition at line 94 of file OgreBillboardSet.h.

unsigned short Ogre::BillboardSet::mNumVisibleBillboards `[protected]`

| Definition at line 187 of file OgreBillboardSet.h.

BillboardOrigin Ogre::BillboardSet::mOriginType `[protected]`

| Origin of each billboard. Definition at line 102 of file OgreBillboardSet.h.

bool Ogre::MovableObject::mParentIsTagPoint `[protected, inherited]`

| Definition at line 49 of file OgreMovableObject.h.

Node* Ogre::MovableObject::mParentNode `[protected, inherited]`

| node to which this object is attached Definition at line 48 of file OgreMovableObject.h.

MaterialPtr Ogre::BillboardSet::mpMaterial `[protected]`

| Pointer to the material to use. Definition at line 112 of file OgreBillboardSet.h.

unsigned int Ogre::BillboardSet::mPoolSize `[private]`

| The number of billboard in the pool. Definition at line 233 of file OgreBillboardSet.h.

unsigned long Ogre::MovableObject::mQueryFlags `[protected, inherited]`

| Flags determining whether this object is included / excluded from scene queries. Definition at line 59 of file OgreMovableObject.h.

bool Ogre::Renderable::mRenderDetailOverrideable `[protected, inherited]`

| Definition at line 253 of file OgreRenderable.h.

RenderQueueGroupID Ogre::MovableObject::mRenderQueueID `[protected, inherited]`

| The render queue to use when rendering this object. Definition at line 55 of file OgreMovableObject.h.

bool Ogre::MovableObject::mRenderQueueIDSet `[protected, inherited]`

| Flags whether the RenderQueue's default should be used. Definition at line 57 of file OgreMovableObject.h.

Real Ogre::BillboardSet::mRightOff `[protected]`

| Definition at line 166 of file OgreBillboardSet.h.

const PlaneList Ogre::Renderable::msDummyPlaneList `[static, protected, inherited]`

| Definition at line 250 of file OgreRenderable.h.

String Ogre::BillboardSet::msMovableType `[static, protected]`

| Shared class-level name for Movable type. Definition at line 227 of file OgreBillboardSet.h.

Real Ogre::BillboardSet::mTopOff `[protected]`

| Definition at line 166 of file OgreBillboardSet.h.

UserDefinedObject* Ogre::MovableObject::mUserObject `[protected, inherited]`

| User defined object which is linked to this object. Definition at line 53 of file OgreMovableObject.h.

VertexData* Ogre::BillboardSet::mVertexData `[protected]`

| The vertex position data for all billboards in this set. Definition at line 154 of file OgreBillboardSet.h.

bool Ogre::MovableObject::mVisible `[protected, inherited]`

| Is this object visible? Definition at line 51 of file OgreMovableObject.h.

Vector3 Ogre::BillboardSet::mVOffset[4]`[protected]`

| Boundary offsets based on origin and camera orientation Vector3 vLeftOff, vRightOff, vTopOff, vBottomOff; Final vertex offsets, used where sizes all default to save calcs. Definition at line 162 of file OgreBillboardSet.h.

AxisAlignedBox Ogre::MovableObject::mWorldAABB `[mutable, protected, inherited]`

| Cached world AABB of this object. Reimplemented in Ogre::ParticleSystem. Definition at line 61 of file OgreMovableObject.h.

Sphere Ogre::MovableObject::mWorldBoundingSphere `[mutable, protected, inherited]`

| Definition at line 63 of file OgreMovableObject.h.

AxisAlignedBox Ogre::MovableObject::mWorldDarkCapBounds `[mutable, protected, inherited]`

| World space AABB of this object's dark cap. Definition at line 65 of file OgreMovableObject.h.

bool Ogre::BillboardSet::mWorldSpace `[protected]`

| Definition at line 121 of file OgreBillboardSet.h.

The documentation for this class was generated from the following file:

- OgreBillboardSet.h

Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Feb 12 13:00:08 2006