+#include "Fractal.h"\r
+\r
#include <iostream>\r
#include <assert.h>\r
+using namespace std;\r
\r
-#include "Fractal.h"\r
+#include "FractalDevice.h"\r
#include "Device.h"\r
\r
-using std::cout;\r
-using std::endl;\r
-\r
-extern __global__ void fractalMandelbrot(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath, int n);\r
-extern __global__ void fractalJulia(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath, int n, float c_r, float c_i);\r
-\r
-Fractal::Fractal(int w, int h)\r
- : w(w), h(h),\r
- dg(8, 8, 1),\r
- db(16, 16, 1),\r
- title("Fractal Cuda")\r
+Fractal::Fractal(int w, int h) :\r
+ w(w), h(h),\r
+ dg(8, 8, 1),\r
+ db(16, 16, 1),\r
+ title("Fractal Cuda")\r
{\r
//print(dg, db);\r
Device::assertDim(dg, db);\r
\r
/////\r
\r
-FractalMandelbrot::FractalMandelbrot(int w, int h, float dn)\r
- : Fractal(w, h), variateurAnimationN(IntervalF(30, 100), dn)\r
+FractalMandelbrot::FractalMandelbrot(int w, int h, int dn) :\r
+ Fractal(w, h),\r
+ variateurAnimationN(IntervalI(10, 100), dn),\r
+ n(0)\r
{\r
this->ptrDomaineMathInit = new DomaineMath(-2, -1.3, 0.8, 1.3);\r
}\r
this->n = this->variateurAnimationN.varierAndGet();\r
}\r
\r
-float FractalMandelbrot::getT()\r
+vector<string> FractalMandelbrot::getNames()\r
{\r
- return this->n;\r
+ vector<string> name;\r
+ name.push_back("n = ");\r
+ return name;\r
+ }\r
+\r
+void FractalMandelbrot::getValues(float* values)\r
+ {\r
+ values[0] = float(this->n);\r
}\r
\r
void FractalMandelbrot::runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath)\r
\r
/////\r
\r
-FractalJulia::FractalJulia(int w, int h, float dn, float z_r_min, float z_r_max, float z_i_min, float z_i_max)\r
- : Fractal(w, h), z_r(z_r_min), z_i(z_i_min), variateurAnimationR(IntervalF(-0.8, -0.7), 0.0005), variateurAnimationI(IntervalF(-0.3, 0.3/*0.15*/), 0.0004)\r
+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
+ Fractal(w, h),\r
+ n(n),\r
+ z_r(z_r_min),\r
+ z_i(z_i_min),\r
+ variateurAnimationR(IntervalF(-0.8, -0.7), 0.0005),\r
+ variateurAnimationI(IntervalF(-0.3, 0.3), 0.0004)\r
{\r
this->ptrDomaineMathInit = new DomaineMath(-1.7, -1.4, 1.7, 1.4);\r
}\r
this->z_i = this->variateurAnimationI.varierAndGet();\r
}\r
\r
-float FractalJulia::getT()\r
+vector<string> FractalJulia::getNames()\r
+ {\r
+ vector<string> name;\r
+ name.push_back("z_r = ");\r
+ name.push_back("z_i = ");\r
+ return name;\r
+ }\r
+\r
+void FractalJulia::getValues(float* values)\r
{\r
- return this->z_r;\r
+ values[0] = this->z_r;\r
+ values[1] = this->z_i;\r
}\r
\r
void FractalJulia::runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath)\r
{\r
- fractalJulia<<<dg,db>>>(ptrDevPixels, this->w, this->h, domaineMath, 300, this->z_r, this->z_i);\r
+ fractalJulia<<<dg,db>>>(ptrDevPixels, this->w, this->h, domaineMath, this->n, this->z_r, this->z_i);\r
}\r
\r