Definition at line 426 of file TGLMarchingCubes.h.
Public Member Functions | |
TMeshBuilder (Bool_t averagedNormals, ValueType eps=1e-7) | |
void | BuildMesh (const DataSource *src, const TGridGeometry< ValueType > &geom, MeshType_t *mesh, ValueType iso) |
Build iso-mesh using marching cubes. | |
Private Types | |
typedef TCell< ElementType_t > | CellType_t |
typedef TSourceAdapterSelector< DataSource >::Type_t | DataSourceBase_t |
typedef DataSourceBase_t::ElementType_t | ElementType_t |
typedef TIsoMesh< ValueType > | MeshType_t |
typedef TSlice< ElementType_t > | SliceType_t |
typedef TSplitterSelector< DataSource, ValueType >::Type_t | SplitterBase_t |
Private Member Functions | |
TMeshBuilder (const TMeshBuilder &rhs) | |
void | BuildCol (SliceType_t *slice) const |
"Col" (column) consists of cubes along y axis on the first slice (nx == 0, nz == 0). | |
void | BuildCol (UInt_t depth, const SliceType_t *prevSlice, SliceType_t *slice) const |
nz == depth, nx == 0, ny : [1, H - 1]. | |
void | BuildFirstCube (SliceType_t *slice) const |
The first cube in a grid. nx == 0, ny == 0, nz ==0. | |
void | BuildFirstCube (UInt_t depth, const SliceType_t *prevSlice, SliceType_t *slice) const |
The first cube in a slice with nz == depth. | |
void | BuildNormals () const |
Build averaged normals using vertices and trinagles. | |
void | BuildRow (SliceType_t *slice) const |
The first row (along x) in the first slice: ny == 0, nz == 0, nx : [1, W - 1]. | |
void | BuildRow (UInt_t depth, const SliceType_t *prevSlice, SliceType_t *slice) const |
Row with ny == 0 and nz == depth, nx : [1, W - 1]. | |
void | BuildSlice (SliceType_t *slice) const |
Slice with nz == 0. | |
void | BuildSlice (UInt_t depth, const SliceType_t *prevSlice, SliceType_t *slice) const |
nz == depth, nx : [1, W - 1], ny : [1, H - 1]. | |
void | NextStep (UInt_t depth, const SliceType_t *prevSlice, SliceType_t *curr) const |
Fill slice with vertices and triangles. | |
TMeshBuilder & | operator= (const TMeshBuilder &rhs) |
Private Attributes | |
Bool_t | fAvgNormals |
ValueType | fEpsilon |
ValueType | fIso |
MeshType_t * | fMesh |
SliceType_t | fSlices [2] |
#include <TGLMarchingCubes.h>
|
private |
Definition at line 443 of file TGLMarchingCubes.h.
|
private |
Definition at line 431 of file TGLMarchingCubes.h.
|
private |
Definition at line 441 of file TGLMarchingCubes.h.
|
private |
Definition at line 445 of file TGLMarchingCubes.h.
|
private |
Definition at line 444 of file TGLMarchingCubes.h.
|
private |
Definition at line 432 of file TGLMarchingCubes.h.
|
inline |
Definition at line 448 of file TGLMarchingCubes.h.
|
private |
|
private |
"Col" (column) consists of cubes along y axis on the first slice (nx == 0, nz == 0).
Each cube has a previous cube and shares values: 0, 1, 4, 5 (in prev.: 3, 2, 7, 6); and edges: 0, 4, 8, 9 (in prev.: 2, 6, 10, 11).
Definition at line 336 of file TGLMarchingCubes.cxx.
|
private |
nz == depth, nx == 0, ny : [1, H - 1].
Two neighbours - from previous slice ("bottom" cube) and previous cube in a column.
Definition at line 623 of file TGLMarchingCubes.cxx.
|
private |
The first cube in a grid. nx == 0, ny == 0, nz ==0.
Definition at line 238 of file TGLMarchingCubes.cxx.
|
private |
The first cube in a slice with nz == depth.
Neighbour is the first cube in the previous slice. Four values and four edges come from the previous cube.
Definition at line 480 of file TGLMarchingCubes.cxx.
void Rgl::Mc::TMeshBuilder< D, V >::BuildMesh | ( | const DataSource * | src, |
const TGridGeometry< ValueType > & | geom, | ||
MeshType_t * | mesh, | ||
ValueType | iso | ||
) |
Build iso-mesh using marching cubes.
Definition at line 177 of file TGLMarchingCubes.cxx.
|
private |
Build averaged normals using vertices and trinagles.
Definition at line 772 of file TGLMarchingCubes.cxx.
|
private |
The first row (along x) in the first slice: ny == 0, nz == 0, nx : [1, W - 1].
Each cube has previous cube. Values 0, 3, 4, 7 are taken from the previous cube. Edges 3, 7, 8, 11 are taken from the previous cube.
Definition at line 272 of file TGLMarchingCubes.cxx.
|
private |
Row with ny == 0 and nz == depth, nx : [1, W - 1].
Two neighbours: one from previous slice (called bottom cube here), the second is the previous cube in a row.
Definition at line 546 of file TGLMarchingCubes.cxx.
|
private |
Slice with nz == 0.
nx : [1, W - 1], ny : [1, H - 1]. nx increased inside inner loop, ny - enclosing loop. Each cube has two neighbours: ny - 1 => "left", nx - 1 => "right".
Definition at line 404 of file TGLMarchingCubes.cxx.
|
private |
nz == depth, nx : [1, W - 1], ny : [1, H - 1].
Each cube has 3 neighbours, "bottom" cube from the previous slice, "left" and "right" from the current slice.
Definition at line 697 of file TGLMarchingCubes.cxx.
|
private |
Fill slice with vertices and triangles.
Definition at line 217 of file TGLMarchingCubes.cxx.
|
private |
|
private |
Definition at line 458 of file TGLMarchingCubes.h.
|
private |
Definition at line 462 of file TGLMarchingCubes.h.
|
private |
Definition at line 461 of file TGLMarchingCubes.h.
|
private |
Definition at line 460 of file TGLMarchingCubes.h.
|
private |
Definition at line 459 of file TGLMarchingCubes.h.