OGRE  2.2.4
Object-Oriented Graphics Rendering Engine
Ogre::Volume Namespace Reference

Classes

class  CacheSource
 A caching Source. More...
 
class  Chunk
 A single volume chunk mesh. More...
 
class  ChunkHandler
 Handles the WorkQueue management of the chunks. More...
 
struct  ChunkParameters
 Parameters for loading the volume. More...
 
struct  ChunkRequest
 Data being passed around while loading. More...
 
struct  ChunkTreeSharedData
 Internal shared values of the chunks which are equal in the whole tree. More...
 
class  CSGCubeSource
 A not rotated cube. More...
 
class  CSGDifferenceSource
 Builds the difference between two sources. More...
 
class  CSGIntersectionSource
 Builds the intersection between two sources. More...
 
class  CSGNegateSource
 Negates the given volume. More...
 
class  CSGNoiseSource
 
class  CSGOperationSource
 Abstract operation volume source holding two sources as operants. More...
 
class  CSGPlaneSource
 A plane. More...
 
class  CSGScaleSource
 Scales the given volume source. More...
 
class  CSGSphereSource
 A sphere. More...
 
class  CSGUnarySource
 Source which does a unary operation to another one. More...
 
class  CSGUnionSource
 Builds the union between two sources. More...
 
struct  DualCell
 To store the generated dual cells in a vector. More...
 
class  DualGridGenerator
 Class for the generation of the DualGrid. More...
 
class  GridSource
 A volume source from a discrete 3d grid. More...
 
class  HalfFloatGridSource
 A volume source from a 16 Bit float 3D grid capable of loading volume serializations. More...
 
class  IsoSurface
 Abstract IsoSurface. More...
 
class  IsoSurfaceMC
 Marching Cubes implementation like at http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/. More...
 
class  MeshBuilder
 Class to build up a mesh with vertices and indices. More...
 
class  MeshBuilderCallback
 Callback class when the user needs information about the triangles of chunks of a LOD level. More...
 
class  OctreeNode
 A node in the volume octree. More...
 
class  OctreeNodeSplitPolicy
 The class deciding on whether to split an octree node or not when building the octree. More...
 
class  SimplexNoise
 Simplex Noise ported from public domain Java Implementation http://webstaff.itn.liu.se/~stegu/simplexnoise/SimplexNoise.java Thanks Stefan Gustavson! More...
 
class  Source
 Abstract class defining the density function. More...
 
class  TextureSource
 A volume source from a 3D texture. More...
 
struct  Vertex
 Lightweight struct to represent a mesh vertex. More...
 

Typedefs

typedef struct Ogre::Volume::ChunkParameters ChunkParameters
 Parameters for loading the volume. More...
 
typedef struct Ogre::Volume::ChunkRequest ChunkRequest
 Data being passed around while loading. More...
 
typedef struct Ogre::Volume::ChunkTreeSharedData ChunkTreeSharedData
 Internal shared values of the chunks which are equal in the whole tree. More...
 
typedef struct _OgreVolumeExport Ogre::Volume::DualCell DualCell
 To store the generated dual cells in a vector. More...
 
typedef vector< DualCell >::type VecDualCell
 To hold dual cells. More...
 
typedef vector< size_t >::type VecIndices
 To hold indices. More...
 
typedef vector< Vertex >::type VecVertex
 To hold vertices. More...
 
typedef struct _OgreVolumeExport Ogre::Volume::Vertex Vertex
 Lightweight struct to represent a mesh vertex. More...
 

Functions

bool _OgreVolumeExport operator< (const Vector3 &a, const Vector3 &b)
 A less operator. More...
 
bool _OgreVolumeExport operator< (const Vertex &a, const Vertex &b)
 A less operator. More...
 
bool _OgreVolumeExport operator== (Vertex const &a, Vertex const &b)
 == operator for two vertices. More...
 

Variables

int mcEdges [256]
 Marching Cubes tables from the public domain code found on http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/ in http://paulbourke.net/geometry/polygonise/marchingsource.cpp Thanks! More...
 
