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) ;

      }
Example #4
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);

}