Ogre::Volume::MeshBuilder Class Reference

Class to build up a mesh with vertices and indices. More...

`#include <OgreVolumeMeshBuilder.h>`

Inheritance diagram for Ogre::Volume::MeshBuilder:
[legend]

## Public Member Functions

| MeshBuilder (void)
| Constructor. More...
void | addTriangle (const Vector3 &v0, const Vector3 &n0, const Vector3 &v1, const Vector3 &n1, const Vector3 &v2, const Vector3 &n2)
| Adds a triangle to the mesh with reusing already existent vertices via their index. More...
void | executeCallback (MeshBuilderCallback *callback, const SimpleRenderable *simpleRenderable, size_t level, int inProcess) const
| Executes a MeshBuilderCallback on this instance. More...
size_t | generateBuffers (RenderOperation &operation)
| Generates the vertex- and indexbuffer of this mesh on the given RenderOperation. More...
Entity * | generateWithManualObject (SceneManager *sceneManager, const String &name, const String &material)
| Generates an entity via a ManualObject. More...
AxisAlignedBox | getBoundingBox (void)
| Gets the bounding box of the mesh. More...
void | operator delete (void *ptr)
void | operator delete (void *ptr, void *)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info More...
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new More...
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info More...
void * | operator new[] (size_t sz)

## Static Public Member Functions

static void | addCubeToManualObject (ManualObject *manual, const Vector3 &c0, const Vector3 &c1, const Vector3 &c2, const Vector3 &c3, const Vector3 &c4, const Vector3 &c5, const Vector3 &c6, const Vector3 &c7, uint32 &baseIndex)
| Adds a cube to a manual object rendering lines. More...

## Protected Types

typedef map< Vertex, size_t >::type | UMapVertexIndex
| Map to get a vertex index. More...

## Protected Member Functions

void | addVertex (const Vertex &v)
| Adds a vertex to the data structure, reusing the index if it is already known. More...

## Protected Attributes

AxisAlignedBox | mBox
| Holds the bounding box. More...
bool | mBoxInit
| Holds whether the initial bounding box has been set. More...
UMapVertexIndex | mIndexMap
VecIndices | mIndices
| Holds the indices of the mesh. More...
VecVertex | mVertices
| Holds the vertices of the mesh. More...

## Static Protected Attributes

static const unsigned short | MAIN_BINDING
| The buffer binding. More...

## Detailed Description

Class to build up a mesh with vertices and indices.

Definition at line 132 of file OgreVolumeMeshBuilder.h.

## Member Typedef Documentation

## UMapVertexIndex

typedef map<Vertex, size_t>::type Ogre::Volume::MeshBuilder::UMapVertexIndex

protected

Map to get a vertex index.

Definition at line 140 of file OgreVolumeMeshBuilder.h.

## Constructor & Destructor Documentation

## MeshBuilder()

Ogre::Volume::MeshBuilder::MeshBuilder | ( | void |  | ) |

Constructor.

## Member Function Documentation

## addCubeToManualObject()

static void Ogre::Volume::MeshBuilder::addCubeToManualObject | ( | ManualObject * | manual,
|  | const Vector3 & | c0,
|  | const Vector3 & | c1,
|  | const Vector3 & | c2,
|  | const Vector3 & | c3,
|  | const Vector3 & | c4,
|  | const Vector3 & | c5,
|  | const Vector3 & | c6,
|  | const Vector3 & | c7,
|  | uint32 & | baseIndex
| ) |  |

static

Adds a cube to a manual object rendering lines.

Corner numeration: 4 5 7 6 0 1 3 2

Parameters

  manual | The manual for the cube lines.
  c0 | The corner 0.
  c1 | The corner 1.
  c2 | The corner 2.
  c3 | The corner 3.
  c4 | The corner 4.
  c5 | The corner 5.
  c6 | The corner 6.
  c7 | The corner 7.
  baseIndex | The next free index of this manual object. Is incremented by 8 in this function.

Definition at line 238 of file OgreVolumeMeshBuilder.h.

References Ogre::ManualObject::index(), and Ogre::ManualObject::position().

## addTriangle()

void Ogre::Volume::MeshBuilder::addTriangle | ( | const Vector3 & | v0,
|  | const Vector3 & | n0,
|  | const Vector3 & | v1,
|  | const Vector3 & | n1,
|  | const Vector3 & | v2,
|  | const Vector3 & | n2
| ) |  |

Adds a triangle to the mesh with reusing already existent vertices via their index.

Parameters

  v0 | The first vertex of the triangle.
  n0 | The normal of the first vertex.
  v1 | The second vertex of the triangle.
  n1 | The normal of the second vertex.
  v2 | The third vertex of the triangle.
  n2 | The normal of the third vertex.