int mcTriangles [256][16]
 Triangulation lookup table. More...
 
int msEdges [16]
 
int msTriangles [18][13]
 

Typedef Documentation

◆ ChunkParameters

Parameters for loading the volume.

◆ ChunkRequest

Data being passed around while loading.

◆ ChunkTreeSharedData

Internal shared values of the chunks which are equal in the whole tree.

◆ DualCell

To store the generated dual cells in a vector.

◆ VecDualCell

typedef vector<DualCell>::type Ogre::Volume::VecDualCell

To hold dual cells.

◆ VecIndices

typedef vector<size_t>::type Ogre::Volume::VecIndices

To hold indices.

◆ VecVertex

typedef vector<Vertex>::type Ogre::Volume::VecVertex

To hold vertices.

◆ Vertex

Lightweight struct to represent a mesh vertex.

Function Documentation

◆ operator<() [1/2]

bool _OgreVolumeExport Ogre::Volume::operator< ( const Vector3 a,
const Vector3 b 
)

A less operator.

Note
This operator is needed so that Vertex can serve as the key in a map structrue
Parameters
aThe first vector to test.
bThe second vector to test.

Referenced by Ogre::Volume::Vertex::Vertex().

◆ operator<() [2/2]

bool _OgreVolumeExport Ogre::Volume::operator< ( const Vertex a,
const Vertex b 
)

A less operator.

Note
This operator is needed so that Vertex can serve as the key in a map structrue
Parameters
aThe first vertex to test.
bThe second vertex to test.

◆ operator==()

bool _OgreVolumeExport Ogre::Volume::operator== ( Vertex const &  a,
Vertex const &  b 
)

== operator for two vertices.

Parameters
aThe first vertex to test.
bThe second vertex to test.

Referenced by Ogre::Volume::Vertex::Vertex().

Variable Documentation

◆ mcEdges

int Ogre::Volume::mcEdges[256]
Initial value:
=
{
0x000, 0x109, 0x203, 0x30a, 0x406, 0x50f, 0x605, 0x70c, 0x80c, 0x905, 0xa0f, 0xb06, 0xc0a, 0xd03, 0xe09, 0xf00,
0x190, 0x099, 0x393, 0x29a, 0x596, 0x49f, 0x795, 0x69c, 0x99c, 0x895, 0xb9f, 0xa96, 0xd9a, 0xc93, 0xf99, 0xe90,
0x230, 0x339, 0x033, 0x13a, 0x636, 0x73f, 0x435, 0x53c, 0xa3c, 0xb35, 0x83f, 0x936, 0xe3a, 0xf33, 0xc39, 0xd30,
0x3a0, 0x2a9, 0x1a3, 0x0aa, 0x7a6, 0x6af, 0x5a5, 0x4ac, 0xbac, 0xaa5, 0x9af, 0x8a6, 0xfaa, 0xea3, 0xda9, 0xca0,
0x460, 0x569, 0x663, 0x76a, 0x066, 0x16f, 0x265, 0x36c, 0xc6c, 0xd65, 0xe6f, 0xf66, 0x86a, 0x963, 0xa69, 0xb60,
0x5f0, 0x4f9, 0x7f3, 0x6fa, 0x1f6, 0x0ff, 0x3f5, 0x2fc, 0xdfc, 0xcf5, 0xfff, 0xef6, 0x9fa, 0x8f3, 0xbf9, 0xaf0,
0x650, 0x759, 0x453, 0x55a, 0x256, 0x35f, 0x055, 0x15c, 0xe5c, 0xf55, 0xc5f, 0xd56, 0xa5a, 0xb53, 0x859, 0x950,
0x7c0, 0x6c9, 0x5c3, 0x4ca, 0x3c6, 0x2cf, 0x1c5, 0x0cc, 0xfcc, 0xec5, 0xdcf, 0xcc6, 0xbca, 0xac3, 0x9c9, 0x8c0,
0x8c0, 0x9c9, 0xac3, 0xbca, 0xcc6, 0xdcf, 0xec5, 0xfcc, 0x0cc, 0x1c5, 0x2cf, 0x3c6, 0x4ca, 0x5c3, 0x6c9, 0x7c0,
0x950, 0x859, 0xb53, 0xa5a, 0xd56, 0xc5f, 0xf55, 0xe5c, 0x15c, 0x055, 0x35f, 0x256, 0x55a, 0x453, 0x759, 0x650,
0xaf0, 0xbf9, 0x8f3, 0x9fa, 0xef6, 0xfff, 0xcf5, 0xdfc, 0x2fc, 0x3f5, 0x0ff, 0x1f6, 0x6fa, 0x7f3, 0x4f9, 0x5f0,
0xb60, 0xa69, 0x963, 0x86a, 0xf66, 0xe6f, 0xd65, 0xc6c, 0x36c, 0x265, 0x16f, 0x066, 0x76a, 0x663, 0x569, 0x460,
0xca0, 0xda9, 0xea3, 0xfaa, 0x8a6, 0x9af, 0xaa5, 0xbac, 0x4ac, 0x5a5, 0x6af, 0x7a6, 0x0aa, 0x1a3, 0x2a9, 0x3a0,
0xd30, 0xc39, 0xf33, 0xe3a, 0x936, 0x83f, 0xb35, 0xa3c, 0x53c, 0x435, 0x73f, 0x636, 0x13a, 0x033, 0x339, 0x230,
0xe90, 0xf99, 0xc93, 0xd9a, 0xa96, 0xb9f, 0x895, 0x99c, 0x69c, 0x795, 0x49f, 0x596, 0x29a, 0x393, 0x099, 0x190,
0xf00, 0xe09, 0xd03, 0xc0a, 0xb06, 0xa0f, 0x905, 0x80c, 0x70c, 0x605, 0x50f, 0x406, 0x30a, 0x203, 0x109, 0x000
}

