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