OpenGL Objekte nebeneinander zeichnen

hury

Erfahrenes Mitglied
Hallo zusammen,

ich habe mehrere Objekte gezeichnet und instanziiert. Diese befinden sich im Vektor "myVec". Nun will ich diese Objekte in der display Methode zeichnen. Die sollen nebeneinander gezeichnet werden. Ich habe es so versucht:

C++:
vector<IconDrawer*> myVec;

void display ( void )   // Create The Display Function
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Clear Screen And Depth Buffer
  glLoadIdentity();									// Reset The Current Modelview Matrix
  glPushMatrix();
	
  glTranslatef(0.0f,0.0f,-5.0f);						// Move Left 1.5 Units And Into The Screen 6.0
  
  myCube.draw();								//Hauptschirm zeichnen
  glPopMatrix();  

  float n = -2.5f;

  for(int i=0; i<myVec.size();i++) {
		//cout << "Icon type: " << myVec.at(i)->getType() << endl;

		glLoadIdentity();
	    glTranslatef(1.0f ,0.0f , n);
		myVec.at(i)->draw();
		n += 0.01f;
  }

    
    									
   
  glutSwapBuffers();			// Swap The Buffers To Not Be Left With A Clear Screen
}
  }

IconDrawer.cpp:

C++:
IconDrawer::IconDrawer(char* i) {
	type = i;
}


char* IconDrawer::getType() {
	return type;
}


void IconDrawer::draw() {

	if(type == "FILE"){
		glRotatef(_rtri, 1.0f,0.0f,0.0f);				

		glColor3f(0.5f,0.5f,1.0f); // Setzt die Farbe auf Blau  
	
		glBegin(GL_QUADS); // Fange an Quadrate zu zeichnen  
			glVertex3f(-0.1f, 0.1f, -0.0f); // links und eine Einheit nach oben (oben links)  
			glVertex3f( 0.1f, 0.1f, -0.0f); // rechts und eine Einheit nach oben (oben rechts)  
			glVertex3f( 0.1f,-0.1f, -0.0f); // rechts und eine Einheit runter (unten rechts)  
			glVertex3f(-0.1f,-0.1f, -0.0f); // links und eine Einheit nach unten (unten links)  
		glEnd(); 
	}

	if(type == "DIRECTORY"){
		glRotatef(_rtri, 1.0f,0.0f,0.0f);				

		glColor3f(1.0f,0.0f,0.0f); 
	
		glBegin(GL_QUADS); // Fange an Quadrate zu zeichnen  
			glVertex3f(-0.1f, 0.1f, -0.0f); // links und eine Einheit nach oben (oben links)  
			glVertex3f( 0.1f, 0.1f, -0.0f); // rechts und eine Einheit nach oben (oben rechts)  
			glVertex3f( 0.1f,-0.1f, -0.0f); // rechts und eine Einheit runter (unten rechts)  
			glVertex3f(-0.1f,-0.1f, -0.0f); // links und eine Einheit nach unten (unten links)  
		glEnd(); 
	}

}

Jedoch sehe ich nur 2 Icons, obwohl in der Liste viel mehr stehen. Woran liegt es?

gruß
Alex
 
Zurück