00001 00042 #ifndef AIZONE_HPP 00043 #define AIZONE_HPP 00044 00045 #include <QtGui> 00046 00047 namespace AiGenerator 00048 { 00055 class AiZone : public QObject 00056 { 00057 Q_OBJECT 00058 00059 public: 00060 00065 AiZone( const AiZone & zone ); 00066 00083 AiZone( QObject * parent = 0 , 00084 double x = .0 , double y = .0 , 00085 double zoneWidth = .0 , double zoneHeight = .0 , 00086 int imageWidth = 0 , int imageHeight = 0 , 00087 int starPoint = 0,int increment = 0 , int iteration = 0, 00088 double zoom = 1. , double viewx = 0. , double viewy = 0.); 00089 00094 QImage & image(); 00095 00099 volatile bool status; 00100 00105 void serialize( QDataStream & stream ); 00106 00111 void deserialize( QDataStream & stream ); 00112 00117 AiZone & operator = ( const AiZone &rhs ); 00118 00119 public slots: 00124 double getX(); 00125 00130 double getY(); 00131 00136 double getZoneWidth(); 00137 00142 double getZoneHeight(); 00143 00148 int getImageWidth(); 00149 00154 int getImageHeight(); 00155 00160 int getStartPoint(); 00161 00166 int getIncrement(); 00167 00172 int getIteration(); 00173 00180 unsigned int getPixel(int x, int y); 00181 00188 void setPixel(int x, int y, unsigned int rgb); 00189 00198 void setPixel(int x, int y, int red, int green, int blue); 00199 00205 void setPixels( int line ,QList< int > pix ); 00206 00211 bool cancel(); 00212 00217 void progress(int val); 00218 00223 double getZoom(); 00224 00229 double getViewX(); 00230 00235 double getViewY(); 00236 00243 bool valid(int x, int y); 00244 00248 void sendSnapshot(); 00249 00253 void beep(); 00254 00259 void initRandom(unsigned long long j = 0); 00260 00265 unsigned long long generateUInt64(); 00266 00271 double generateDouble(); 00272 00277 unsigned int generateUInt32(); 00278 00283 int getLastX() const; 00284 00289 int getLastY() const; 00290 00295 int getLastIteration() const; 00296 00303 void setLastXYI(int x, int y, int i); 00304 00305 signals: 00310 void progressStatus(int val); 00311 00316 void snapshot(AiGenerator::AiZone * zone); 00317 00318 private: 00322 double m_x; 00323 00327 double m_y; 00328 00332 double m_zoneWidth; 00333 00337 double m_zoneHeight; 00338 00342 int m_imageWidth; 00343 00347 int m_imageHeight; 00348 00352 int m_startPoint; 00353 00357 int m_increment; 00358 00362 int m_iteration; 00363 00367 double m_zoom; 00368 00372 double m_viewX; 00373 00377 double m_viewY; 00378 00382 QImage m_image; 00383 00387 unsigned long long m_u, m_v, m_w; 00388 00392 int m_last_x; 00393 00397 int m_last_y; 00398 00402 int m_last_iteration; 00403 }; 00404 } 00405 00410 Q_DECLARE_METATYPE( AiGenerator::AiZone ) 00411 00412 #endif // AIZONE_HPP