-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCube.cpp
More file actions
75 lines (67 loc) · 2.42 KB
/
Cube.cpp
File metadata and controls
75 lines (67 loc) · 2.42 KB
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
#include "Cube.h"
#include <cstdio>
Cube::Cube(QOpenGLShaderProgram* prog, GLfloat side ):QuadMesh(prog, "Cube")
{
GLfloat side2 = side / 2.0f;
std::vector<GLfloat> p = {
// Front
-side2, -side2, side2, side2, -side2, side2, side2, side2, side2, -side2, side2, side2,
// Right
side2, -side2, side2, side2, -side2, -side2, side2, side2, -side2, side2, side2, side2,
// Back
-side2, -side2, -side2, -side2, side2, -side2, side2, side2, -side2, side2, -side2, -side2,
// Left
-side2, -side2, side2, -side2, side2, side2, -side2, side2, -side2, -side2, -side2, -side2,
// Bottom
-side2, -side2, side2, -side2, -side2, -side2, side2, -side2, -side2, side2, -side2, side2,
// Top
-side2, side2, side2, side2, side2, side2, side2, side2, -side2, -side2, side2, -side2
};
std::vector<GLfloat> n = {
// Front
0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
// Right
1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
// Back
0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f,
// Left
-1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f,
// Bottom
0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f,
// Top
0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f
};
std::vector<GLfloat> tex = {
// Front
0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f,
// Right
0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f,
// Back
0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f,
// Left
0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f,
// Bottom
0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f,
// Top
0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f
};
/*std::vector<GLuint> el = {
0,1,2,0,2,3,
4,5,6,4,6,7,
8,9,10,8,10,11,
12,13,14,12,14,15,
16,17,18,16,18,19,
20,21,22,20,22,23
};*/
std::vector<GLuint> el = {
0,1,2,3,
4,5,6,7,
8,9,10,11,
12,13,14,15,
16,17,18,19,
20,21,22,23
};
initBuffers(&el, &p, &n, &tex);
_boundingSphere.setCenter(0, 0, 0);
_boundingSphere.setRadius(sqrt(3)*(side/2));
}