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:
IconDrawer.cpp:
Jedoch sehe ich nur 2 Icons, obwohl in der Liste viel mehr stehen. Woran liegt es?
gruß
Alex
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