Subversion Repositories gelsvn

Rev

Rev 399 | Rev 412 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
399 jab 1
/*
2
 *  VisObj.h
3
 *  GEL
4
 *
5
 *  Created by J. Andreas Bærentzen on 20/09/08.
6
 *  Copyright 2008 __MyCompanyName__. All rights reserved.
7
 *
8
 */
9
#ifndef __MESHEDIT_VISOBJ_H__
10
#define __MESHEDIT_VISOBJ_H__
11
 
12
 
13
#include <string>
14
#include <GL/glew.h>
15
#include <HMesh/Manifold.h>
403 jab 16
#include <CGLA/Vec3f.h>
399 jab 17
#include <GLGraphics/draw.h>
18
#include <GLGraphics/GLViewController.h>
19
#include "harmonics.h"
20
#include "Renderer.h"
21
 
22
extern int WINX;
23
extern int WINY;
24
 
25
class VisObj
26
	{
27
		std::string file;
28
		GLGraphics::GLViewController view_ctrl;
29
		bool create_display_list;
30
		HMesh::Manifold mani;
31
		Harmonics* harmonics;
32
		ManifoldRenderer* renderer;
403 jab 33
		CGLA::Vec3f bsphere_center;
34
		float bsphere_radius;
399 jab 35
	public:
36
		VisObj():
37
        file(""), view_ctrl(WINX,WINY, CGLA::Vec3f(0), 1.0), create_display_list(true), harmonics(0) {}
38
 
39
 
40
		HMesh::Manifold& mesh() {return mani;}
41
 
42
		GLGraphics::GLViewController& view_control() {return view_ctrl;}
43
 
44
		bool reload(std::string _file);
45
 
46
		void display(const std::string& display_method , bool smooth);
47
 
48
		void post_create_display_list()
49
		{
50
			create_display_list = true;
51
		}
52
 
53
		void harmonics_analyze_mesh()
54
		{
55
			delete harmonics;
56
			harmonics = new Harmonics(mani);
57
		}
58
 
59
		void harmonics_reset_shape()
60
		{
61
			if(harmonics)
62
				harmonics->reset_shape();
63
		}
64
 
65
		void harmonics_parse_key(unsigned char key)
66
		{
67
			harmonics->parse_key(key);
68
		}
69
 
70
		void harmonics_partial_reconstruct(int eig0, int eig1, float scale)
71
		{
72
			if(harmonics)
73
				harmonics->partial_reconstruct(eig0, eig1, scale);
74
		}
75
 
76
	};
77
 
78
#endif