#pragma once #include "wx/glcanvas.h" #include "wx/timer.h" #include #include "CubicSDRDefs.h" #include "fftw3.h" class PrimaryGLContext : public wxGLContext { public: PrimaryGLContext(wxGLCanvas *canvas); void Plot(std::vector &points); private: // textures for the cube faces GLuint m_textures[6]; }; class TestGLCanvas : public wxGLCanvas { public: TestGLCanvas(wxWindow *parent, int *attribList = NULL); void setData(std::vector *data); std::vector points; fftw_complex *in, *out[2]; fftw_plan plan[2]; float fft_ceil_ma, fft_ceil_maa; std::vector fft_result; std::vector fft_result_ma; std::vector fft_result_maa; private: void OnPaint(wxPaintEvent& event); void OnKeyDown(wxKeyEvent& event); void OnIdle(wxIdleEvent &event); wxDECLARE_EVENT_TABLE(); };