Almond.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #pragma once
  2. #include <QtWidgets/QMainWindow>
  3. #include "ui_Almond.h"
  4. #include <Mandel.h>
  5. #include "MandelWidget.h"
  6. #include "BackgroundTask.h"
  7. #include "exportdialogs.h"
  8. #include "gradientchoosedialog.h"
  9. #include "choosegenerators.h"
  10. //#include "benchmarkdialog.h"
  11. #include <memory>
  12. struct ViewState
  13. {
  14. mnd::MandelViewport viewport;
  15. mnd::MandelGenerator* generator;
  16. };
  17. enum ViewType
  18. {
  19. MANDELBROT,
  20. JULIA
  21. };
  22. class Almond : public QMainWindow
  23. {
  24. Q_OBJECT
  25. private:
  26. mnd::MandelContext mandelContext;
  27. std::unique_ptr<MandelWidget> mw;
  28. //std::unique_ptr<BenchmarkDialog> benchmarkDialog;
  29. std::unique_ptr<ChooseGenerators> generatorsDialog;
  30. GradientChooseDialog gcd;
  31. std::vector<std::unique_ptr<mnd::MandelGenerator>> compiledGenerators;
  32. ViewType currentView;
  33. mnd::MandelViewport mandelViewSave;
  34. mnd::MandelGenerator* mandelGeneratorSave;
  35. mnd::MandelGenerator* currentGenerator;
  36. public:
  37. Almond(QWidget *parent = Q_NULLPTR);
  38. ~Almond(void);
  39. void submitBackgroundTask(BackgroundTask* task);
  40. private slots:
  41. void on_zoom_out_clicked();
  42. void on_zoom_in_clicked();
  43. void on_maxIterations_editingFinished();
  44. void on_chooseGradient_clicked();
  45. void on_exportVideo_clicked();
  46. void on_smooth_stateChanged(int arg1);
  47. void on_exportImage_clicked();
  48. void on_resetZoom_clicked();
  49. void on_displayInfo_stateChanged(int arg1);
  50. void on_chooseGenerator_clicked();
  51. void backgroundTaskFinished();
  52. void on_selectPoint_clicked();
  53. void pointSelected(mnd::Real x, mnd::Real y);
  54. void on_viewMandelbrot_clicked();
  55. private:
  56. Ui::AlmondClass ui;
  57. };