12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #pragma once
- #include <QtWidgets/QMainWindow>
- #include "ui_Almond.h"
- #include <Mandel.h>
- #include "MandelWidget.h"
- #include "BackgroundTask.h"
- #include "exportdialogs.h"
- #include "gradientchoosedialog.h"
- #include "choosegenerators.h"
- #include "customgenerator.h"
- //#include "benchmarkdialog.h"
- #include <memory>
- struct ViewState
- {
- mnd::MandelViewport viewport;
- mnd::MandelGenerator* generator;
- };
- enum ViewType
- {
- MANDELBROT,
- JULIA,
- CUSTOM,
- };
- class Almond : public QMainWindow
- {
- Q_OBJECT
- private:
- mnd::MandelContext mandelContext;
- std::unique_ptr<MandelWidget> mw;
- //std::unique_ptr<BenchmarkDialog> benchmarkDialog;
- std::unique_ptr<CustomGenerator> customGeneratorDialog;
- GradientChooseDialog gcd;
- std::vector<std::unique_ptr<FractalDef>> customGenerators;
- FractalDef* currentCustom;
- mnd::AdaptiveGenerator* customGenerator;
- std::vector<std::unique_ptr<mnd::AdaptiveGenerator>> adjustedGenerators;
- ViewType currentView;
- mnd::MandelViewport mandelViewSave;
- mnd::MandelViewport customViewSave;
- mnd::AdaptiveGenerator* mandelGenerator;
- mnd::MandelGenerator* currentGenerator;
- public:
- Almond(QWidget *parent = Q_NULLPTR);
- ~Almond(void);
- void submitBackgroundTask(BackgroundTask* task);
- private slots:
- void on_zoom_out_clicked();
- void on_zoom_in_clicked();
- void on_maxIterations_editingFinished();
- void on_chooseGradient_clicked();
- void on_exportVideo_clicked();
- void on_smooth_stateChanged(int arg1);
- void on_exportImage_clicked();
- void on_resetZoom_clicked();
- void on_displayInfo_stateChanged(int arg1);
- void on_chooseGenerator_clicked();
- void backgroundTaskFinished();
- void pointSelected(mnd::Real x, mnd::Real y);
- void on_wMandel_toggled(bool checked);
- void on_groupBox_toggled(bool arg1);
- void saveView(void);
- void setViewType(ViewType v);
- void on_wMandel_clicked();
- void on_radioButton_toggled(bool checked);
- void on_radioButton_2_toggled(bool checked);
- void on_createCustom_clicked();
- private:
- Ui::AlmondClass ui;
- };
|