Création d'un compte pour un collaborateur extérieur au laboratoire depuis l'intranet ICube : https://intranet.icube.unistra.fr/fr/labs/member/profile

viewerOBJ.h 3.39 KB
Newer Older
Sylvain Thery's avatar
Sylvain Thery committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*******************************************************************************
* CGoGN: Combinatorial and Geometric modeling with Generic N-dimensional Maps  *
* version 0.1                                                                  *
* Copyright (C) 2009-2012, IGG Team, LSIIT, University of Strasbourg           *
*                                                                              *
* This library is free software; you can redistribute it and/or modify it      *
* under the terms of the GNU Lesser General Public License as published by the *
* Free Software Foundation; either version 2.1 of the License, or (at your     *
* option) any later version.                                                   *
*                                                                              *
* This library is distributed in the hope that it will be useful, but WITHOUT  *
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or        *
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License  *
* for more details.                                                            *
*                                                                              *
* You should have received a copy of the GNU Lesser General Public License     *
* along with this library; if not, write to the Free Software Foundation,      *
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.           *
*                                                                              *
* Web site: http://cgogn.unistra.fr/                                           *
* Contact information: cgogn@unistra.fr                                        *
*                                                                              *
*******************************************************************************/
#ifndef _TEXTURE_EXAMPLE_
#define _TEXTURE_EXAMPLE_

#include <iostream>


//#include "Utils/Qt/qtSimple.h"
#include "Utils/Qt/qtQGLV.h"
#include "Utils/textures.h"
33
#include "Utils/drawer.h"
Sylvain Thery's avatar
Sylvain Thery committed
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "Utils/Shaders/shaderSimpleTexture.h"
#include "Utils/Shaders/shaderPhongTexture.h"
#include "Utils/Shaders/shaderPhong.h"
#include "Topology/generic/parameters.h"
#include "Topology/map/embeddedMap2.h"
#include "Algo/Render/GL2/mapRender.h"
#include "Algo/Import/importObjTex.h"


// forward definitions (minimize includes)
namespace CGoGN { namespace Algo { namespace Render { namespace GL2 { class MapRender; }}}}
namespace CGoGN { namespace Utils { class VBO; } }

using namespace CGoGN ;

struct PFP: public PFP_STANDARD
{
	// definition of the map
	typedef EmbeddedMap2 MAP ;
};

typedef PFP::MAP MAP ;
typedef PFP::VEC3 VEC3 ;
/**
 * A class for a little interface and rendering
 */

//class ObjView: public Utils::QT::SimpleQT
class ObjView: public Utils::QT::SimpleQGLV
{
	Q_OBJECT
public:

	MAP myMap ;
	Algo::Surface::Import::OBJModel<PFP> m_obj;

70
71
72
73
	Utils::Drawer* m_dr;
	unsigned int m_currentGroupDrawn;
	void drawBB( const Geom::BoundingBox<VEC3>& bb);

Sylvain Thery's avatar
Sylvain Thery committed
74
75
76
77
78
79
80
81
82
83
84
	// VBO
	Utils::VBO* m_positionVBO;
	Utils::VBO* m_normalVBO;
	Utils::VBO* m_texcoordVBO;


	// shader simple texture
	Utils::ShaderSimpleTexture* m_shader;
	Utils::ShaderPhongTexture* m_shader2;
	Utils::ShaderPhong* m_phongShader;

Sylvain Thery's avatar
Sylvain Thery committed
85
86
	int m_RenderStyle;

Sylvain Thery's avatar
Sylvain Thery committed
87
88
89
90
91
92
93
94
95
96
97
	ObjView();

	~ObjView();

	void init(const std::string& fnm);

	// callbacks of simpleQT to overdefine:
	void cb_redraw();

	void cb_initGL();

Sylvain Thery's avatar
Sylvain Thery committed
98
99
100
	void cb_keyPress(int k);


Sylvain Thery's avatar
Sylvain Thery committed
101
102
103
};

#endif