Correction de probl?me de compilation li? a RayTracing.
[GPU.git] / WCudaMSE / Student_Cuda_Image / src / cpp / core / 03_Newton / moo / host / Newton.cu
1 #include <iostream>\r
2 #include <assert.h>\r
3 #include <stdio.h>\r
4 using namespace std;\r
5 \r
6 #include "Newton.h"\r
7 #include "Device.h"\r
8 #include "NewtonDevice.h"\r
9 \r
10 Newton::Newton(int w, int h) :\r
11     variateurEpsilon(IntervalF(0.01, 1), 0.001),\r
12     w(w),\r
13     h(h),\r
14     dg(8, 8, 1),\r
15     db(32, 32, 1),\r
16     ptrDomaineMathInit(new DomaineMath(-2, -2, 2, 2)),\r
17     title("Fractal Newton")\r
18     {\r
19     Device::assertDim(dg, db);\r
20     }\r
21 \r
22 Newton::~Newton()\r
23     {\r
24     delete this->ptrDomaineMathInit;\r
25     }\r
26 \r
27 void Newton::runGPU(uchar4* ptrDevPixels, const DomaineMath& domaineMath)\r
28     {\r
29     newton<<<dg,db>>>(ptrDevPixels, this->w, this->h, domaineMath, 100, this->epsilon);\r
30 \r
31     HANDLE_ERROR(cudaDeviceSynchronize()); // Pour flusher les 'printf' (pour le DEBUG).\r
32     }\r
33 \r
34 void Newton::animationStep()\r
35     {\r
36     this->epsilon = this->variateurEpsilon.varierAndGet();\r
37     }\r
38 \r
39 int Newton::getW()\r
40     {\r
41     return this->w;\r
42     }\r
43 \r
44 int Newton::getH()\r
45     {\r
46     return this->h;\r
47     }\r
48 \r
49 DomaineMath* Newton::getDomaineMathInit()\r
50     {\r
51     return this->ptrDomaineMathInit;\r
52     }\r
53 \r
54 float Newton::getT()\r
55     {\r
56     return this->epsilon;\r
57     }\r
58 \r
59 string Newton::getTName()\r
60     {\r
61     return "epsilon : ";\r
62     }\r
63 \r
64 string Newton::getTitle()\r
65     {\r
66     return this->title;\r
67     }\r
68 \r