Subversion Repositories gelsvn

Rev

Rev 63 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 63 Rev 67
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 "HMeshUtil/obj_save.h"
6
#include "HMeshUtil/obj_save.h"
7
#include "HMeshUtil/x3d_save.h"
7
#include "HMeshUtil/x3d_save.h"
8
#include "HMeshUtil/caps_and_needles.h"
8
#include "HMeshUtil/caps_and_needles.h"
9
#include "Geometry/fair_polygonize.h"
9
#include "Geometry/fair_polygonize.h"
10
 
10
 
11
using namespace CGLA;
11
using namespace CGLA;
12
using namespace HMeshUtil;
12
using namespace HMeshUtil;
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
		ArgExtracter ae(argc, argv);
22
		ArgExtracter ae(argc, argv);
23
	float iso = 30;
23
	float iso = 30;
24
	ae.extract("-i", iso);
24
	ae.extract("-i", iso);
25
	int X  = 256;
25
	int X  = 256;
26
	ae.extract("-x", X);
26
	ae.extract("-x", X);
27
	int Y  = 256;
27
	int Y  = 256;
28
	ae.extract("-y", Y);
28
	ae.extract("-y", Y);
29
	int Z  = 256;
29
	int Z  = 256;
30
	ae.extract("-z", Z);
30
	ae.extract("-z", Z);
31
	string file = ae.get_last_arg();
31
	string file = ae.get_last_arg();
32
	
32
	
33
	RGridb grid(Vec3i(X,Y,Z));
33
	RGridb grid(Vec3i(X,Y,Z));
34
	load_raw(file,grid);
34
	load_raw(file,grid);
35
 
35
 
36
 
36
 
37
	cout << "Polygonizing, iso = " << iso << endl;
37
	cout << "Polygonizing, iso = " << iso << endl;
38
	Manifold mani;
38
	Manifold mani;
39
	fair_polygonize(grid, mani, iso);
39
	fair_polygonize(grid, mani, iso);
40
	cout << "Removing caps and needles ... " << endl;
40
	cout << "Removing caps and needles ... " << endl;
41
	remove_caps_from_trimesh(mani, M_PI * 0.85);
41
	remove_caps_from_trimesh(mani, M_PI * 0.85);
42
	remove_needles_from_trimesh(mani, 1e-2);
42
	remove_needles_from_trimesh(mani, 1e-2);
43
	
43
	
44
	cout << "Saving" << endl;
44
	cout << "Saving" << endl;
45
	x3d_save("isosurf.obj", mani);
45
	x3d_save("isosurf.obj", mani);
46
}
46
}
47
 
47