Rev 205 | Go to most recent revision | Blame | Compare with Previous | 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/volume_polygonize.h"
#include "HMesh/triangulate.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 ofile = "../../data/isosurf.x3d";
ae.extract("-o", ofile);
string file;
if(ae.no_remaining_args()<2)
file ="../../data/teddybear.raw";
else
file = ae.get_last_arg();
//RGrid<unsigned short> grid(Vec3i(X,Y,Z));
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;
//cuberille_polygonize(grid, mani, iso, false);
mc_polygonize(grid, mani, iso);
//shortest_edge_triangulate(mani);
cout << "Saving" << endl;
x3d_save(ofile, mani);
}