+#include <iostream>\r
+#include <assert.h>\r
+\r
+#include "Fractal.h"\r
+#include "Device.h"\r
+\r
+using std::cout;\r
+using std::endl;\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Declaration *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Imported *|\r
+ \*-------------------------------------*/\r
+\r
+extern __global__ void fractal(uchar4* ptrDevPixels, int w, int h, DomaineMath domaineMath, int n, float t);\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Private *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Implementation *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+/*-------------------------*\\r
+ |* Constructeur *|\r
+ \*-------------------------*/\r
+\r
+Fractal::Fractal(int w, int h, float dt, int n)\r
+ : w(w), h(h), n(n),\r
+ dg(8, 8, 1),\r
+ db(16, 16, 1),\r
+ t(0),\r
+ variateurAnimation(IntervalF(0, 2 * PI), dt),\r
+ ptrDomaineMathInit(new DomaineMath(-2, -1.3, 0.8, 1.3)),\r
+ title("Fractal Cuda")\r
+ {\r
+ assert(w == h);\r
+\r
+ //print(dg, db);\r
+ Device::assertDim(dg, db);\r
+ }\r
+\r
+Fractal::~Fractal()\r
+ {\r
+ delete this->ptrDomaineMathInit;\r
+ }\r
+\r
+/*-------------------------*\\r
+ |* Methode *|\r
+ \*-------------------------*/\r
+\r
+/**\r
+ * Override\r
+ */\r
+void Fractal::runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath)\r
+ {\r
+ fractal<<<dg,db>>>(ptrDevPixels, this->w, this->h, domaineMath, this->n, this->t);\r
+ }\r
+\r
+/**\r
+ * Override\r
+ */\r
+void Fractal::animationStep()\r
+ {\r
+ this->t = this->variateurAnimation.varierAndGet();\r
+ }\r
+\r
+/*--------------*\\r
+ |* get *|\r
+ \*--------------*/\r
+\r
+\r
+/**\r
+ * Override\r
+ */\r
+int Fractal::getW()\r
+ {\r
+ return this->w;\r
+ }\r
+\r
+/**\r
+ * Override\r
+ */\r
+int Fractal::getH()\r
+ {\r
+ return this->h;\r
+ }\r
+\r
+DomaineMath* Fractal::getDomaineMathInit()\r
+ {\r
+ return this->ptrDomaineMathInit;\r
+ }\r
+\r
+/**\r
+ * Override\r
+ */\r
+float Fractal::getT()\r
+ {\r
+ return this->t;\r
+ }\r
+\r
+/**\r
+ * Override\r
+ */\r
+string Fractal::getTitle()\r
+ {\r
+ return this->title;\r
+ }\r
+\r
+/*--------------------------------------*\\r
+ |* Private *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* End *|\r
+ \*---------------------------------------------------------------------*/\r
+\r