Biomedical Image Analysis Library
The Biomedical Image Analysis Library is a poweful tool for developers, physicians, researchers, engineers, and so on.
Bial::MarchingCubes Class Reference

Algorithm proposed by Lorensen and Cline to extract triangle meshes from isosurfaces. More...

#include <MarchingCubes.hpp>

Collaboration diagram for Bial::MarchingCubes:
Collaboration graph

Static Public Member Functions

static TriangleMeshexec (const Image< int > &img, float isolevel)
 exec More...
 
static TriangleMeshBinary (const Image< int > &img, const Image< int > &mask, float isolevel)
 Binary. More...
 
static void getVertexList (std::array< Vector3D, 12 > &vertexList, const Cell &cell, float isolevel)
 getVertexList More...
 
static void getNormalsList (std::array< Normal, 12 > &normsList, const Cell &cell, float isolevel)
 getNormalsList More...
 
static Vector3D VertexInterp (float isolevel, const Vector3D &p1, const Vector3D &p2, float valp1, float valp2)
 VertexInterp. More...
 
static Normal NormalInterp (float isolevel, int dir1, int dir2, float valp1, float valp2)
 NormalInterp. More...
 
static Normal getNormal (int dir)
 getNormal More...
 
static int Polygonize (const Cell &cell, float isolevel, Vector< size_t > &tris, Vector< Point3D > &vertices, Vector< Normal > &normals)
 Polygonize. More...
 
static void printEdges (int idx)
 printEdges More...
 
static void printTris (int idx)
 printTris More...
 
static void printVertexList (const std::array< Vector3D, 12 > &vertexList)
 printVertexList More...
 

Static Public Attributes

static char triTable [256][16]
 triTable More...
 
static int edgeTable [256]
 edgeTable More...
 

Detailed Description

Algorithm proposed by Lorensen and Cline to extract triangle meshes from isosurfaces.

Definition at line 69 of file MarchingCubes.hpp.

Member Function Documentation

static TriangleMesh* Bial::MarchingCubes::Binary ( const Image< int > &  img,
const Image< int > &  mask,
float  isolevel 
)
static

Binary.

Parameters
img
mask
isolevel
Returns
static TriangleMesh* Bial::MarchingCubes::exec ( const Image< int > &  img,
float  isolevel 
)
static

exec

Parameters
img
isolevel
Returns
static Normal Bial::MarchingCubes::getNormal ( int  dir)
static

getNormal

Parameters
dir
Returns
static void Bial::MarchingCubes::getNormalsList ( std::array< Normal, 12 > &  normsList,
const Cell cell,
float  isolevel 
)
static

getNormalsList

Parameters
normsList
cell
isolevel
static void Bial::MarchingCubes::getVertexList ( std::array< Vector3D, 12 > &  vertexList,
const Cell cell,
float  isolevel 
)
static

getVertexList

Parameters
vertexList
cell
isolevel
static Normal Bial::MarchingCubes::NormalInterp ( float  isolevel,
int  dir1,
int  dir2,
float  valp1,
float  valp2 
)
static

NormalInterp.

Parameters
isolevel
dir1
dir2
valp1
valp2
Returns
static int Bial::MarchingCubes::Polygonize ( const Cell cell,
float  isolevel,
Vector< size_t > &  tris,
Vector< Point3D > &  vertices,
Vector< Normal > &  normals 
)
static

Polygonize.

Parameters
cell
isolevel
tris
vertices
normals
Returns
static void Bial::MarchingCubes::printEdges ( int  idx)
static

printEdges

Parameters
idx
static void Bial::MarchingCubes::printTris ( int  idx)
static

printTris

Parameters
idx
static void Bial::MarchingCubes::printVertexList ( const std::array< Vector3D, 12 > &  vertexList)
static

printVertexList

Parameters
vertexList
static Vector3D Bial::MarchingCubes::VertexInterp ( float  isolevel,
const Vector3D p1,
const Vector3D p2,
float  valp1,
float  valp2 
)
static

VertexInterp.

Parameters
isolevel
p1
p2
valp1
valp2
Returns

Member Data Documentation

int Bial::MarchingCubes::edgeTable[256]
static

edgeTable

Definition at line 79 of file MarchingCubes.hpp.

char Bial::MarchingCubes::triTable[256][16]
static

triTable

Definition at line 75 of file MarchingCubes.hpp.


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