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
00024 class FractalInfo : public QObject
00025 {
00026 QRectF _fractaleSize;
00027 QSize _imageSize;
00028 QVarLengthArray<unsigned int> _data;
00029 QMutex * _mutex;
00030
00031 unsigned int _max;
00032
00033 public:
00035 FractalInfo(QRectF fractaleSize, QSize imageSize, QObject *parent = 0);
00036 virtual ~FractalInfo();
00037
00038 void changeParameters(QRectF fractaleSize, QSize imageSize);
00039
00040 inline QRectF & fractaleSize() { return _fractaleSize; }
00041 inline QSize & imageSize() { return _imageSize; }
00042 inline unsigned int max() { return (_max==0)?1:_max; }
00043
00045 unsigned int pixel(int x, int y);
00047 void setPixel(int x, int y, unsigned int value);
00049 void incrPixel(int x, int y);
00051 void incrPixel(int x, int y, unsigned int value);
00052
00054 void clear();
00055
00056 private:
00057 inline int index(int x, int y) { return x*_imageSize.height() + y; }
00058 };
00059
00060 #endif // FRACTALEINFO_H