ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
MarchingCubes Class Reference

#include <MarchingCubes.h>

Static Public Member Functions

static unsigned char GetFaceIndex (unsigned char mcIndex, int faceIndex)
 
static double Interpolate (double v1, double v2)
 
static float Interpolate (float v1, float v2)
 
static int AddTriangleIndices (int mcIndex, int *triangles)
 
static unsigned char GetIndex (const double values[Cube::CORNERS], double iso)
 
static bool IsAmbiguous (const double v[Cube::CORNERS], double isoValue, int faceIndex)
 
static bool HasRoots (const double v[Cube::CORNERS], double isoValue)
 
static bool HasRoots (const double v[Cube::CORNERS], double isoValue, int faceIndex)
 
static int AddTriangles (const double v[Cube::CORNERS], double isoValue, Triangle *triangles)
 
static int AddTriangleIndices (const double v[Cube::CORNERS], double isoValue, int *triangles)
 
static unsigned char GetIndex (const float values[Cube::CORNERS], float iso)
 
static bool IsAmbiguous (const float v[Cube::CORNERS], float isoValue, int faceIndex)
 
static bool HasRoots (const float v[Cube::CORNERS], float isoValue)
 
static bool HasRoots (const float v[Cube::CORNERS], float isoValue, int faceIndex)
 
static int AddTriangles (const float v[Cube::CORNERS], float isoValue, Triangle *triangles)
 
static int AddTriangleIndices (const float v[Cube::CORNERS], float isoValue, int *triangles)
 
static bool IsAmbiguous (unsigned char mcIndex, int faceIndex)
 
static bool HasRoots (unsigned char mcIndex)
 
static bool HasFaceRoots (unsigned char mcIndex, int faceIndex)
 
static bool HasEdgeRoots (unsigned char mcIndex, int edgeIndex)
 

Static Public Attributes

static const unsigned int MAX_TRIANGLES =5
 
static const int edgeMask [1<< Cube::CORNERS]
 
static const int triangles [1<< Cube::CORNERS][3 *MAX_TRIANGLES+1]
 
static const int cornerMap [Cube::CORNERS] ={0,1,3,2,4,5,7,6}
 
static double vertexList [Cube::EDGES][3]
 

Detailed Description

Definition at line 108 of file MarchingCubes.h.

Member Function Documentation

◆ AddTriangleIndices() [1/3]

int MarchingCubes::AddTriangleIndices ( const double  v[Cube::CORNERS],
double  isoValue,
int *  triangles 
)
static

Definition at line 854 of file MarchingCubes.cpp.

References edgeMask, GetIndex(), and triangles.

◆ AddTriangleIndices() [2/3]

int MarchingCubes::AddTriangleIndices ( const float  v[Cube::CORNERS],
float  isoValue,
int *  triangles 
)
static

Definition at line 988 of file MarchingCubes.cpp.

References AddTriangleIndices(), and GetIndex().

◆ AddTriangleIndices() [3/3]

int MarchingCubes::AddTriangleIndices ( int  mcIndex,
int *  triangles 
)
static

Definition at line 989 of file MarchingCubes.cpp.

References edgeMask, and triangles.

Referenced by AddTriangleIndices().

◆ AddTriangles() [1/2]

int MarchingCubes::AddTriangles ( const double  v[Cube::CORNERS],
double  isoValue,
Triangle triangles 
)
static

Definition at line 824 of file MarchingCubes.cpp.

References edgeMask, GetIndex(), Triangle::p, triangles, and vertexList.

◆ AddTriangles() [2/2]

int MarchingCubes::AddTriangles ( const float  v[Cube::CORNERS],
float  isoValue,
Triangle triangles 
)
static

Definition at line 959 of file MarchingCubes.cpp.

References edgeMask, GetIndex(), Triangle::p, triangles, and vertexList.

◆ GetFaceIndex()

unsigned char MarchingCubes::GetFaceIndex ( unsigned char  mcIndex,
int  faceIndex 
)
static

Definition at line 926 of file MarchingCubes.cpp.

References Cube::CornerIndex(), cornerMap, and Cube::FactorFaceIndex().

◆ GetIndex() [1/2]

unsigned char MarchingCubes::GetIndex ( const double  values[Cube::CORNERS],
double  iso 
)
static

