-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTADUtil.h
157 lines (136 loc) · 4.99 KB
/
TADUtil.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
145
146
147
148
149
150
151
152
153
154
155
156
157
/*
* Universidade Federal do Vale do São Francisco - Univasf
* Colegiado de Engenharia de Computação
* Orientador: Prof. Dr. Jorge Cavalcanti
* Discentes: Elayne Lemos, [email protected]
* Jônatas de Castro, [email protected]
* Implementação:
* Este código implementa duas estruturas básicas : Cores e Coordenadas
* A ideia é mascarar algumas operações e simplificar a utilização dos recursos
*/
#ifndef TADUTIL_H
#define TADUTIL_H
#include <windows.h>
#include <math.h>
#include <stdlib.h>
#include <gl/glut.h>
#include <stdio.h>
#include <time.h>
void pause (float); //recebe um valor com ponto flutuante dado em segundos e faz o delay.
typedef struct tcolor{
GLfloat r;
GLfloat g;
GLfloat b;
}Color;
typedef struct tcoord{
GLfloat x;
GLfloat y;
}Coord;
/** procedimento de compilacao normal
* uso: COLORglColor(color);
*
* Solicita que uma cor seja enviada paa a máquina de estados para configurar a cor de fundo
* Esta função serve para mascarar a função do openGL evitando chamadas longas e confusas
**/
void COLORglClearColor(Color color);
/** procedimento de compilacao normal
* uso: COLORglColor(color);
*
* Solicita que uma cor seja enviada paa a máquina de estados
* Esta função serve para mascarar a função do openGL evitando chamadas longas e confusas
**/
void COLORglColor(Color color);
/** procedimento de compilacao normal
* uso: COORDglVertex(coord);
*
* Solicita que um vertice seja imprimido na máquna de estados
* Esta função serve para mascarar a função do openGL evitando chamadas longas e confusas
**/
void COORDglVertex(Coord coord);
/** procedimento de compilacao normal
* uso: COORDcopy(&a, b);
*
* a é um ponteiro para Color, e b é uma variável do tipo Coord;
* Esta função tem como objetivo copiar os valores que estão na
* cor b nos valores que estão na cor a
**/
void COLORcopy(Color *color1, Color color2);
/** procedimento de compilacao normal
* uso: COLORparse(&color,r,g,b);
*
* a função recebe 3 valores flutuantes, referentes a cada atributo de uma cor
* a função recebe o endereço da cor onde serão colocados os 3 parâmetros
**/
void COLORparse(Color *color, GLfloat r, GLfloat g,GLfloat b);
/** procedimento de compilacao normal
* uso: COLORset(r,g,b);
*
* a função recebe 3 valores flutuantes, referentes a cada atributo de uma cor
* A função returnará uma cor inicializada com os valores recebidos
**/
Color COLORset(GLfloat r, GLfloat g,GLfloat b);
/** procedimento de compilacao normal
* uso: COORDcopy(&a, b);
*
* a é um ponteiro para Coord, e b é uma variável do tipo Coord;
* Esta função tem como objetivo copiar os valores que estão na
* coordenada b nos valores que estão na coordenada a
**/
void COORDcopy(Coord *coord1, Coord coord2);
/** procedimento de compilacao normal
* uso: COLORrandom()
*
* Retornará uma cor calculada randomicamente
**/
Color COLORrandom();
/** procedimento de compilacao normal
* uso: COORDdistance(a,b)
*
* a e b são variaveis do tipo Coord.
* A distância euclidiana entre os pontos
**/
GLfloat COORDdistance(Coord a, Coord b);
/** procedimento de compilacao normal
* uso: COORDangle(a,b)
*
* a e b são variaveis do tipo Coord.
* esta função retorna o algulo que os pontos fazem
* em relação ao norte, com orientação horária
* O valor retornado estará em radianos
**/
GLfloat COORDangle(Coord a, Coord b);
/** procedimento de compilacao normal
* uso: COLORpaleta(cor, indice, maximo, seletor)
*
* cor é uma variavel do tipo Color, e servira como tema base para a paleta
* indice é um valor inteiro que deverá ser menor do que maximo, e representa a parcela de tom para cada um dos parametros da cor
* Maximo é o valor que deseja-se estipular como topo da paleta, delimita a variavel indice
* seletor é um valor inteiro que representa em binário as flags de cada uma das cores. A rigor os bits utilizados são apenas os 3 primeiros
* 0 bit 2 em 1 significa que o parametro R da cor sofrerá alterações com a paleta.
* O bit 1 em 1 significa que o parametro G da cor sofrerá alterações com a paleta.
* O bit 0 em 1 significa que o parametro B da cor sofrerá alterações com a paleta.
* Se algum dos bit for 0, o paramtro recebera uma copia do parametro da paleta correspondente.
**/
Color COLORpaleta(Color p, int i,int m,int s);
/** procedimento de compilacao normal
* uso: COORDprint(coordenada)
*
* coordenada é uma variavel do tipo Coord e ao passar nessa função
* Esta coordenada será imprimida na saída padrão formatada com seus parâmetros
**/
void COORDprint(Coord a);
/** procedimento de compilacao normal
* uso: COLORprint(cor)
*
* cor é uma variavel do tipo Color e ao passar nessa função
* Esta cor será imprimida na saída padrão formatada com seus parâmetros
**/
void COLORprint(Color a);
/** procedimento de compilacao normal
* uso: pause(valor)
*
* valor eh um numero maior que zero podendo ser uma fracao.
* eh o tempo em segundos de pausa no programa.
**/
void pause (float delay1) ;
#endif // TADUTIL_H