Subversion Repositories gelsvn

Rev

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

Rev 650 Rev 656
1
/*
1
/*
2
 *  VisObj.h
2
 *  VisObj.h
3
 *  GEL
3
 *  GEL
4
 *
4
 *
5
 *  Created by J. Andreas Bærentzen on 20/09/08.
5
 *  Created by J. Andreas Bærentzen on 20/09/08.
6
 *  Copyright 2008 __MyCompanyName__. All rights reserved.
6
 *  Copyright 2008 __MyCompanyName__. All rights reserved.
7
 *
7
 *
8
 */
8
 */
9
#ifndef __MESHEDIT_VISOBJ_H__
9
#ifndef __MESHEDIT_VISOBJ_H__
10
#define __MESHEDIT_VISOBJ_H__
10
#define __MESHEDIT_VISOBJ_H__
11
 
11
 
12
 
12
 
13
#include <string>
13
#include <string>
14
#include "../GL/glew.h"
14
#include "../GL/glew.h"
15
#include "../HMesh/Manifold.h"
15
#include "../HMesh/Manifold.h"
16
#include "../CGLA/Vec3d.h"
16
#include "../CGLA/Vec3d.h"
17
#include "../GLGraphics/draw.h"
17
#include "../GLGraphics/draw.h"
18
#include "../GLGraphics/Console.h"
18
#include "../GLGraphics/Console.h"
19
#include "../GLGraphics/GLViewController.h"
19
#include "../GLGraphics/GLViewController.h"
20
#include "../GLGraphics/ManifoldRenderer.h"
20
#include "../GLGraphics/ManifoldRenderer.h"
21
#include "../HMesh/harmonics.h"
21
#include "../HMesh/harmonics.h"
22
 
22
 
23
extern int WINX;
23
extern int WINX;
24
extern int WINY;
24
extern int WINY;
25
 
25
 
26
namespace GLGraphics {
26
namespace GLGraphics {
27
 
27
 
28
class VisObj
28
class VisObj
29
{
29
{
30
    std::string file;
30
    std::string file;
31
    GLGraphics::GLViewController view_ctrl;
31
    GLGraphics::GLViewController view_ctrl;
32
    bool create_display_list;
32
    bool create_display_list;
33
    
33
    
34
    HMesh::Manifold mani;
34
    HMesh::Manifold mani;
35
    HMesh::Manifold old_mani;
35
    HMesh::Manifold old_mani;
36
    HMesh::Harmonics* harm;
36
    HMesh::Harmonics* harm;
37
    GLGraphics::ManifoldRenderer* renderer;
37
    GLGraphics::ManifoldRenderer* renderer;
38
    CGLA::Vec3d bsphere_center;
38
    CGLA::Vec3d bsphere_center;
39
    float bsphere_radius;
39
    float bsphere_radius;
40
public:
40
public:
41
    
41
    
42
    VisObj()
42
    VisObj()
43
    {
43
    {
44
        file = "";
44
        file = "";
45
        view_ctrl = GLGraphics::GLViewController(WINX,WINY, CGLA::Vec3f(0), 1.0);
45
        view_ctrl = GLGraphics::GLViewController(WINX,WINY, CGLA::Vec3f(0), 1.0);
46
        create_display_list =true;
46
        create_display_list =true;
47
        renderer = nullptr;
47
        renderer = nullptr;
48
        
48
        
49
    }
49
    }
50
    
50
    
51
    const std::string& file_name() const {return file;}
51
    const std::string& file_name() const {return file;}
52
    
52
    
53
    float get_bsphere_radius() const { return bsphere_radius;}
53
    float get_bsphere_radius() const { return bsphere_radius;}
54
    
54
    
55
    HMesh::Manifold& mesh() {return mani;}
55
    HMesh::Manifold& mesh() {return mani;}
-
 
56
    const HMesh::Manifold& mesh_old() const {return old_mani;}
56
    
57
    
57
    void save_old() {old_mani = mani;}
58
    void save_old() {old_mani = mani;}
58
    void restore_old() {mani = old_mani;}
59
    void restore_old() {mani = old_mani;}
59
    
60
    
60
    GLGraphics::GLViewController& view_control() {return view_ctrl;}
61
    GLGraphics::GLViewController& view_control() {return view_ctrl;}
61
    
62
    
62
    void refit();
63
    void refit();
63
    
64
    
64
    bool reload(std::string _file);
65
    bool reload(std::string _file);
65
    
66
    
66
    bool add_mesh(std::string _file);
67
    bool add_mesh(std::string _file);
67
    
68
    
68
    void display(const std::string& display_method , GLGraphics::Console& cs, bool smooth, float gamma);
69
    void display(const std::string& display_method , GLGraphics::Console& cs, bool smooth, float gamma);
69
    
70
    
70
    void post_create_display_list()
71
    void post_create_display_list()
71
    {
72
    {
72
        create_display_list = true;
73
        create_display_list = true;
73
    }
74
    }
74
    
75
    
75
    void harmonics_analyze() {
76
    void harmonics_analyze() {
76
        harm = new HMesh::Harmonics(mani);
77
        harm = new HMesh::Harmonics(mani);
77
    }
78
    }
78
    
79
    
79
};
80
};
80
 
81
 
81
}
82
}
82
#endif
83
#endif
83
 
84