Definition at line 295 of file OgreVolumeMeshBuilder.h.

## addVertex()

void Ogre::Volume::MeshBuilder::addVertex | ( | const Vertex & | v | ) |

protected

Adds a vertex to the data structure, reusing the index if it is already known.

Parameters

  v | The vertex.

Definition at line 159 of file OgreVolumeMeshBuilder.h.

References Ogre::AxisAlignedBox::getMaximum(), Ogre::AxisAlignedBox::getMinimum(), Ogre::AxisAlignedBox::setExtents(), Ogre::AxisAlignedBox::setMaximumX(), Ogre::AxisAlignedBox::setMaximumY(), Ogre::AxisAlignedBox::setMaximumZ(), Ogre::AxisAlignedBox::setMinimumX(), Ogre::AxisAlignedBox::setMinimumY(), Ogre::AxisAlignedBox::setMinimumZ(), Ogre::Volume::Vertex::x, Ogre::Vector3::x, Ogre::Volume::Vertex::y, Ogre::Vector3::y, Ogre::Vector3::z, and Ogre::Volume::Vertex::z.

## executeCallback()

void Ogre::Volume::MeshBuilder::executeCallback | ( | MeshBuilderCallback * | callback,
|  | const SimpleRenderable * | simpleRenderable,
|  | size_t | level,
|  | int | inProcess
| ) |  | const

Executes a MeshBuilderCallback on this instance.

Parameters

  callback | The callback to execute.
  simpleRenderable | Contains the SimpleRenderable for which the triangles were built.
  level | The LOD level of this mesh.
  inProcess | The amount of other meshes/LOD-Chunks still to be loaded.

## generateBuffers()

size_t Ogre::Volume::MeshBuilder::generateBuffers | ( | RenderOperation & | operation | ) |

Generates the vertex- and indexbuffer of this mesh on the given RenderOperation.

Parameters

  operation | The RenderOperation for the buffers.

Returns
  The amount of generated triangles.

## generateWithManualObject()

Entity* Ogre::Volume::MeshBuilder::generateWithManualObject | ( | SceneManager * | sceneManager,
|  | const String & | name,
|  | const String & | material
| ) |  |

Generates an entity via a ManualObject.

Parameters

  sceneManager | The creating sceneManager.
  name | The name for the entity.
  material | The material to use.

Returns
  The created entity.

## getBoundingBox()

AxisAlignedBox Ogre::Volume::MeshBuilder::getBoundingBox | ( | void |  | ) |

Gets the bounding box of the mesh.

Returns
  The bounding box.

## operator delete() [1/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) |

inherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

## operator delete() [2/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |
| ) |  |

inherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

## operator delete() [3/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

inherited

Definition at line 108 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [1/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) |

inherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [2/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

inherited

Definition at line 119 of file OgreMemoryAllocatedObject.h.

## operator new() [1/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |

inherited

operator new, with debug line info

Definition at line 68 of file OgreMemoryAllocatedObject.h.

## operator new() [2/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) |

inherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

## operator new() [3/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr
| ) |  |

inherited

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

## operator new[]() [1/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |

inherited

array operator new, with debug line info

Definition at line 86 of file OgreMemoryAllocatedObject.h.

## operator new[]() [2/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) |

inherited

Definition at line 91 of file OgreMemoryAllocatedObject.h.

## Member Data Documentation

## MAIN_BINDING

const unsigned short Ogre::Volume::MeshBuilder::MAIN_BINDING

static protected

The buffer binding.

Definition at line 137 of file OgreVolumeMeshBuilder.h.

## mBox

AxisAlignedBox Ogre::Volume::MeshBuilder::mBox

protected

Holds the bounding box.

Definition at line 150 of file OgreVolumeMeshBuilder.h.

## mBoxInit

bool Ogre::Volume::MeshBuilder::mBoxInit

protected

Holds whether the initial bounding box has been set.

Definition at line 153 of file OgreVolumeMeshBuilder.h.

## mIndexMap

UMapVertexIndex Ogre::Volume::MeshBuilder::mIndexMap

protected

Definition at line 141 of file OgreVolumeMeshBuilder.h.

## mIndices

VecIndices Ogre::Volume::MeshBuilder::mIndices

protected

Holds the indices of the mesh.

Definition at line 147 of file OgreVolumeMeshBuilder.h.

## mVertices

VecVertex Ogre::Volume::MeshBuilder::mVertices

protected

Holds the vertices of the mesh.

Definition at line 144 of file OgreVolumeMeshBuilder.h.

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

- OgreVolumeMeshBuilder.h

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