00001 #ifndef FRACTALEINFO_H
00002 #define FRACTALEINFO_H
00003
00004 #include <QObject>
00005 #include <QRectF>
00006 #include <QSize>
00007 #include <QVarLengthArray>
00008 #include <QImage>
00009 #include <QColor>
00010 #include <QDebug>
00011 #include <QMutex>
00012
00023 class FractalInfo : public QObject
00024 {
00025 QRectF _fractaleSize;
00026 QSize _imageSize;
00027 QVarLengthArray<unsigned int> _data;
00028 QMutex * _mutex;
00029
00030 unsigned int _max;
00031
00032 public:
00033 FractalInfo(QRectF fractaleSize, QSize imageSize, QObject *parent = 0);
00034 virtual ~FractalInfo();
00035
00036 void changeParameters(QRectF fractaleSize, QSize imageSize);
00037
00038 inline QRectF & fractaleSize() { return _fractaleSize; }
00039 inline QSize & imageSize() { return _imageSize; }
00040 inline unsigned int max() { return (_max==0)?1:_max; }
00041
00042 unsigned int pixel(int x, int y);
00043 void setPixel(int x, int y, unsigned int value);
00044 void incrPixel(int x, int y);
00045 void incrPixel(int x, int y, unsigned int value);
00046
00047 void clear();
00048
00049 private:
00050 inline int index(int x, int y) { return x*_imageSize.height() + y; }
00051 };
00052
00053 #endif // FRACTALEINFO_H