Orxonox: Ogre::DynamicRenderable Class Reference

# Ogre::DynamicRenderable Class Reference

Abstract base class providing mechanisms for dynamically growing hardware buffers. More...

`#include <src/orxonox/tools/DynamicRenderable.h>`

Inheritance diagram for Ogre::DynamicRenderable:

List of all members.

## Public Member Functions

| DynamicRenderable ()
| Constructor.
virtual Real | getBoundingRadius (void) const
| Implementation of SimpleRenderable.
virtual Real | getSquaredViewDepth (const Camera *cam) const
| Implementation of SimpleRenderable.
void | initialize (RenderOperation::OperationType operationType, bool useIndices)
| Initializes the dynamic renderable.
virtual | ~DynamicRenderable ()
| Virtual destructor.

## Protected Member Functions

virtual void | createVertexDeclaration ()=0
| Creates the vertex declaration.
virtual void | fillHardwareBuffers ()=0
| Fills the hardware vertex and index buffers with data.
void | prepareHardwareBuffers (size_t vertexCount, size_t indexCount)
| Prepares the hardware buffers for the requested vertex and index counts.

## Protected Attributes

size_t | mIndexBufferCapacity
| Maximum capacity of the currently allocated index buffer.
size_t | mVertexBufferCapacity
| Maximum capacity of the currently allocated vertex buffer.

## Detailed Description

Abstract base class providing mechanisms for dynamically growing hardware buffers.

## Constructor & Destructor Documentation

Ogre::DynamicRenderable::DynamicRenderable | ( |  | ) |

Constructor.

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

Virtual destructor.

## Member Function Documentation

virtual void Ogre::DynamicRenderable::createVertexDeclaration | ( |  | ) | `[protected, pure virtual]`

Creates the vertex declaration.

Remarks:
  Override and set mRenderOp.vertexData->vertexDeclaration here. mRenderOp.vertexData will be created for you before this method is called.

Implemented in Ogre::DynamicLines.

Referenced by initialize().

virtual void Ogre::DynamicRenderable::fillHardwareBuffers | ( |  | ) | `[protected, pure virtual]`

Fills the hardware vertex and index buffers with data.

Remarks:
  This function must call prepareHardwareBuffers() before locking the buffers to ensure the they are large enough for the data to be written. Afterwards the vertex and index buffers (if using indices) can be locked, and data can be written to them.

Implemented in Ogre::DynamicLines.

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

Implementation of SimpleRenderable.

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

Implementation of SimpleRenderable.

References orxonox::MT_Type::Vector3.

void Ogre::DynamicRenderable::initialize | ( | RenderOperation::OperationType | operationType,
|  | bool | useIndices |
| ) |  |  |

Initializes the dynamic renderable.

Remarks:
  This function should only be called once. It initializes the render operation, and calls the abstract function createVertexDeclaration().

Parameters:

  | operationType | The type of render operation to perform.
  | useIndices | Specifies whether to use indices to determine the vertices to use as input.

References createVertexDeclaration(), mIndexBufferCapacity, and mVertexBufferCapacity.

Referenced by Ogre::DynamicLines::DynamicLines().

void Ogre::DynamicRenderable::prepareHardwareBuffers | ( | size_t | vertexCount,
|  | size_t | indexCount |
| ) |  |  | `[protected]`

Prepares the hardware buffers for the requested vertex and index counts.

Remarks:
  This function must be called before locking the buffers in fillHardwareBuffers(). It guarantees that the hardware buffers are large enough to hold at least the requested number of vertices and indices (if using indices). The buffers are possibly reallocated to achieve this.

  The vertex and index count in the render operation are set to the values of vertexCount and indexCount respectively.

Parameters:

  | vertexCount | The number of vertices the buffer must hold.
  | indexCount | The number of indices the buffer must hold. This parameter is ignored if not using indices.

References mIndexBufferCapacity, and mVertexBufferCapacity.

Referenced by Ogre::DynamicLines::fillHardwareBuffers().

## Member Data Documentation

size_t Ogre::DynamicRenderable::mIndexBufferCapacity`[protected]`

Maximum capacity of the currently allocated index buffer.

Referenced by initialize(), and prepareHardwareBuffers().

size_t Ogre::DynamicRenderable::mVertexBufferCapacity`[protected]`

Maximum capacity of the currently allocated vertex buffer.

Referenced by initialize(), and prepareHardwareBuffers().

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

- src/orxonox/tools/DynamicRenderable.h
- src/orxonox/tools/DynamicRenderable.cc