|
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 |