000
11.06.2008, 20:13 Uhr
~Alex__
Gast
|
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;
float n = -2.5f;
for(int i=0; i<myVec.size();i++) { glTranslatef(n ,0.0f, 0.0f); myVec.at(i)->draw(); n += 0.1f; }
|
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 |