-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvetor.hpp
142 lines (124 loc) · 3.29 KB
/
vetor.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
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
/**
* \file vetor.hpp
*
* \brief Este arquivo e um pacote que contem as definicoes de calculos que deverao ser apresentados na integra no arquivo vetor.cpp, que e
* responsavel pela definicoes de funcoes da estrutura dos vetores.
*
* \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 Outubro 2013
*/
#ifndef _VETOR_HPP
#define _VETOR_HPP
/**
* \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 Vetor
*
* \brief Esta classe contem a definicao de vetores que serao utilizados como estrutura para o projeto rayTracing.
*
*/
class Vetor{
//------------------------------
// Atributos privados
//------------------------------
private:
double x; ///< Coordenada x
double y; ///< Coordenada y
double z; ///< Coordenada z
double pi;
//------------------------------
// Metodos publicos
//------------------------------
public:
/**
* \fn Vetor();
*
* \brief Construtor da classe vetor.
*/
Vetor();
/**
* \fn void valores_vetor(double _x, double _y, double _z);
*
* \brief Atualiza os valores do vetor.
*
* \param _x - valor correspondente a coordenada x
* \param _y - valor correspondente a coordenada y
* \param _z - valor correspondente a coordenada z
*/
void valores_vetor(double _x, double _y, double _z);
/**
* \fn double vx();
*
* \brief Encontra o valor da coordenada x.
*
* \return O valor da coordenada x do vetor.
*/
double vx();
/**
* \fn double vy();
*
* \brief Encontra o valor da coordenada y.
*
* \return O valor da coordenada y do vetor.
*/
double vy();
/**
* \fn double vz();
*
* \brief Encontra o valor da coordenada z.
*
* \return O valor da coordenada z do vetor.
*/
double vz();
/**
* \fn void vetor_diretor(Vetor& v, Vetor& r);
*
* \brief Calcula o vetor diretor.
*/
void vetor_diretor(Vetor* v, Vetor* r);
/**
* \fn double norma();
*
* \brief Calcula a norma ou modulo do vetor.
*
* \return A norma do vetor.
*/
double norma();
/**
* \fn double produto_escalar(const Vetor& v);
*
* \brief Calcula o produto escalar entre os dois vetores.
*
* \param v - vetor que esta realizando o produto escalar.
*
* \return O valor do produto escalar.
*/
double produto_escalar(Vetor* v);
/**
* \fn double angulo(const Vetor& v);
*
* \brief Calcula o angulo entre vetores.
*
* \param v - vetor que se deseja encontrar o angulo.
*
* \return O angulo entre os dois vetores em GRAUS.
*/
double angulo(Vetor* v);
};
} ////Fim do namespace rayTracing
/** @} */ //Fim do grupo class
#endif