eigen/demos/mandelbrot/mandelbrot.h
Benoit Jacob cacf986a7f - use double precision to store the position / zoom / other stuff
- some temporary fix to get a +50% improvement from vectorization until
  we have vectorisation for comparisons and redux
2008-06-30 07:33:08 +00:00

36 lines
812 B
C++

#ifndef MANDELBROT_H
#define MANDELBROT_H
#include <Eigen/Array>
#include <QtGui/QApplication>
#include <QtGui/QWidget>
class MandelbrotWidget : public QWidget
{
Q_OBJECT
Eigen::Vector2d center;
double 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(0,0), xradius(2),
size(0), buffer(0), draft(16)
{
setAutoFillBackground(false);
}
~MandelbrotWidget() { if(buffer) delete[]buffer; }
};
#endif // MANDELBROT_H