Subversion Repositories gelsvn

Rev

Rev 105 | Blame | Last modification | View Log | RSS feed

#include "CGLA/Mat4x4f.h"
#include "Util/ArgExtracter.h"
#include "Geometry/RGrid.h"
#include "Geometry/load_raw.h"
#include "Geometry/save_raw.h"
#include "HMesh/obj_save.h"
#include "HMesh/x3d_save.h"
#include "HMesh/caps_and_needles.h"
#include "HMesh/fair_polygonize.h"

using namespace CGLA;
using namespace Util;
using namespace HMesh;
using namespace std;
using namespace Geometry;

typedef RGrid<unsigned char> RGridb;

int main(int argc, char**argv)
{
                ArgExtracter ae(argc, argv);
                float iso = 40;
                ae.extract("-i", iso);
                int X  = 128;
                ae.extract("-x", X);
                int Y  = 128;
                ae.extract("-y", Y);
                int Z  = 62;
                ae.extract("-z", Z);
                string file;
                if(ae.no_remaining_args()<2) 
                                file ="../../data/teddybear.raw";
                else
                                file = ae.get_last_arg();
                
                RGridb grid(Vec3i(X,Y,Z));

//              RGridb grid(Vec3i(32));
//              srand(0);
//              for(int i=0;i<32;++i)
//                      for(int j=0;j<32;++j)
//                              for(int k=0;k<32;++k)           
//                                      grid[Vec3i(i,j,k)] = 80.0 * rand()/double(RAND_MAX);

                cout << "loading " << file << endl;
                load_raw(file,grid);
                
                
                cout << "Polygonizing, iso = " << iso << endl;
                Manifold mani;
                //fair_polygonize(grid, mani, iso);
                cuberille_polygonize(grid, mani, iso, true);
                
                cout << "Saving" << endl;
                x3d_save("isosurf.x3d", mani);
}