- void Karussell::SolidCube(GLfloat length)
 - {
 - float matrix[16];
 - float vec[4];
 - float* erg;
 - glGetFloatv(GL_MODELVIEW_MATRIX,matrix);
 - if (!MatrixInvert(matrix))
 - {
 - cerr << "!!Singuläre Modelviewmatrix gefunden!!";
 - return;
 - }
 - transposedMatrix(matrix);
 - GLfloat e = length / 2;
 - glBegin(GL_QUADS);
 - //Oben
 - vec[0]=0;vec[1]=1;vec[2]=0;vec[3]=1;
 - erg = MatVecProduct(matrix,vec);
 - glNormal3fv(erg);
 - delete[] erg;
 - glVertex3f(-e, e,-e);
 - glVertex3f(-e, e, e);
 - glVertex3f( e, e, e);
 - glVertex3f( e, e,-e);
 - //Unten
 - vec[0]=0;vec[1]=-1;vec[2]=0;vec[3]=1;
 - erg = MatVecProduct(matrix,vec);
 - glNormal3fv(erg);
 - delete[] erg;
 - glVertex3f(-e,-e,-e);
 - glVertex3f( e,-e,-e);
 - glVertex3f( e,-e, e);
 - glVertex3f(-e,-e, e);
 - //links
 - vec[0]=-1;vec[1]=0;vec[2]=0;vec[3]=1;
 - erg = MatVecProduct(matrix,vec);
 - glNormal3fv(erg);
 - delete[] erg;
 - glVertex3f(-e, e,-e);
 - glVertex3f(-e,-e,-e);
 - glVertex3f(-e,-e, e);
 - glVertex3f(-e, e, e);
 - //rechts
 - vec[0]=1;vec[1]=0;vec[2]=0;vec[3]=1;
 - erg = MatVecProduct(matrix,vec);
 - glNormal3fv(erg);
 - delete[] erg;
 - glVertex3f( e,-e,-e);
 - glVertex3f( e, e,-e);
 - glVertex3f( e, e, e);
 - glVertex3f( e,-e, e);
 - //vorn
 - vec[0]=0;vec[1]=0;vec[2]=1;vec[3]=1;
 - erg = MatVecProduct(matrix,vec);
 - glNormal3fv(erg);
 - delete[] erg;
 - glVertex3f(-e,-e, e);
 - glVertex3f( e,-e, e);
 - glVertex3f( e, e, e);
 - glVertex3f(-e, e, e);
 - //hinten
 - vec[0]=0;vec[1]=0;vec[2]=-1;vec[3]=1;
 - erg = MatVecProduct(matrix,vec);
 - glNormal3fv(erg);
 - delete[] erg;
 - glVertex3f(-e,-e,-e);
 - glVertex3f(-e, e,-e);
 - glVertex3f( e, e,-e);
 - glVertex3f( e,-e,-e);
 - glEnd();
 - };
 
