Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / Tuto_Image / src / cpp / core / 01_Vague / c_math / VagueMath.h
diff --git a/WCudaMSE/Tuto_Image/src/cpp/core/01_Vague/c_math/VagueMath.h b/WCudaMSE/Tuto_Image/src/cpp/core/01_Vague/c_math/VagueMath.h
new file mode 100755 (executable)
index 0000000..aabd5dd
--- /dev/null
@@ -0,0 +1,89 @@
+#ifndef VAGUE_MATH_H_\r
+#define VAGUE_MATH_H_\r
+\r
+#include "cudaType.h"\r
+#include "MathTools.h"\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Declaration                                     *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Public                  *|\r
+ \*-------------------------------------*/\r
+\r
+/**\r
+ * Dans un header only pour preparer la version cuda\r
+ */\r
+class VagueMath\r
+    {\r
+\r
+       /*--------------------------------------*\\r
+        |*             Constructeur            *|\r
+        \*-------------------------------------*/\r
+\r
+    public:\r
+\r
+       VagueMath(unsigned int w, unsigned int h)\r
+           {\r
+           this->factor = 4 * PI / (float) w;\r
+           }\r
+\r
+       virtual ~VagueMath(void)\r
+           {\r
+           //rien\r
+           }\r
+\r
+       /*--------------------------------------*\\r
+        |*             Methode                 *|\r
+        \*-------------------------------------*/\r
+\r
+    public:\r
+\r
+       /**\r
+        * i in [0,h[\r
+        * j in [0,w[\r
+        * code commun �\r
+        *      entrelacementOMP\r
+        *      forAutoOMP\r
+        */\r
+       void colorIJ(uchar4* ptrColorIJ, int i, int j, int t)\r
+           {\r
+           unsigned char levelGris;\r
+\r
+           f(levelGris,i, j, t); // update levelGris\r
+\r
+           ptrColorIJ->x = levelGris;\r
+           ptrColorIJ->y = levelGris;\r
+           ptrColorIJ->z = levelGris;\r
+\r
+           ptrColorIJ->w = 255; // opaque\r
+           }\r
+\r
+    private:\r
+\r
+       void f( unsigned char& levelGris,int i, int j, float t)\r
+           {\r
+           // example1\r
+           // levelGris = 255 * fabs(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
+       |*              Attribut                *|\r
+        \*-------------------------------------*/\r
+\r
+    private:\r
+\r
+       // Inputs\r
+       float factor;\r
+\r
+    };\r
+\r
+#endif\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    End                                             *|\r
+ /*----------------------------------------------------------------------*/\r