+#ifndef VAGUE_0_MATH_\r
+#define VAGUE_0_MATH_\r
+\r
+#include "MathTools.h"\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Declaration *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+class Vague0Math\r
+ {\r
+\r
+ /*--------------------------------------*\\r
+ |* Constructor *|\r
+ \*-------------------------------------*/\r
+\r
+ public:\r
+\r
+ __device__ Vague0Math(int w, int h)\r
+ {\r
+ this->factor = 4 * PI / (float) w;\r
+ }\r
+\r
+ __device__ Vague0Math(const Vague0Math& source)\r
+ {\r
+ // rien\r
+ }\r
+\r
+ /*--------------------------------------*\\r
+ |* Methodes *|\r
+ \*-------------------------------------*/\r
+\r
+ public:\r
+\r
+ /**\r
+ * x=pixelI\r
+ * y=pixelJ\r
+ */\r
+ __device__\r
+ void colorIJ(uchar4* ptrColor, int i, int j, float t)\r
+ {\r
+ unsigned char levelGris;\r
+\r
+ f(levelGris,i, j, t); // update levelGris\r
+\r
+ ptrColor->x = levelGris;\r
+ ptrColor->y = levelGris;\r
+ ptrColor->z = levelGris;\r
+\r
+ ptrColor->w = 255; // opaque\r
+ }\r
+\r
+ private:\r
+\r
+ __device__\r
+ void f(unsigned char& levelGris,int i, int j, float t)\r
+ {\r
+ // Example1\r
+ //unsigned char levelGris= 255 * abs(sin(t)); // same color for all the image (Hello image)\r
+\r
+ // Example2\r
+ levelGris = 255 * fabs(sin(i * factor + t));\r
+ }\r
+\r
+ /*--------------------------------------*\\r
+ |* Attributs *|\r
+ \*-------------------------------------*/\r
+\r
+ private:\r
+\r
+ float factor;\r
+\r
+ };\r
+\r
+#endif \r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* End *|\r
+ \*---------------------------------------------------------------------*/\r