Ogre::Volume::DualGridGenerator Class Reference

Class for the generation of the DualGrid. More...

`#include <OgreVolumeDualGridGenerator.h>`

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

## Public Member Functions

| DualGridGenerator (void)
| Constructor. More...
void | generateDualGrid (const OctreeNode *root, IsoSurface *is, MeshBuilder *mb, Real maxMSDistance, const Vector3 &totalFrom, const Vector3 &totalTo, bool saveDualCells)
| Generates the dualgrid of the given octree root node. More...
DualCell | getDualCell (size_t i) const
| Gets a dual cell. More...
size_t | getDualCellCount (void) const
| Gets the amount of generated dual cells. More...
Entity * | getDualGrid (SceneManager *sceneManager)
| Gets the lazily created entity of the dualgrid debug visualization. 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)

## Protected Member Functions

void | addDualCell (const Vector3 &c0, const Vector3 &c1, const Vector3 &c2, const Vector3 &c3, const Vector3 &c4, const Vector3 &c5, const Vector3 &c6, const Vector3 &c7)
| Adds a dualcell. More...
void | addDualCell (const Vector3 &c0, const Vector3 &c1, const Vector3 &c2, const Vector3 &c3, const Vector3 &c4, const Vector3 &c5, const Vector3 &c6, const Vector3 &c7, Vector4 *values)
| Adds a dualcell with precalculated values. More...
void | createBorderCells (const OctreeNode *n0, const OctreeNode *n1, const OctreeNode *n2, const OctreeNode *n3, const OctreeNode *n4, const OctreeNode *n5, const OctreeNode *n6, const OctreeNode *n7)
void | edgeProcX (const OctreeNode *n0, const OctreeNode *n1, const OctreeNode *n2, const OctreeNode *n3)
| edgeProc with variing X of the nodes, see the paper for edgeProc(). More...
void | edgeProcY (const OctreeNode *n0, const OctreeNode *n1, const OctreeNode *n2, const OctreeNode *n3)
| edgeProc with variing Y of the nodes, see the paper for edgeProc(). More...
void | edgeProcZ (const OctreeNode *n0, const OctreeNode *n1, const OctreeNode *n2, const OctreeNode *n3)
| edgeProc with variing Z of the nodes, see the paper for edgeProc(). More...
void | faceProcXY (const OctreeNode *n0, const OctreeNode *n1)
void | faceProcXZ (const OctreeNode *n0, const OctreeNode *n1)
void | faceProcZY (const OctreeNode *n0, const OctreeNode *n1)
void | nodeProc (const OctreeNode *n)
void | vertProc (const OctreeNode *n0, const OctreeNode *n1, const OctreeNode *n2, const OctreeNode *n3, const OctreeNode *n4, const OctreeNode *n5, const OctreeNode *n6, const OctreeNode *n7)

## Protected Attributes

VecDualCell | mDualCells
| Holds the generated dual cells of the grid. More...
Entity * | mDualGrid
| The entity for the debug visualization of the grid. More...
IsoSurface * | mIs
| To contour the dualcells. More...
Real | mMaxMSDistance
| The maximum distance where to generate the skirts. More...
MeshBuilder * | mMb
| To store the triangles of the contour. More...
OctreeNode const * | mRoot
| Starting node to generate the grid from. More...
bool | mSaveDualCells
| Whether to store the dualcells for later visualization. More...
Vector3 | mTotalFrom
| The global from. More...
Vector3 | mTotalTo
| The total to. More...

## Static Protected Attributes

static size_t | mDualGridI
| To give the debug manual object an unique name. More...

## Detailed Description

Class for the generation of the DualGrid.

Definition at line 67 of file OgreVolumeDualGridGenerator.h.

## Constructor & Destructor Documentation

## DualGridGenerator()

Ogre::Volume::DualGridGenerator::DualGridGenerator | ( | void |  | ) |

Constructor.

## Member Function Documentation

## addDualCell() [1/2]

void Ogre::Volume::DualGridGenerator::addDualCell | ( | const Vector3 & | c0,
|  | const Vector3 & | c1,
|  | const Vector3 & | c2,
|  | const Vector3 & | c3,
|  | const Vector3 & | c4,
|  | const Vector3 & | c5,
|  | const Vector3 & | c6,
|  | const Vector3 & | c7
| ) |  |

protected

Adds a dualcell.

