Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes
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:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 IsoSurfaceMC (const Source *src)
 Constructor.
virtual void addMarchingCubesTriangles (const Vector3 *corners, const Vector4 *volumeValues, MeshBuilder *mb) const
 Overridden from IsoSurface.
virtual void addMarchingSquaresTriangles (const Vector3 *corners, const Vector4 *volumeValues, const size_t *indices, const Real maxDistance, MeshBuilder *mb) const
 Overridden from IsoSurface.
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
void * operator new (size_t sz)
void * operator new (size_t sz, void *ptr)
 placement operator new
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info
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.
static const size_t MS_CORNERS_BOTTOM [4]
 To call Marching Squares with a cube on its bottom.
static const size_t MS_CORNERS_FRONT [4]
 To call Marching Squares with a cube on its front.
static const size_t MS_CORNERS_LEFT [4]
 To call Marching Squares with a cube on its left.
static const size_t MS_CORNERS_RIGHT [4]
 To call Marching Squares with a cube on its right.
static const size_t MS_CORNERS_TOP [4]
 To call Marching Squares with a cube on its top.

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.

Protected Attributes

const SourcemSrc
 To get the isovalue and normal.

Static Protected Attributes

static const Real ISO_LEVEL
 The value where our isosurface is.

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

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 [protected]

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

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

Definition at line 96 of file OgreMemoryAllocatedObject.h.

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

Definition at line 102 of file OgreMemoryAllocatedObject.h.

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.

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

Definition at line 113 of file OgreMemoryAllocatedObject.h.

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.

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.

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

Definition at line 73 of file OgreMemoryAllocatedObject.h.

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.

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.

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

Definition at line 91 of file OgreMemoryAllocatedObject.h.


Member Data Documentation

const Real Ogre::Volume::IsoSurface::ISO_LEVEL [static, protected, inherited]

The value where our isosurface is.

Definition at line 45 of file OgreVolumeIsoSurface.h.

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().

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().

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().

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().

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().

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().

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:

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Mon Jul 27 2020 13:41:52