OGRE  2.0
Object-Oriented Graphics Rendering Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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:
+ Collaboration diagram for Ogre::Volume::IsoSurfaceMC:

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 SourcemSrc
 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 45 of file OgreVolumeIsoSurfaceMC.h.

Constructor & Destructor Documentation

Ogre::Volume::IsoSurfaceMC::IsoSurfaceMC ( const Source src)
explicit

Constructor.

Parameters
srcThe source for the isovalues and normals there.

Member Function Documentation

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

Overridden from IsoSurface.

Implements Ogre::Volume::IsoSurface.

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.

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

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

Parameters
v0The first vector.
v1The second vector.
val0The value for the first vector.
val1The value for the second vector.
normalReference to a vector where the normal will be stored.
Returns
The interpolated position.

Definition at line 64 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.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr)
inlineinherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
void *   
)
inlineinherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

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

Definition at line 108 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr)
inlineinherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

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

Definition at line 119 of file OgreMemoryAllocatedObject.h.

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

operator new, with debug line info

Definition at line 68 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz)
inlineinherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

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

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

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

array operator new, with debug line info

Definition at line 86 of file OgreMemoryAllocatedObject.h.

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

Definition at line 91 of file OgreMemoryAllocatedObject.h.

Member Data Documentation

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

The value where our isosurface is.

Definition at line 46 of file OgreVolumeIsoSurface.h.

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

To call Marching Squares with a cube on its back.

Definition at line 63 of file OgreVolumeIsoSurface.h.

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

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

To call Marching Squares with a cube on its bottom.

Definition at line 75 of file OgreVolumeIsoSurface.h.

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

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

To call Marching Squares with a cube on its front.

Definition at line 60 of file OgreVolumeIsoSurface.h.

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

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

To call Marching Squares with a cube on its left.

Definition at line 66 of file OgreVolumeIsoSurface.h.

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

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

To call Marching Squares with a cube on its right.

Definition at line 69 of file OgreVolumeIsoSurface.h.

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

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

To call Marching Squares with a cube on its top.

Definition at line 72 of file OgreVolumeIsoSurface.h.

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

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

To get the isovalue and normal.

Definition at line 49 of file OgreVolumeIsoSurface.h.


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