Definition at line 789 of file MarchingCubes.cpp.

References Cube::CornerIndex().

Referenced by AddTriangleIndices(), AddTriangles(), and HasRoots().

◆ GetIndex() [2/2]

unsigned char MarchingCubes::GetIndex ( const float  values[Cube::CORNERS],
float  iso 
)
static

Definition at line 896 of file MarchingCubes.cpp.

References Cube::CornerIndex().

◆ HasEdgeRoots()

bool MarchingCubes::HasEdgeRoots ( unsigned char  mcIndex,
int  edgeIndex 
)
static

Definition at line 949 of file MarchingCubes.cpp.

References cornerMap, and Cube::EdgeCorners().

◆ HasFaceRoots()

bool MarchingCubes::HasFaceRoots ( unsigned char  mcIndex,
int  faceIndex 
)
static

Definition at line 948 of file MarchingCubes.cpp.

References MarchingSquares::HasRoots().

◆ HasRoots() [1/5]

bool MarchingCubes::HasRoots ( const double  v[Cube::CORNERS],
double  isoValue 
)
static

Definition at line 822 of file MarchingCubes.cpp.

References GetIndex().

Referenced by HasRoots().

◆ HasRoots() [2/5]

bool MarchingCubes::HasRoots ( const double  v[Cube::CORNERS],
double  isoValue,
int  faceIndex 
)
static

Definition at line 821 of file MarchingCubes.cpp.

References MarchingSquares::HasRoots().

◆ HasRoots() [3/5]

bool MarchingCubes::HasRoots ( const float  v[Cube::CORNERS],
float  isoValue 
)
static

Definition at line 946 of file MarchingCubes.cpp.

References GetIndex(), and HasRoots().

◆ HasRoots() [4/5]

bool MarchingCubes::HasRoots ( const float  v[Cube::CORNERS],
float  isoValue,
int  faceIndex 
)
static

Definition at line 947 of file MarchingCubes.cpp.

References MarchingSquares::HasRoots().

◆ HasRoots() [5/5]

bool MarchingCubes::HasRoots ( unsigned char  mcIndex)
static

Definition at line 823 of file MarchingCubes.cpp.

◆ Interpolate() [1/2]

double MarchingCubes::Interpolate ( double  v1,
double  v2 
)
static

Definition at line 892 of file MarchingCubes.cpp.

◆ Interpolate() [2/2]

float MarchingCubes::Interpolate ( float  v1,
float  v2 
)
static

Definition at line 1025 of file MarchingCubes.cpp.

◆ IsAmbiguous() [1/3]

bool MarchingCubes::IsAmbiguous ( const double  v[Cube::CORNERS],
double  isoValue,
int  faceIndex 
)
static

Definition at line 820 of file MarchingCubes.cpp.

References MarchingSquares::IsAmbiguous().

◆ IsAmbiguous() [2/3]

bool MarchingCubes::IsAmbiguous ( const float  v[Cube::CORNERS],
float  isoValue,
int  faceIndex 
)
static

Definition at line 944 of file MarchingCubes.cpp.

References MarchingSquares::IsAmbiguous().

◆ IsAmbiguous() [3/3]

bool MarchingCubes::IsAmbiguous ( unsigned char  mcIndex,
int  faceIndex 
)
static

Definition at line 945 of file MarchingCubes.cpp.

References MarchingSquares::IsAmbiguous().

Member Data Documentation

◆ cornerMap

const int MarchingCubes::cornerMap ={0,1,3,2,4,5,7,6}
static

Definition at line 123 of file MarchingCubes.h.

Referenced by GetFaceIndex(), and HasEdgeRoots().

◆ edgeMask

const int MarchingCubes::edgeMask
static

Definition at line 121 of file MarchingCubes.h.

Referenced by AddTriangleIndices(), and AddTriangles().

◆ MAX_TRIANGLES

const unsigned int MarchingCubes::MAX_TRIANGLES =5
static

Definition at line 120 of file MarchingCubes.h.

◆ triangles

const int MarchingCubes::triangles
static

Definition at line 122 of file MarchingCubes.h.

Referenced by AddTriangleIndices(), and AddTriangles().

◆ vertexList

double MarchingCubes::vertexList
static

Definition at line 124 of file MarchingCubes.h.

Referenced by AddTriangles().


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