aboutsummaryrefslogtreecommitdiffhomepage
path: root/demos/mandelbrot/mandelbrot.h
diff options
context:
space:
mode:
Diffstat (limited to 'demos/mandelbrot/mandelbrot.h')
-rw-r--r--demos/mandelbrot/mandelbrot.h26
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