Subversion Repositories gelsvn

Rev

Rev 205 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 205 Rev 207
1
#include "CGLA/Mat4x4f.h"
1
#include "CGLA/Mat4x4f.h"
2
#include "Util/ArgExtracter.h"
2
#include "Util/ArgExtracter.h"
3
#include "Geometry/RGrid.h"
3
#include "Geometry/RGrid.h"
4
#include "Geometry/load_raw.h"
4
#include "Geometry/load_raw.h"
5
#include "Geometry/save_raw.h"
5
#include "Geometry/save_raw.h"
6
#include "HMesh/obj_save.h"
6
#include "HMesh/obj_save.h"
7
#include "HMesh/x3d_save.h"
7
#include "HMesh/x3d_save.h"
8
#include "HMesh/caps_and_needles.h"
8
#include "HMesh/caps_and_needles.h"
9
#include "HMesh/volume_polygonize.h"
9
#include "HMesh/volume_polygonize.h"
10
#include "HMesh/triangulate.h"
10
#include "HMesh/triangulate.h"
11
 
11
 
12
using namespace CGLA;
12
using namespace CGLA;
13
using namespace Util;
13
using namespace Util;
14
using namespace HMesh;
14
using namespace HMesh;
15
using namespace std;
15
using namespace std;
16
using namespace Geometry;
16
using namespace Geometry;
17
 
17
 
18
typedef RGrid<unsigned char> RGridb;
18
typedef RGrid<unsigned char> RGridb;
19
 
19
 
20
int main(int argc, char**argv)
20
int main(int argc, char**argv)
21
{
21
{
22
	
22
	
23
		ArgExtracter ae(argc, argv);
23
		ArgExtracter ae(argc, argv);
24
		float iso = 40;
24
		float iso = 40;
25
		ae.extract("-i", iso);
25
		ae.extract("-i", iso);
26
		int X  = 128;
26
		int X  = 128;
27
		ae.extract("-x", X);
27
		ae.extract("-x", X);
28
		int Y  = 128;
28
		int Y  = 128;
29
		ae.extract("-y", Y);
29
		ae.extract("-y", Y);
30
		int Z  = 62;
30
		int Z  = 62;
31
		ae.extract("-z", Z);
31
		ae.extract("-z", Z);
32
		
32
		
33
		string ofile = "../../data/isosurf.x3d";
33
		string ofile = "../../data/isosurf.x3d";
34
		ae.extract("-o", ofile);
34
		ae.extract("-o", ofile);
35
 
35
 
36
		string file;
36
		string file;
37
		if(ae.no_remaining_args()<2) 
37
		if(ae.no_remaining_args()<2) 
38
				file ="../../data/teddybear.raw";
38
				file ="../../data/teddybear.raw";
39
		else
39
		else
40
				file = ae.get_last_arg();
40
				file = ae.get_last_arg();
41
 
41
 
42
		//RGrid<unsigned short> grid(Vec3i(X,Y,Z));
42
		//RGrid<unsigned short> grid(Vec3i(X,Y,Z));
43
		RGridb grid(Vec3i(X,Y,Z));
43
		RGridb grid(Vec3i(X,Y,Z));
44
 
44
 
45
//		RGridb grid(Vec3i(32));
45
//		RGridb grid(Vec3i(32));
46
// 		srand(0);
46
// 		srand(0);
47
// 		for(int i=0;i<32;++i)
47
// 		for(int i=0;i<32;++i)
48
// 			for(int j=0;j<32;++j)
48
// 			for(int j=0;j<32;++j)
49
// 				for(int k=0;k<32;++k)		
49
// 				for(int k=0;k<32;++k)		
50
// 					grid[Vec3i(i,j,k)] = 80.0 * rand()/double(RAND_MAX);
50
// 					grid[Vec3i(i,j,k)] = 80.0 * rand()/double(RAND_MAX);
51
 
51
 
52
 		cout << "loading " << file << endl;
52
 		cout << "loading " << file << endl;
53
 		load_raw(file,grid);
53
 		load_raw(file,grid);
54
		
54
		
55
		cout << "Polygonizing, iso = " << iso << endl;
55
		cout << "Polygonizing, iso = " << iso << endl;
56
		Manifold mani;
56
		Manifold mani;
57
		//cuberille_polygonize(grid, mani, iso, false);
57
		//cuberille_polygonize(grid, mani, iso, false);
58
		mc_polygonize(grid, mani, iso);
58
		mc_polygonize(grid, mani, iso);
59
		
59
		
60
				//shortest_edge_triangulate(mani);
60
				//shortest_edge_triangulate(mani);
61
 
61
 
62
		cout << "Saving" << endl;
62
		cout << "Saving" << endl;
63
		x3d_save(ofile, mani);
63
		x3d_save(ofile, mani);
64
}
64
}
65
 
65