MusicSpectrum
1.0.0
|
#include <spectrum3D.hpp>
Membros Públicos | |
void | viewWaveform () |
Visualiza a forma de onda do sinal de áudio. Mais... | |
void | viewWaveformFFT () |
Visualiza a forma de onda com aplicação da FFT no sinal de áudio. Mais... | |
void | getWhellDelta (int w_delta) |
void | run (std::function< void(std::vector< Float_Complex >, std::size_t)> handlePlot) |
Spectrum3D (std::shared_ptr< sf::RenderWindow > win, std::shared_ptr< HUD > hud, std::shared_ptr< FFT< sf::Int16 >> fft) | |
Atributos Protegidos | |
const glm::mat4 | view_default_mat |
Membros Privados | |
void | clear () |
Limpa a tela. Mais... | |
void | initOpenGL () |
void | handleMouse () |
Trata o movimento do mouse. Mais... | |
void | setupBuffers (GLuint &vao, GLuint &vbo, GLuint &ebo) |
void | bindAndDraw (GLuint vao, GLuint vbo, GLuint ebo, std::vector< glm::vec3 > &vertices, std::vector< GLuint > &indices, GLenum mode) |
Atributos Privados | |
std::shared_ptr< sf::RenderWindow > | window |
std::shared_ptr< HUD > | hud_ptr |
std::shared_ptr< FFT< sf::Int16 > > | fft_ptr |
std::shared_ptr< Plane > | plane_ptr |
std::shared_ptr< MobiusStrip > | mobius_ptr |
std::shared_ptr< Timer > | timer_ptr |
std::unique_ptr< Sample > | sample_ptr |
glm::mat4 | proj_mat |
glm::mat4 | view_wave_mat |
glm::mat4 | view_wff_mat |
int | whell_delta |
GLuint | vao_wave |
GLuint | vbo_wave |
GLuint | ebo_wave |
std::shared_ptr< Shader > | shader_wave_ptr |
GLuint | vao_fft |
GLuint | vbo_fft |
GLuint | ebo_fft |
std::shared_ptr< Shader > | shader_wfft_ptr |
Esta classe renderiza a forma de onda e a FFT de um sinal de áudio.
A classe Spectrum3D utiliza bibliotecas externas como SFML, GLM e OpenGL para realizar a renderização gráfica da forma de onda e da FFT de um sinal de áudio fornecido. Ela também interage com outras classes como HUD, Spectrum e FFT para auxiliar na exibição e processamento dos dados.
Spectrum3D::Spectrum3D | ( | std::shared_ptr< sf::RenderWindow > | win, |
std::shared_ptr< HUD > | hud, | ||
std::shared_ptr< FFT< sf::Int16 >> | fft | ||
) |
Construtor da classe Spectrum3D.
|
private |
Liga o buffer de vértices e o buffer de elementos (EBO) ao VAO especificado, e desenha a geometria utilizando o modo de desenho especificado.
vao
: ID do Vertex Array Object (VAO) ao qual os buffers serão ligados. vbo
: ID do Vertex Buffer Object (VBO) contendo os vértices a serem desenhados. vertices
: Vetor contendo os vértices a serem carregados no VBO. ebo
: ID do Element Buffer Object (EBO) contendo os índices de vértices a serem desenhados. indices
: Vetor contendo os índices que especificam a ordem dos vértices. mode
: Modo de desenho OpenGL (por exemplo, GL_TRIANGLES, GL_LINES, GL_POINTS).
|
private |
void Spectrum3D::getWhellDelta | ( | int | w_delta | ) |
Atualiza o delta do movimento da roda do mouse.
w_delta
: Valor do delta do movimento da roda do mouse.
|
private |
Trata o movimento do mouse.
|
private |
Realiza a inicialização do OpenGL:
void Spectrum3D::run | ( | std::function< void(std::vector< Float_Complex >, std::size_t)> | handlePlot | ) |
|
private |
Configuração inicial dos buffers: vao
: ID do Vertex Array Object (VAO) ao qual os buffers serão ligados. vbo
: ID do Vertex Buffer Object (VBO) contendo os vértices a serem desenhados. ebo
: ID do Element Buffer Object (EBO) contendo os índices de vértices a serem desenhados.
void Spectrum3D::viewWaveform | ( | ) |
Visualiza a forma de onda do sinal de áudio.
void Spectrum3D::viewWaveformFFT | ( | ) |
Visualiza a forma de onda com aplicação da FFT no sinal de áudio.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
protected |
|
private |
|
private |
|
private |
|
private |