Ogre::Volume::IsoSurfaceMC Class Reference

Marching Cubes implementation like at http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/. More...

`#include <OgreVolumeIsoSurfaceMC.h>`

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

## Public Member Functions

| IsoSurfaceMC (const Source *src)
| Constructor. More...
virtual void | addMarchingCubesTriangles (const Vector3 *corners, const Vector4 *volumeValues, MeshBuilder *mb) const
| Overridden from IsoSurface. More...
virtual void | addMarchingSquaresTriangles (const Vector3 *corners, const Vector4 *volumeValues, const size_t *indices, const Real maxDistance, MeshBuilder *mb) const
| Overridden from IsoSurface. 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 Attributes

static const size_t | MS_CORNERS_BACK [4]
| To call Marching Squares with a cube on its back. More...
static const size_t | MS_CORNERS_BOTTOM [4]
| To call Marching Squares with a cube on its bottom. More...
static const size_t | MS_CORNERS_FRONT [4]
| To call Marching Squares with a cube on its front. More...
static const size_t | MS_CORNERS_LEFT [4]
| To call Marching Squares with a cube on its left. More...
static const size_t | MS_CORNERS_RIGHT [4]
| To call Marching Squares with a cube on its right. More...
static const size_t | MS_CORNERS_TOP [4]
| To call Marching Squares with a cube on its top. More...

## Protected Member Functions

Vector3 | interpolate (const Vector3 &v0, const Vector3 &v1, const Vector4 &val0, const Vector4 &val1, Vector3 &normal) const
| Linear interpolation between two vectors based on some values associated to them. More...

## Protected Attributes

const Source * | mSrc
| To get the isovalue and normal. More...

## Static Protected Attributes

static const Real | ISO_LEVEL
| The value where our isosurface is. More...

## Detailed Description

Marching Cubes implementation like at http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/.

Definition at line 39 of file OgreVolumeIsoSurfaceMC.h.

## Constructor & Destructor Documentation

## IsoSurfaceMC()

Ogre::Volume::IsoSurfaceMC::IsoSurfaceMC | ( | const Source * | src | ) |

explicit

Constructor.

Parameters

  src | The source for the isovalues and normals there.

## Member Function Documentation

## addMarchingCubesTriangles()

virtual void Ogre::Volume::IsoSurfaceMC::addMarchingCubesTriangles | ( | const Vector3 * | corners,
|  | const Vector4 * | volumeValues,
|  | MeshBuilder * | mb
| ) |  | const

virtual

Overridden from IsoSurface.

Implements Ogre::Volume::IsoSurface.

## addMarchingSquaresTriangles()

virtual void Ogre::Volume::IsoSurfaceMC::addMarchingSquaresTriangles | ( | const Vector3 * | corners,
|  | const Vector4 * | volumeValues,
|  | const size_t * | indices,
|  | const Real | maxDistance,
|  | MeshBuilder * | mb
| ) |  | const

virtual

Overridden from IsoSurface.

Implements Ogre::Volume::IsoSurface.

## interpolate()

Vector3 Ogre::Volume::IsoSurfaceMC::interpolate | ( | const Vector3 & | v0,
|  | const Vector3 & | v1,
|  | const Vector4 & | val0,
|  | const Vector4 & | val1,
|  | Vector3 & | normal
| ) |  | const

protected

Linear interpolation between two vectors based on some values associated to them.

Parameters

  v0 | The first vector.
  v1 | The second vector.
  val0 | The value for the first vector.
  val1 | The value for the second vector.
  normal | Reference to a vector where the normal will be stored.

Returns
  The interpolated position.

Definition at line 58 of file OgreVolumeIsoSurfaceMC.h.

References Ogre::Vector3::normalise(), Ogre::Vector4::w, Ogre::Vector4::x, Ogre::Vector3::x, Ogre::Vector4::y, Ogre::Vector3::y, Ogre::Vector4::z, and Ogre::Vector3::z.

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

## ISO_LEVEL

const Real Ogre::Volume::IsoSurface::ISO_LEVEL

static protected inherited

The value where our isosurface is.

Definition at line 45 of file OgreVolumeIsoSurface.h.

## MS_CORNERS_BACK

const size_t Ogre::Volume::IsoSurface::MS_CORNERS_BACK[4]

static inherited

To call Marching Squares with a cube on its back.

Definition at line 62 of file OgreVolumeIsoSurface.h.

Referenced by Ogre::Volume::DualGridGenerator::addDualCell().

## MS_CORNERS_BOTTOM

const size_t Ogre::Volume::IsoSurface::MS_CORNERS_BOTTOM[4]

static inherited

To call Marching Squares with a cube on its bottom.

Definition at line 74 of file OgreVolumeIsoSurface.h.

Referenced by Ogre::Volume::DualGridGenerator::addDualCell().

## MS_CORNERS_FRONT

const size_t Ogre::Volume::IsoSurface::MS_CORNERS_FRONT[4]

static inherited

To call Marching Squares with a cube on its front.

Definition at line 59 of file OgreVolumeIsoSurface.h.

Referenced by Ogre::Volume::DualGridGenerator::addDualCell().

## MS_CORNERS_LEFT

const size_t Ogre::Volume::IsoSurface::MS_CORNERS_LEFT[4]

static inherited

To call Marching Squares with a cube on its left.

Definition at line 65 of file OgreVolumeIsoSurface.h.

Referenced by Ogre::Volume::DualGridGenerator::addDualCell().

## MS_CORNERS_RIGHT

const size_t Ogre::Volume::IsoSurface::MS_CORNERS_RIGHT[4]

static inherited

To call Marching Squares with a cube on its right.

Definition at line 68 of file OgreVolumeIsoSurface.h.

Referenced by Ogre::Volume::DualGridGenerator::addDualCell().

## MS_CORNERS_TOP

const size_t Ogre::Volume::IsoSurface::MS_CORNERS_TOP[4]

static inherited

To call Marching Squares with a cube on its top.

Definition at line 71 of file OgreVolumeIsoSurface.h.

Referenced by Ogre::Volume::DualGridGenerator::addDualCell().

## mSrc

const Source* Ogre::Volume::IsoSurface::mSrc

protected inherited

To get the isovalue and normal.

Definition at line 48 of file OgreVolumeIsoSurface.h.

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

- OgreVolumeIsoSurfaceMC.h

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