+#ifndef VAGUE_MATH_H_\r
+#define VAGUE_MATH_H_\r
+\r
+#include "MathTools.h"\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Declaration *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+class VagueMath\r
+ {\r
+\r
+ /*--------------------------------------*\\r
+ |* Constructor *|\r
+ \*-------------------------------------*/\r
+\r
+ public:\r
+\r
+ __device__ VagueMath(int w, int h)\r
+ {\r
+ this->factor = 4 * PI / (float) w;\r
+ }\r
+\r
+ __device__ VagueMath(const VagueMath& 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
+ double factor;\r
+\r
+ };\r
+\r
+#endif \r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* End *|\r
+ \*---------------------------------------------------------------------*/\r