01] procedure TTree.Draw;
[02] begin
[03] glEnable(GL_BLEND);
[04] glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
[05] glEnable(GL_ALPHA_TEST);
[06] glAlphaFunc(GL_GREATER, 0.1);
[07] Texture[1].Bind;
[08] glPushMatrix;
[09] glTranslatef(Position.x, Position.y, Position.z);
[10] glRotatef(Rotation, 0, 1, 0);
[11] glBegin(GL_QUADS);
[12] glTexCoord2f(0, 0); glVertex3f(-0.5*Size, 0, 0);
[13] glTexCoord2f(0, 1); glVertex3f(-0.5*Size, 1*Size, 0);
[14] glTexCoord2f(1, 1); glVertex3f( 0.5*Size, 1*Size, 0);
[15] glTexCoord2f(1, 0); glVertex3f( 0.5*Size, 0, 0);
[16] glEnd;
[17] glBegin(GL_QUADS);
[18] glTexCoord2f(0, 0); glVertex3f(0, 0, -0.5*Size);
[19] glTexCoord2f(0, 1); glVertex3f(0, 1*Size, -0.5*Size);
[20] glTexCoord2f(1, 1); glVertex3f(0, 1*Size, 0.5*Size);
[21] glTexCoord2f(1, 0); glVertex3f(0, 0, 0.5*Size);
[22] glEnd;
[23] glPopMatrix;
[24] glPushMatrix;
[25] glTranslatef(Position.x, Position.y, Position.z);
[26] glRotatef(90, 0, 0, 1);
[27] glColor4f(0,0,0,0.5);
[28] glBegin(GL_QUADS);
[29] glTexCoord2f(0, 0); glVertex3f(0.01, 0, -0.5*Size);
[30] glTexCoord2f(0, 1); glVertex3f(0.01, 1.5*Size, -0.5*Size);
[31] glTexCoord2f(1, 1); glVertex3f(0.01, 1.5*Size, 0.5*Size);
[32] glTexCoord2f(1, 0); glVertex3f(0.01, 0., 0.5*Size);
[33] glEnd;
[34] glColor4f(1,1,1,1);
[35] glPopMatrix;
[36] glDisable(GL_ALPHA_TEST);
[37] glDisable(GL_BLEND);
[38] end;
|