-
Notifications
You must be signed in to change notification settings - Fork 2
/
environment.cpp
87 lines (81 loc) · 1.99 KB
/
environment.cpp
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
79
80
81
82
83
84
85
86
87
#include "environment.hpp"
#include <cmath>
void renderGround(bool tesselate) {
//Ground
glPushMatrix();
glTranslatef(0, -50.615, 0);
int i, j;
if(tesselate) {
for(i = 0; i < 50; i++) {
for(j = 0; j < 50; j++) {
glPushMatrix();
glTranslatef((2*i)-49, 0, (2*j)-49);
glScalef(2, 100, 2);
texcube(2, 0.6, 0.6, 0.3, true);
glPopMatrix();
}
}
}
else {
for(i = 0; i < 1; i++) {
for(j = 0; j < 1; j++) {
glPushMatrix();
glScalef(100, 100, 100);
texcube(2, 0.6, 0.6, 0.3, true);
glPopMatrix();
}
}
}
glPopMatrix();
//Sea
glPushMatrix();
glTranslatef(0, -51, 0);
glScalef(300, 100, 300);
texcube(4, 1, 1, 1, true);
glPopMatrix();
}
void renderSky(bool day, bool moon_toggle) {
if (day)
{
glPushMatrix();
glScalef(300, 300, 300);
skybox(1, 1, 1, true, 6);
glPopMatrix();
}
else
{
if (!moon_toggle)
{
glPushMatrix();
glScalef(300, 300, 300);
skybox(1, 1, 1, true, 5);
glPopMatrix();
}
else
{
glPushMatrix();
glScalef(300, 300, 300);
texcube(3, 1, 1, 1, true);
glPopMatrix();
}
}
}
void renderTree(double x, double z, bool standing, double y_angle, double fall_angle) {
glPushMatrix();
if(!standing) {
glTranslatef(x+0.2*sin(y_angle * PI / 180), -0.565, z+0.2*cos(y_angle * PI / 180));
glRotatef(fall_angle, cos(y_angle * PI / 180), 0, -sin(y_angle * PI / 180));
glTranslatef(-x, 0.615, -z);
}
glPushMatrix();
glTranslatef(x, -0.365, z);
glScalef(0.1, 0.5, 0.1);
drawCylinder(0.32, 0.21, 0.04);
glPopMatrix();
glPushMatrix();
glTranslatef(x, 0.135, z);
glScalef(0.3, -0.5, 0.3);
drawCone(0.23, 0.37, 0.04);
glPopMatrix();
glPopMatrix();
}