7 #include "FractalDevice.h"
\r
10 Fractal::Fractal(int w, int h) :
\r
14 title("Fractal Cuda")
\r
17 Device::assertDim(dg, db);
\r
22 delete this->ptrDomaineMathInit;
\r
41 DomaineMath* Fractal::getDomaineMathInit()
\r
43 return this->ptrDomaineMathInit;
\r
49 string Fractal::getTitle()
\r
56 FractalMandelbrot::FractalMandelbrot(int w, int h, int dn) :
\r
58 variateurAnimationN(IntervalI(10, 100), dn),
\r
61 this->ptrDomaineMathInit = new DomaineMath(-2, -1.3, 0.8, 1.3);
\r
64 void FractalMandelbrot::animationStep()
\r
66 this->n = this->variateurAnimationN.varierAndGet();
\r
69 vector<string> FractalMandelbrot::getNames()
\r
71 vector<string> name;
\r
72 name.push_back("n = ");
\r
76 void FractalMandelbrot::getValues(float* values)
\r
78 values[0] = float(this->n);
\r
81 void FractalMandelbrot::runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath)
\r
83 fractalMandelbrot<<<dg,db>>>(ptrDevPixels, this->w, this->h, domaineMath, static_cast<int>(this->n));
\r
88 FractalJulia::FractalJulia(int w, int h, int n, float z_r_min, float z_r_max, float z_i_min, float z_i_max) :
\r
93 variateurAnimationR(IntervalF(-0.8, -0.7), 0.0005),
\r
94 variateurAnimationI(IntervalF(-0.3, 0.3), 0.0004)
\r
96 this->ptrDomaineMathInit = new DomaineMath(-1.7, -1.4, 1.7, 1.4);
\r
99 void FractalJulia::animationStep()
\r
101 this->z_r = this->variateurAnimationR.varierAndGet();
\r
102 this->z_i = this->variateurAnimationI.varierAndGet();
\r
105 vector<string> FractalJulia::getNames()
\r
107 vector<string> name;
\r
108 name.push_back("z_r = ");
\r
109 name.push_back("z_i = ");
\r
113 void FractalJulia::getValues(float* values)
\r
115 values[0] = this->z_r;
\r
116 values[1] = this->z_i;
\r
119 void FractalJulia::runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath)
\r
121 fractalJulia<<<dg,db>>>(ptrDevPixels, this->w, this->h, domaineMath, this->n, this->z_r, this->z_i);
\r