+#include <iostream>\r
+#include <stdlib.h>\r
+#include <string.h>\r
+\r
+#include "GLUTImageViewers_GPU.h"\r
+\r
+\r
+#include "Device.h"\r
+#include "cudaTools.h"\r
+\r
+#include "Vague0Provider.h"\r
+#include "VagueProvider.h"\r
+#include "DamierProvider.h"\r
+#include "EventProvider.h"\r
+#include "MyDisplayableProvider.h"\r
+#include "MyGLUTWindow.h"\r
+\r
+using std::cout;\r
+using std::endl;\r
+using std::string;\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Declaration *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Imported *|\r
+ \*-------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+int mainGL(void);\r
+\r
+/*--------------------------------------*\\r
+ |* Private *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* Implementation *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |* Public *|\r
+ \*-------------------------------------*/\r
+\r
+int mainGL(void)\r
+ {\r
+ Vague0Image* ptrVague0=Vague0Provider::createGL(); //bad technique\r
+\r
+ Image* ptrVague=VagueProvider::createGL();\r
+ ImageFonctionel* ptrDamier=DamierProvider::createGL();\r
+ ImageFonctionel* ptrEvent=EventProvider::createGL();\r
+ Displayable_A* ptrMyDisplayable=MyDisplayableProvider::createGL();\r
+\r
+ bool isAnimation = true;\r
+ bool isSelection = true;\r
+\r
+ // ImageViewer\r
+ GLUTImageViewers vague0Viewer(ptrVague0, isAnimation, false, 0, 0);\r
+ GLUTImageViewers vagueViewer(ptrVague, isAnimation, false, 25,25);\r
+ GLUTImageViewers damierlViewer(ptrDamier, isAnimation, isSelection, 50, 50);\r
+ GLUTImageViewers eventViewer(ptrEvent, isAnimation, isSelection, 75, 75);\r
+ // Insert here other ImageViewer ...\r
+\r
+ // OpenGLViewer\r
+ MyGLUTWindow myGlutWindow(ptrMyDisplayable,"Triangle OpenGL, Custom Displayable",600,600,100,100);// scene OpenGL // (w,h,px,py)\r
+\r
+ GLUTImageViewers::runALL(); // Bloquant, Tant qu'une fenetre est ouverte\r
+\r
+ // destruction\r
+ {\r
+ delete ptrVague0;\r
+ delete ptrVague;\r
+ delete ptrDamier;\r
+ delete ptrEvent;\r
+ delete ptrMyDisplayable;\r
+\r
+ ptrVague0 = NULL;\r
+ ptrVague=NULL;\r
+ ptrDamier = NULL;\r
+ ptrEvent = NULL;\r
+ ptrMyDisplayable = NULL;\r
+ }\r
+\r
+ return EXIT_SUCCESS;\r
+ }\r
+\r
+/*--------------------------------------*\\r
+ |* Private *|\r
+ \*-------------------------------------*/\r
+\r
+\r
+\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |* End *|\r
+ \*---------------------------------------------------------------------*/\r
+\r