void TestFonctionAssociationValeurObjet::testVider() { Base::Composition<ClasseObjet> objet(new ClasseObjet()) ; FonctionAssociationValeurObjet<int,ClasseObjet> fonction ; fonction.Ajouter(3,objet) ; fonction.Vider() ; CPPUNIT_ASSERT(!fonction.Acces(3)) ; }
void TestFonctionCompositionValeurObjet::testAjouter() { Base::Composition<ClasseObjet> objet(new ClasseObjet()) ; Base::Association<ClasseObjet> associationObjet(objet) ; FonctionCompositionValeurObjet<int,ClasseObjet> fonction ; fonction.Ajouter(3,objet.Liberer()) ; CPPUNIT_ASSERT(fonction[3] == associationObjet) ; }
void TestFonctionCompositionValeurObjet::testVider() { Base::Composition<ClasseObjet> objet(new ClasseObjet()) ; Base::Association<ClasseObjet> associationObjet(objet) ; FonctionCompositionValeurObjet<int,ClasseObjet> fonction ; CPPUNIT_ASSERT(ClasseObjet::nombre_instances == 1) ; fonction.Ajouter(3,objet.Liberer()) ; fonction.Vider() ; CPPUNIT_ASSERT(!fonction[3]) ; CPPUNIT_ASSERT(ClasseObjet::nombre_instances == 0) ; }
void SceneOpenGL::ajouteObjet(float data[], int nombreSommets, int nbEtageActive, int *nbDonneeEtage, int taille) { GLuint vao; GLuint buff; float vertices[taille]; for(int i = 0; i < taille; i++) vertices[i] = data[i]; Objet objet(vertices, nombreSommets, nbEtageActive, nbDonneeEtage, taille); glGenVertexArrays(1, &vao); glGenBuffers(1, &buff); glBindVertexArray(vao); glBindBuffer(GL_ARRAY_BUFFER, buff); glBufferData(GL_ARRAY_BUFFER, sizeof vertices, vertices, GL_STATIC_DRAW); int size = 0; for(int i = 0; i< nbEtageActive; i++) { glEnableVertexAttribArray(i); if(i==0) glVertexAttribPointer(i, nbDonneeEtage[i], GL_FLOAT, GL_FALSE, 0, 0); else { size += nombreSommets * nbDonneeEtage[i-1]; glVertexAttribPointer(i, nbDonneeEtage[i], GL_FLOAT, GL_FALSE, 0, (const void *)(size * sizeof *vertices)); } } glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0); objet.m_vao = vao; m_objet.push_back(objet); }