00001 #ifndef __GENERATEUR_HPP__
00002 #define __GENERATEUR_HPP__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "Image.hpp"
00027 #include "GPointInitialisation.hpp"
00028 #include "GFractale.hpp"
00029 #include "GAccumulateur.hpp"
00037 namespace Fractale
00038 {
00048
00049 Image<unsigned int> Generateur
00050 (
00051 GPointInitialisation* initFCT,
00052 GFractale* fractaleFCT,
00053 GAccumulateur* accumulateurFCT,
00054 Zone zoneImage
00055 );
00056
00057
00067 template<typename T>
00068 Image<unsigned int> TracerCourbe
00069 (
00070 T t,
00071 unsigned int nbLoop,
00072 point z,
00073 Zone zoneImage
00074 )
00075 {
00076 GFractale &fractale(t);
00077 AccumulerSurLaSequence accumulateur;
00078
00079 accumulateur.m_zone = zoneImage;
00080
00081
00082
00083 Image<unsigned int> resultat(zoneImage.imgH,zoneImage.imgL);
00084 for(unsigned int i =0; i <nbLoop;++i)
00085 {
00086 #ifdef _CALLBACK_QT
00087 int pourcentage = (100* i) / nbLoop;
00088
00089
00090 retourPourcentage(pourcentage);
00091 #endif
00092
00093 const std::vector<point> & sequence = fractale.genererSequence(z);
00094 accumulateur.accumuler(resultat,z,sequence);
00095 z = fractale.suivant(*sequence.rbegin());
00096 }
00097 return resultat;
00098
00099 }
00100 }
00101
00102 #endif