-
Notifications
You must be signed in to change notification settings - Fork 0
/
spheredance.h
144 lines (117 loc) · 3.96 KB
/
spheredance.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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#ifndef SPHEREDANCE_H_INCLUDED
#define SPHEREDANCE_H_INCLUDED
#include "glew.h"
#include <GLFW/glfw3.h>
#include "repere.h"
#include "Variables.h"
#include "fonctions.h"
#include "FrameBuffers.h"
#include "Trajectoire.h"
#include "math.h"
#define SD_NUM_OBJETS 16
#define SD_NUM_LUM 1
#define SD_ANNEAU_NUM_SPHERES 14
class SphereDance
{
public:
//Paramètres
static int groupe_courant;
static int32_t numReflec;
static float vitesse_rotation_spheres;
//Observateur
static float zMin;
static float zMax;
static Repere obs;
static float obsX;
static float obsY;
static float obsZ;
static float obsR;
static float obsT;
static float obsL;
static float aX;
static float aY;
static float aZ;
static float aR;
static float aT;
static float aL;
//Ciel:
static float C_ciel[TAILLE_CIEL];
//Lumière ambiante:
static float L_amb;
static float C_amb[3];
static float distance_brouillard;
//Lumière ponctuelle:
static float L1[TAILLE_LUM];
//Sol:
static float Sol[TAILLE_OBJ];
//Sphères:
static float S1[TAILLE_OBJ];
static float S2[TAILLE_OBJ];
static float S3[TAILLE_OBJ];
static float S4[TAILLE_OBJ];
static float S5[TAILLE_OBJ];
static float S6[TAILLE_OBJ];
static float S7[TAILLE_OBJ];
static float S8[TAILLE_OBJ];
static float S9[TAILLE_OBJ];
static float S10[TAILLE_OBJ];
static float S11[TAILLE_OBJ];
static float S12[TAILLE_OBJ];
static float S13[TAILLE_OBJ];
static float S14[TAILLE_OBJ];
static float S15[TAILLE_OBJ];
//static float S16[TAILLE_OBJ];
static float* anneau_spheres[SD_ANNEAU_NUM_SPHERES];
static float positions_spheres[SD_ANNEAU_NUM_SPHERES*3];
static float positions_spheres_rot[SD_ANNEAU_NUM_SPHERES*3];
static float objets[TAILLE_OBJ*SD_NUM_OBJETS]; //Le tableau contenant les objets de la scène
static float alpha_ay;
//Texture de transition avec la scène Mandelbrot:
static float fracTexDistMin;
static float fracTexDistMax;
static bool drapeau_affiche_fracTex;
//Commandes clavier:
static bool dep_droite;
static bool dep_gauche;
static bool dep_haut;
static bool dep_bas;
static bool dep_avant;
static bool dep_arriere;
static bool rot_droite;
static bool rot_gauche;
static bool rot_haut;
static bool rot_bas;
static bool rot_r_gauche;
static bool rot_r_droite;
static bool numReflec_0;
static bool numReflec_1;
static bool numReflec_2;
static bool numReflec_3;
static bool numRefrac_0;
static bool numRefrac_1;
static bool numRefrac_2;
static bool numRefrac_3;
static int depId;
static bool inc_FracTexMax;
static bool inc_FracTexMin;
static bool dec_FracTexMax;
static bool dec_FracTexMin;
//Edora:
static vec3f position_edora;
static float alpha_Edora;
static float angle_Edora;
public:
static bool init_scene_spheredance();
static void clavier(int key,bool etat);
static void maj_deplacement();
static int stock_objet(int j,float obj[TAILLE_OBJ]);
static void init_tableau_objets();
static void init_affiche_spheredance();
static void eclairages();
static void maj_positions_eclairages();
static void affiche_fractaleShot();
static void affiche_spheredance();
static void affiche_Edora();
static void render_spheredance();
};
#endif // SPHEREDANCE_H_INCLUDED