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