Point Cloud Library (PCL)
1.11.0
|
29 #ifndef MARCHING_CUBES_INCLUDED
30 #define MARCHING_CUBES_INCLUDED
44 enum { CORNERS=4,EDGES=4,NEIGHBORS=4 };
60 enum { CORNERS=8,EDGES=12,NEIGHBORS=6 };
82 static void FaceCorners(
int idx,
int& c1,
int &c2,
int& c3,
int& c4);
87 static double Interpolate(
double v1,
double v2);
88 static void SetVertex(
int e,
const double values[
Square::CORNERS],
double iso);
103 static void SetVertex(
int e,
const double values[
Cube::CORNERS],
double iso);
104 static int GetFaceIndex(
const double values[
Cube::CORNERS],
double iso,
int faceIndex);
106 static void SetVertex(
int e,
const float values[
Cube::CORNERS],
float iso);
107 static int GetFaceIndex(
const float values[
Cube::CORNERS],
float iso,
int faceIndex);
109 static int GetFaceIndex(
int mcIndex,
int faceIndex);
113 enum { MAX_TRIANGLES=5 };
144 #endif //MARCHING_CUBES_INCLUDED
Defines all the PCL and non-PCL macros used.
static int HasRoots(const float v[Cube::CORNERS], float isoValue, int faceIndex)
static double & vertexList(int i, int j)
static void FacesAdjacentToEdge(int eIndex, int &f1Index, int &f2Index)
static int FaceIndex(int x, int y, int z)
static int AddTriangleIndices(int mcIndex, int *triangles)
static int AddEdgeIndices(const double v[Square::CORNERS], double isoValue, int *edges)
static int FaceReflectFaceIndex(int idx, int faceIndex)
static int EdgeReflectCornerIndex(int idx, int edgeIndex)
static int HasRoots(const double v[Cube::CORNERS], double isoValue, int faceIndex)
static int AddTriangles(const double v[Cube::CORNERS], double isoValue, Triangle *triangles)
static void FactorFaceIndex(int idx, int &dir, int &offSet)
static int IsAmbiguous(const double v[Square::CORNERS], double isoValue)
static void FaceCorners(int idx, int &c1, int &c2, int &c3, int &c4)
static int edges(int i, int j)
static int GetIndex(const double values[Cube::CORNERS], double iso)
static void FactorFaceIndex(int idx, int &x, int &y, int &z)
static int FaceIndex(int dir, int offSet)
static const int * edgeMask()
static int FaceReflectCornerIndex(int idx, int faceIndex)
static int CornerIndex(int x, int y)
static int EdgeReflectEdgeIndex(int edgeIndex)
static int triangles(int i, int j)
static const int * cornerMap()
static int AddEdges(const double v[Square::CORNERS], double isoValue, Edge *edges)
static int ReflectCornerIndex(int idx, int edgeIndex)
static int HasFaceRoots(int mcIndex, int faceIndex)
static float Interpolate(float v1, float v2)
static int HasRoots(int mcIndex)
static int AddTriangleIndices(const double v[Cube::CORNERS], double isoValue, int *triangles)
static int EdgeIndex(int orientation, int i)
static int FaceReflectEdgeIndex(int idx, int faceIndex)
static int FaceAdjacentToEdges(int eIndex1, int eIndex2)
static void EdgeCorners(int idx, int &c1, int &c2)
static int HasRoots(const float v[Cube::CORNERS], float isoValue)
static int AntipodalCornerIndex(int idx)
static int CornerIndex(int x, int y, int z)
static void FactorEdgeIndex(int idx, int &orientation, int &i, int &j)
static int IsAmbiguous(const double v[Cube::CORNERS], double 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 int AntipodalCornerIndex(int idx)
static int IsAmbiguous(int mcIndex, int faceIndex)
static void EdgeCorners(int idx, int &c1, int &c2)
static double Interpolate(double v1, double v2)
static void FactorCornerIndex(int idx, int &x, int &y)
static const int * edgeMask()
static int HasRoots(const double v[Cube::CORNERS], double isoValue)
static int EdgeIndex(int orientation, int i, int j)
static int GetIndex(const float values[Cube::CORNERS], float iso)
static double & vertexList(int i, int j)
static int HasEdgeRoots(int mcIndex, int edgeIndex)
static int GetIndex(const double values[Square::CORNERS], double iso)
static int ReflectEdgeIndex(int idx, int edgeIndex)
static int IsAmbiguous(const float v[Cube::CORNERS], float isoValue, int faceIndex)
static void FactorCornerIndex(int idx, int &x, int &y, int &z)
static void FactorEdgeIndex(int idx, int &orientation, int &i)