32 #ifndef _BillboardChain_H__ 33 #define _BillboardChain_H__ 117 bool useTextureCoords =
true,
bool useColours =
true,
bool dynamic =
true);
123 virtual void setMaxChainElements(
size_t maxElements);
130 virtual void setNumberOfChains(
size_t numChains);
142 virtual void setUseTextureCoords(
bool use);
173 virtual void setOtherTextureCoordRange(
Real start,
Real end);
185 virtual void setUseVertexColours(
bool use);
194 virtual void setDynamic(
bool dyn);
209 virtual void addChainElement(
size_t chainIndex,
210 const Element& billboardChainElement);
214 virtual void removeChainElement(
size_t chainIndex);
221 virtual void updateChainElement(
size_t chainIndex,
size_t elementIndex,
222 const Element& billboardChainElement);
228 virtual const Element& getChainElement(
size_t chainIndex,
size_t elementIndex)
const;
231 virtual size_t getNumChainElements(
size_t chainIndex)
const;
234 virtual void clearChain(
size_t chainIndex);
236 virtual void clearAllChains(
void);
263 Real getSquaredViewDepth(
const Camera* cam)
const;
264 Real getBoundingRadius(
void)
const;
267 const String& getMovableType(
void)
const;
271 void getWorldTransforms(
Matrix4 *)
const;
275 bool debugRenderables =
false);
349 virtual void setupChainContainers(
void);
351 virtual void setupVertexDeclaration(
void);
353 virtual void setupBuffers(
void);
355 virtual void updateVertexBuffer(
Camera* cam);
357 virtual void updateIndexBuffer(
void);
358 virtual void updateBoundingBox(
void)
const;
376 const String& getType(
void)
const;
Real mRadius
Bounding radius.
size_t tail
The 'tail' of the chain, relative to start.
Abstract class defining the interface all renderable objects must implement.
bool mUseTexCoords
Use texture coords?
static const size_t SEGMENT_EMPTY
Chain segment has no elements.
ChainSegmentList mChainSegmentList
Abstract class defining a movable object in a scene.
static String FACTORY_TYPE_NAME
Summary class collecting together vertex source information.
Implementation of a Quaternion, i.e.
bool mVertexContentDirty
Is the vertex buffer dirty?
Tex coord in elements is treated as the 'u' texture coordinate.
virtual bool getUseTextureCoords(void) const
Gets whether texture coordinate information should be included in the final buffers generated...
Simple struct defining a chain segment by referencing a subset of the preallocated buffer (which will...
static String AUTODETECT_RESOURCE_GROUP_NAME
Special resource group name which causes resource group to be automatically determined based on searc...
Class representing colour.
float Real
Software floating point type.
static const Vector3 UNIT_X
Class to manage the scene object rendering queue.
Summary class collecting together index data source information.
bool mDynamic
Dynamic use?
AxisAlignedBox mAABB
AABB.
TexCoordDirection mTexCoordDir
Texture coord direction.
String mMaterialName
Material.
vector< ChainSegment >::type ChainSegmentList
virtual size_t getMaxChainElements(void) const
Get the maximum number of chain elements per chain.
virtual size_t getNumberOfChains(void) const
Get the number of chain segments (this class can render multiple chains at once using the same materi...
virtual const String & getMaterialName(void) const
Get the material name in use.
Class encapsulating a standard 4x4 homogeneous matrix.
virtual bool getUseVertexColours(void) const
Gets whether vertex colour information should be included in the final buffers generated.
Standard 3-dimensional vector.
Camera * mVertexCameraUsed
Camera last used to build the vertex buffer.
virtual const Real * getOtherTextureCoordRange(void) const
Get the range of the texture coordinates generated across the width of the chain elements.
virtual TexCoordDirection getTextureCoordDirection(void)
Gets the direction in which texture coords specified on each element are deemed to run...
ElementList mChainElementList
The list holding the chain elements.
Real texCoord
U or V texture coord depending on options.
Visitor object that can be used to iterate over a collection of Renderable instances abstractly...
bool mIndexContentDirty
Is the index buffer dirty?
vector< Element >::type ElementList
Defines the functionality of a 3D API.
map< String, String >::type NameValuePairList
Name / value parameter pair (first = name, second = value)
size_t mChainCount
Number of chains.
TexCoordDirection
The direction in which texture coordinates from elements of the chain are used.
bool mFaceCamera
When true, the billboards always face the camera.
size_t head
The 'head' of the chain, relative to start.
A viewpoint from which the scene will be rendered.
bool mUseVertexColour
Use vertex colour?
IndexData * mIndexData
Index data (to allow multiple unconnected chains)
bool mBoundsDirty
Do the bounds need redefining?
bool mBuffersNeedRecreating
Do the buffers need recreating?
VertexData * mVertexData
Vertex data.
virtual bool getDynamic(void) const
Gets whether or not the buffers created for this object are suitable for dynamic alteration.
size_t mMaxElementsPerChain
Maximum length of each chain.
size_t start
The start of this chains subset of the buffer.
'New' rendering operation using vertex buffers.
Quaternion orientation
Only used when mFaceCamera == false.
Interface definition for a factory class which produces a certain kind of MovableObject, and can be registered with Root in order to allow all clients to produce new instances of this object, integrated with the standard Ogre processing.
Contains the data of an element of the BillboardChain.
A 3D box aligned with the x/y/z axes.
Manages the organisation and rendering of a 'scene' i.e.
Vector3 mNormalBase
Used when mFaceCamera == false; determines the billboard's "normal".
bool mVertexDeclDirty
Is the vertex declaration dirty?
Allows the rendering of a chain of connected billboards.
Factory object for creating BillboardChain instances.