Parameters

  c0 | The first corner.
  c1 | The second corner.
  c2 | The third corner.
  c3 | The fourth corner.
  c4 | The fifth corner.
  c5 | The sixth corner.
  c6 | The seventh corner.

Definition at line 117 of file OgreVolumeDualGridGenerator.h.

## addDualCell() [2/2]

void Ogre::Volume::DualGridGenerator::addDualCell | ( | const Vector3 & | c0,
|  | const Vector3 & | c1,
|  | const Vector3 & | c2,
|  | const Vector3 & | c3,
|  | const Vector3 & | c4,
|  | const Vector3 & | c5,
|  | const Vector3 & | c6,
|  | const Vector3 & | c7,
|  | Vector4 * | values
| ) |  |

protected

Adds a dualcell with precalculated values.

Parameters

  c0 | The first corner.
  c1 | The second corner.
  c2 | The third corner.
  c3 | The fourth corner.
  c4 | The fifth corner.
  c5 | The sixth corner.
  c6 | The seventh corner.
  c7 | The eighth corner.
  values | The (possible) values at the corners.

Definition at line 142 of file OgreVolumeDualGridGenerator.h.

References Ogre::Volume::IsoSurface::addMarchingCubesTriangles(), Ogre::Volume::IsoSurface::addMarchingSquaresTriangles(), Ogre::Volume::OctreeNode::getFrom(), Ogre::Volume::OctreeNode::getTo(), Ogre::Volume::IsoSurface::MS_CORNERS_BACK, Ogre::Volume::IsoSurface::MS_CORNERS_BOTTOM, Ogre::Volume::IsoSurface::MS_CORNERS_FRONT, Ogre::Volume::IsoSurface::MS_CORNERS_LEFT, Ogre::Volume::IsoSurface::MS_CORNERS_RIGHT, Ogre::Volume::IsoSurface::MS_CORNERS_TOP, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z.

## createBorderCells()

void Ogre::Volume::DualGridGenerator::createBorderCells | ( | const OctreeNode * | n0,
|  | const OctreeNode * | n1,
|  | const OctreeNode * | n2,
|  | const OctreeNode * | n3,
|  | const OctreeNode * | n4,
|  | const OctreeNode * | n5,
|  | const OctreeNode * | n6,
|  | const OctreeNode * | n7
| ) |  |

protected

## edgeProcX()

void Ogre::Volume::DualGridGenerator::edgeProcX | ( | const OctreeNode * | n0,
|  | const OctreeNode * | n1,
|  | const OctreeNode * | n2,
|  | const OctreeNode * | n3
| ) |  |

protected

edgeProc with variing X of the nodes, see the paper for edgeProc().

Direction of parameters: Z+, Y around the clock (n0, n3, n7, n4 for example of the parent cell)

Parameters

  n0 | The first node.
  n1 | The second node.
  n2 | The third node.
  n3 | The fourth node.

## edgeProcY()

void Ogre::Volume::DualGridGenerator::edgeProcY | ( | const OctreeNode * | n0,
|  | const OctreeNode * | n1,
|  | const OctreeNode * | n2,
|  | const OctreeNode * | n3
| ) |  |

protected

edgeProc with variing Y of the nodes, see the paper for edgeProc().

Direction of parameters: X+, Z around the clock (n0, n1, n2, n3 for example of the parent cell)

Parameters

  n0 | The first node.
  n1 | The second node.
  n2 | The third node.
  n3 | The fourth node.

## edgeProcZ()

void Ogre::Volume::DualGridGenerator::edgeProcZ | ( | const OctreeNode * | n0,
|  | const OctreeNode * | n1,
|  | const OctreeNode * | n2,
|  | const OctreeNode * | n3
| ) |  |

protected

edgeProc with variing Z of the nodes, see the paper for edgeProc().

Direction of parameters: X+, Y around the clock (n7, n6, n2, n3 for example of the parent cell)

Parameters

  n0 | The first node.
  n1 | The second node.
  n2 | The third node.
  n3 | The fourth node.

## faceProcXY()

void Ogre::Volume::DualGridGenerator::faceProcXY | ( | const OctreeNode * | n0,
|  | const OctreeNode * | n1
| ) |  |

protected

## faceProcXZ()

void Ogre::Volume::DualGridGenerator::faceProcXZ | ( | const OctreeNode * | n0,
|  | const OctreeNode * | n1
| ) |  |

protected

## faceProcZY()

void Ogre::Volume::DualGridGenerator::faceProcZY | ( | const OctreeNode * | n0,
|  | const OctreeNode * | n1
| ) |  |

