diff options
Diffstat (limited to 'demos/mandelbrot/mandelbrot.h')
-rw-r--r-- | demos/mandelbrot/mandelbrot.h | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/demos/mandelbrot/mandelbrot.h b/demos/mandelbrot/mandelbrot.h index de09a1ffb..ea2ee6084 100644 --- a/demos/mandelbrot/mandelbrot.h +++ b/demos/mandelbrot/mandelbrot.h @@ -5,43 +5,31 @@ #include <QtGui/QApplication> #include <QtGui/QWidget> -#ifdef REAL -typedef REAL real; -#else -typedef float real; -#endif - -enum { packetSize = Eigen::ei_packet_traits<real>::size }; // number of reals in a packet -typedef Eigen::Matrix<real, packetSize, 1> packet; // wrap a packet as a vector -typedef Eigen::Matrix<real, 2, 1> vector2; // really just a complex number, but we're here to demo Eigen ! - -const int iter = 32; // the maximum number of iterations done per pixel. Must be a multiple of 4. - class MandelbrotWidget : public QWidget { Q_OBJECT - vector2 center; - real xradius; + Eigen::Vector2f center; + float xradius; int size; unsigned char *buffer; QPoint lastpos; + int draft; protected: void resizeEvent(QResizeEvent *); void paintEvent(QPaintEvent *); void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); + template<typename Real> int render(int max_iter, int resx, int resy); public: - MandelbrotWidget() : QWidget(), center(real(0),real(0)), xradius(2), - size(0), buffer(0) + MandelbrotWidget() : QWidget(), center(0,0), xradius(2), + size(0), buffer(0), draft(16) { setAutoFillBackground(false); - setWindowTitle(QString("Mandelbrot/Eigen, sizeof(real)=")+QString::number(sizeof(real)) - +", sizeof(packet)="+QString::number(sizeof(packet))); } ~MandelbrotWidget() { if(buffer) delete[]buffer; } }; -#endif // MANDELBROT_H
\ No newline at end of file +#endif // MANDELBROT_H |