00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _FRACTAL_H_
00022 #define _FRACTAL_H_
00023
00024 #include "fractalparameters.h"
00025
00026 #include "palette.h"
00027
00028 #include <QtCore/QThread>
00029 #include <QtCore/QFile>
00030 #include <QtGui/QImage>
00031
00036 class Fractal : public QThread
00037 {
00038 protected:
00039 FractalParameters m_fractal_parameters;
00040 bool m_is_valid, m_stop;
00041
00042 public:
00047 Fractal( const FractalParameters& _fractal_parameters )
00048 : m_fractal_parameters( _fractal_parameters )
00049 , m_is_valid( true )
00050 , m_stop( false )
00051 {
00052 }
00053
00058 const FractalParameters& fractalParameters() const { return m_fractal_parameters; }
00063 bool isValid() const { return m_is_valid; }
00068 bool isUserStopped() const { return m_stop; }
00069
00074 virtual qreal progress() const = 0;
00078 virtual void stop()
00079 {
00080 m_stop = true;
00081 }
00082
00088 virtual QImage toImage( const Palette& _palette ) const = 0;
00089
00095 virtual int load( QFile& _file ) = 0;
00101 virtual int save( QFile& _file ) const = 0;
00102
00103 };
00104
00105 #endif //_FRACTAL_H_