protected

## generateDualGrid()

void Ogre::Volume::DualGridGenerator::generateDualGrid | ( | const OctreeNode * | root,
|  | IsoSurface * | is,
|  | MeshBuilder * | mb,
|  | Real | maxMSDistance,
|  | const Vector3 & | totalFrom,
|  | const Vector3 & | totalTo,
|  | bool | saveDualCells
| ) |  |

Generates the dualgrid of the given octree root node.

Parameters

  root | The octree root node.
  is | To contour the dualcells.
  mb | To store the triangles of the contour.
  maxMSDistance | The maximum distance to the isosurface where to generate skirts.
  totalFrom | The global from.
  totalTo | The global to.
  saveDualCells | Whether to save the generated dualcells of the generated dual cells.

## getDualCell()

DualCell Ogre::Volume::DualGridGenerator::getDualCell | ( | size_t | i | ) | const

Gets a dual cell.

Parameters

  i | The index of the wanted dual cell.

Returns
  The dual cell.

Definition at line 345 of file OgreVolumeDualGridGenerator.h.

## getDualCellCount()

size_t Ogre::Volume::DualGridGenerator::getDualCellCount | ( | void |  | ) | const

Gets the amount of generated dual cells.

Returns
  The amount of generated dual cells.

Definition at line 334 of file OgreVolumeDualGridGenerator.h.

## getDualGrid()

Entity* Ogre::Volume::DualGridGenerator::getDualGrid | ( | SceneManager * | sceneManager | ) |

Gets the lazily created entity of the dualgrid debug visualization.

Parameters

  sceneManager | The scenemanager creating the entity.

Returns
  The entity. Might be null if no dualcells are available.

## nodeProc()

void Ogre::Volume::DualGridGenerator::nodeProc | ( | const OctreeNode * | n | ) |

protected

## 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.

## vertProc()

void Ogre::Volume::DualGridGenerator::vertProc | ( | const OctreeNode * | n0,
|  | const OctreeNode * | n1,
|  | const OctreeNode * | n2,
|  | const OctreeNode * | n3,
|  | const OctreeNode * | n4,
|  | const OctreeNode * | n5,
|  | const OctreeNode * | n6,
|  | const OctreeNode * | n7
| ) |  |

protected

## Member Data Documentation

## mDualCells

VecDualCell Ogre::Volume::DualGridGenerator::mDualCells

protected

Holds the generated dual cells of the grid.

Definition at line 81 of file OgreVolumeDualGridGenerator.h.

## mDualGrid

Entity* Ogre::Volume::DualGridGenerator::mDualGrid

protected

The entity for the debug visualization of the grid.

Definition at line 75 of file OgreVolumeDualGridGenerator.h.

## mDualGridI

size_t Ogre::Volume::DualGridGenerator::mDualGridI

static protected

To give the debug manual object an unique name.

Definition at line 72 of file OgreVolumeDualGridGenerator.h.

## mIs

IsoSurface* Ogre::Volume::DualGridGenerator::mIs

protected

To contour the dualcells.

Definition at line 87 of file OgreVolumeDualGridGenerator.h.

## mMaxMSDistance

Real Ogre::Volume::DualGridGenerator::mMaxMSDistance

protected

The maximum distance where to generate the skirts.

Definition at line 93 of file OgreVolumeDualGridGenerator.h.

## mMb

MeshBuilder* Ogre::Volume::DualGridGenerator::mMb

protected

To store the triangles of the contour.

Definition at line 90 of file OgreVolumeDualGridGenerator.h.

## mRoot

OctreeNode const* Ogre::Volume::DualGridGenerator::mRoot

protected

Starting node to generate the grid from.

Definition at line 78 of file OgreVolumeDualGridGenerator.h.

## mSaveDualCells

bool Ogre::Volume::DualGridGenerator::mSaveDualCells

protected

Whether to store the dualcells for later visualization.

Definition at line 84 of file OgreVolumeDualGridGenerator.h.

## mTotalFrom

Vector3 Ogre::Volume::DualGridGenerator::mTotalFrom

protected

The global from.

Definition at line 96 of file OgreVolumeDualGridGenerator.h.

## mTotalTo

Vector3 Ogre::Volume::DualGridGenerator::mTotalTo

protected

The total to.

Definition at line 99 of file OgreVolumeDualGridGenerator.h.

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

- OgreVolumeDualGridGenerator.h

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