-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathglwidget.h
78 lines (66 loc) · 1.88 KB
/
glwidget.h
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
33
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
70
71
72
73
74
75
76
77
78
#ifndef GLWIDGET_H
#define GLWIDGET_H
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
#include <QOpenGLVertexArrayObject>
#include <QOpenGLBuffer>
#include <QMatrix4x4>
#include "voxelworld.h"
QT_FORWARD_DECLARE_CLASS(QOpenGLShaderProgram)
class GLWidget : public QOpenGLWidget, protected QOpenGLFunctions
{
Q_OBJECT
public:
GLWidget(QWidget *parent = 0);
~GLWidget();
static bool isTransparent() { return m_transparent; }
static void setTransparent(bool t) { m_transparent = t; }
QSize minimumSizeHint() const override;
QSize sizeHint() const override;
public slots:
void setXRotation(int angle);
void setYRotation(int angle);
void setZRotation(int angle);
void setScale(float scaleFactor);
void setSelection(bool isChecked);
void loadModelPressed();
void dilatePressed();
void optimizePressed();
void cleanup();
protected:
void initializeGL() override;
void paintGL() override;
void resizeGL(int width, int height) override;
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void wheelEvent(QWheelEvent *event) override;
private:
void setupVertexAttribs();
void setupBuffer();
bool m_core;
int m_xRot;
int m_yRot;
int m_zRot;
bool selectVertices;
float m_dispScale;
QPoint m_lastPos;
QOpenGLVertexArrayObject m_vao;
QOpenGLBuffer m_obj;
QOpenGLBuffer m_indexObj;
//QOpenGLBuffer m_obj1;
QOpenGLShaderProgram *m_program;
int m_projMatrixLoc;
int m_mvMatrixLoc;
int m_normalMatrixLoc;
int m_lightPosLoc;
QMatrix4x4 m_proj;
QMatrix4x4 m_camera;
QMatrix4x4 m_world;
static bool m_transparent;
QVector<GLfloat> vertices, camVertices, contPoints, axes;
QVector<int> vecIndices;
VoxelWorld voxelLoader;
QPoint currDims;
float nearPlane, farPlane;
};
#endif // GLWIDGET_H