MC_grid_3d_scalar_marching_cube.hpp

Go to the documentation of this file.
00001 
00002 
00003 #ifndef _MC_GRID_3D_SCALAR_MARCHING_CUBE_HPP_
00004 #define _MC_GRID_3D_SCALAR_MARCHING_CUBE_HPP_
00005 
00006 #include <MC_grid_3d_scalar.hpp>
00007 #include <vector>
00008 #include <algorithm>
00009 
00010 namespace mesh_conv
00011 {
00012     class MC_mesh_index_vector;
00013     class MC_int_vector;
00014 
00016     class MC_grid_3d_scalar_marching_cube
00017     {
00018 
00019     public:
00020 
00021         // ************************************************ //
00022         // ************************************************ //
00023         // SLICE
00024         // ************************************************ //
00025         // ************************************************ //
00026 
00028         static MC_mesh_index_vector marching_cube(const MC_grid_3d_scalar& values,const double& isovalue=0.0);
00029 
00030     private:
00031 
00033         static void create_polygon(const std::vector<double>& cell_value,const int& type_of_cube,const MC_int_vector& x,MC_mesh_index_vector* mesh, std::map<MC_int_pair,unsigned int,MC_int_pair_less>* edge_to_vertex_index,const MC_grid_3d_scalar& potential);
00034 
00036         static int EdgeTable[256];
00038         static int TriangulationTable[256][16];
00039     };
00040 
00041 }
00042 
00043 #endif

Generated on Sun Apr 18 20:24:47 2010 by  doxygen 1.6.1