void DrawCuboid( const float in_x, const float in_y, const float in_z )
{
// 各頂点
float vertex[8][3] = {
{ -in_x/2.0, -in_y/2.0, -in_z/2.0 },
{ in_x/2.0, -in_y/2.0, -in_z/2.0 },
{ in_x/2.0, in_y/2.0, -in_z/2.0 },
{ -in_x/2.0, in_y/2.0, -in_z/2.0 },
{ -in_x/2.0, -in_y/2.0, in_z/2.0 },
{ in_x/2.0, -in_y/2.0, in_z/2.0 },
{ in_x/2.0, in_y/2.0, in_z/2.0 },
{ -in_x/2.0, in_y/2.0, in_z/2.0 }
};
// 面(反時計回り・左下から)
int face[6][4] = {
{ 1, 0, 3, 2 },
{ 5, 1, 2, 6 },
{ 4, 5, 6, 7 },
{ 0, 4, 7, 3 },
{ 7, 6, 2, 3 },
{ 0, 1, 5, 4 }
};
// 法線
float normal[6][3] = {
{ 0.0, 0.0, -1.0 },
{ 1.0, 0.0, 0.0 },
{ 0.0, 0.0, 1.0 },
{ -1.0, 0.0, 0.0 },
{ 0.0, 1.0, 0.0 },
{ 0.0, -1.0, 0.0 }
};
// 描画
glBegin(GL_QUADS);
for( int i=0; i<6; i++ ){
glNormal3fv( normal[i] );
glTexCoord2d( 0.0, 0.0 ); glVertex3fv( vertex[ face[i][0] ] );
glTexCoord2d( 1.0, 0.0 ); glVertex3fv( vertex[ face[i][1] ] );
glTexCoord2d( 1.0, 1.0 ); glVertex3fv( vertex[ face[i][2] ] );
glTexCoord2d( 0.0, 1.0 ); glVertex3fv( vertex[ face[i][3] ] );
}
glEnd();
}
コメントをかく