-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtextura.hpp
109 lines (96 loc) · 2.66 KB
/
textura.hpp
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
/**
* \file textura.hpp
*
* \brief Este arquivo e um pacote que contem as definicoes que deverao ser apresentados na integra no arquivo textura.cpp, sendo este responsavel pelas
* definicoes de criacao da textura e outras caracteristicas ligadas ao objeto da cena. Foi utilizado o texto [introducao ao ray tracing] como base para a
* implementacao do arquivo.
* [Texto de introducao ao ray tracing]: www.visgraf.impa.br/Data/RefBib/PS_PDF/silva94/rt.pdf "introducao ao ray tracing"
*
* \author
* Petrucio Ricardo Tavares de Medeiros \n
* Universidade Federal do Rio Grande do Norte \n
* Departamento de Computacao e Automacao Industrial \n
* petrucior at gmail (dot) com
*
* \version 0.0
* \date Novembro 2013
*/
#ifndef _TEXTURA_HPP
#define _TEXTURA_HPP
#include "vetor.hpp" //rayTracing::Vetor
/**
* \defgroup RayTracingNameSpace Namespace rayTracing.
* @{
*/
/**
* \namespace rayTracing
*
* \brief O espaco de nomes rayTracing contem todas os arquivos que sao utilizados para sua implementacao.
*/
namespace rayTracing{
/**
* \class Textura
*
* \brief Define metodos para a criacao da textura.
*/
class Textura{
//------------------------------
// Atributos privados
//------------------------------
private:
//Inicio do range
Vetor* inicio_range;
//Fim do range
Vetor* final_range;
//------------------------------
// Metodos privados
//------------------------------
/**
* \fn int rand_red();
*
* \brief Escolhe a parte red randomicamente.
*
* \return Valor randomico para a contribuicao vermelha.
*/
int rand_red();
/**
* \fn int rand_green();
*
* \brief Escolhe a parte green randomicamente.
*
* \return Valor randomico para a contribuicao verde.
*/
int rand_green();
/**
* \fn int rand_blue();
*
* \brief Escolhe a parte blue randomicamente.
*
* \return Valor randomico para a contribuicao azul.
*/
int rand_blue();
//------------------------------
// Metodos publicos
//------------------------------
public:
/**
* \fn Textura(Vetor* _inicio_range, Vetor* _final_range);
*
* \brief Construtor da classe textura.
*
* \param _inicio_range - inicio dos limites
* \param _final_range - final dos limites
*/
Textura(Vetor* _inicio_range, Vetor* _final_range);
/**
* \fn Vetor* map_textura_solida();
*
* \brief Metodo que mapeia a textura solida.
*
* \return Vetor com contribuicao r, g e b.
*/
Vetor* map_textura_solida();
};
} //Fim do namespace rayTracing
/** @} */ //Fim do grupo class
#endif