Marching Cubes tables from the public domain code found on http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/ in http://paulbourke.net/geometry/polygonise/marchingsource.cpp Thanks!

Edges table.

◆ mcTriangles

int Ogre::Volume::mcTriangles[256][16]

Triangulation lookup table.

◆ msEdges

int Ogre::Volume::msEdges[16]
Initial value:
=
{
0x0,
0x9,
0x3,
0xA,
0x6,
0xF,
0x5,
0xC,
0xC,
0x5,
0xF,
0x6,
0xA,
0x3,
0x9,
0x0
}

◆ msTriangles

int Ogre::Volume::msTriangles[18][13]
Initial value:
=
{
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{7, 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{3, 2, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{7, 2, 0, 7, 3, 2, -1, -1, -1, -1, -1, -1, -1},
{5, 4, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{7, 1, 0, 3, 5, 4, -1, -1, -1, -1, -1, -1, -1},
{1, 4, 2, 1, 5, 4, -1, -1, -1, -1, -1, -1, -1},
{0, 7, 5, 0, 5, 4, 0, 4, 2, -1, -1, -1, -1},
{7, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
{0, 5, 1, 0, 6, 5, -1, -1, -1, -1, -1, -1, -1},
{1, 3, 2, 7, 6, 5, -1, -1, -1, -1, -1, -1, -1},
{3, 6, 5, 3, 0, 6, 3, 2, 0, -1, -1, -1, -1},
{7, 6, 4, 7, 4, 3, -1, -1, -1, -1, -1, -1, -1},
{3, 1, 0, 3, 0, 6, 3, 6, 4, -1, -1, -1, -1},
{2, 1, 7, 2, 7, 6, 2, 6, 4, -1, -1, -1, -1},
{6, 2, 0, 6, 4, 2, -1, -1, -1, -1, -1, -1, -1},
{1, 0, 7, 1, 7, 5, 1, 5, 4, 1, 4, 3, -1},
{1, 3, 2, 1, 5, 3, 1, 6, 5, 1, 7, 6, -1}
}