• Main Page
  • Classes
  • Files
  • File List

Engine/GraphicDefinitions.h

00001 /*
00002  * GraphicDefinitions.h
00003  *
00004  *  Created on: 25-11-2010
00005  *      Author: marcin
00006  */
00007 
00008 #ifndef GRAPHICDEFINITIONS_H_
00009 #define GRAPHICDEFINITIONS_H_
00010 
00011 #include "../Common/Constants.h"
00012 
00013 #include <GL/gl.h>
00014 #include <GL/glut.h>
00015 
00016 enum Graphic
00017 {
00018         SNOOK3D_BALL = 1,
00019         SNOOK3D_BALL_SHADOW,
00020         SNOOK3D_TABLE,
00021         SNOOK3D_TABLE_FRAME,
00022         SNOOK3D_FLOOR,
00023         SNOOK3D_WALL
00024 };
00025 
00026 inline void loadGraphicDefinitions()
00027 {
00028                 glNewList (SNOOK3D_BALL, GL_COMPILE);
00029                         glutSolidSphere(BALLRADIUS,20,20);
00030                 glEndList ();
00031 
00032                 glNewList (SNOOK3D_BALL_SHADOW, GL_COMPILE);
00033                         glDisable(GL_LIGHTING);
00034                         glColor3f(0.05,0.05,0.05);
00035                         glutSolidSphere(BALLRADIUS,20,20);
00036                 glEndList ();
00037 
00038 
00039 
00040                 glNewList(SNOOK3D_TABLE_FRAME,GL_COMPILE);
00041                         glBegin(GL_QUADS);
00042                                 glNormal3f(0.0,1.0,0.0);
00043                                 glTexCoord2f(0.0f, 0.0f); glVertex3f(0.0f, CUSHIONHEIGHT,  TABLELENGTH/2);
00044                                 glTexCoord2f(1.0f, 0.0f); glVertex3f(TABLEWIDTH/2, CUSHIONHEIGHT,  TABLELENGTH/2);
00045                                 glTexCoord2f(1.0f, 1.0f); glVertex3f(TABLEWIDTH/2, CUSHIONHEIGHT, TABLELENGTH/2+CUSHIONSIZE);
00046                                 glTexCoord2f(0.0f, 1.0f); glVertex3f(0.0f, CUSHIONHEIGHT,  TABLELENGTH/2+CUSHIONSIZE);
00047 
00048                                 glNormal3f(0.0,1.0,0.0);
00049                                 glTexCoord2f(0.0f, 0.0f); glVertex3f(TABLEWIDTH/2, CUSHIONHEIGHT,  0.0);
00050                                 glTexCoord2f(1.0f, 0.0f); glVertex3f(TABLEWIDTH/2, CUSHIONHEIGHT,  TABLELENGTH/2+CUSHIONSIZE);
00051                                 glTexCoord2f(1.0f, 1.0f); glVertex3f(TABLEWIDTH/2+CUSHIONSIZE, CUSHIONHEIGHT, TABLELENGTH/2+CUSHIONSIZE);
00052                                 glTexCoord2f(0.0f, 1.0f); glVertex3f(TABLEWIDTH/2+CUSHIONSIZE, CUSHIONHEIGHT,  0);
00053 
00054                                 glNormal3f(1.0,0.0,0.0);
00055                                 glTexCoord2f(0.0f, 0.0f);glVertex3f(TABLEWIDTH/2+CUSHIONSIZE, -0.3, 0.0);
00056                                 glTexCoord2f(1.0f, 0.0f);glVertex3f(TABLEWIDTH/2+CUSHIONSIZE, CUSHIONHEIGHT,  0.0);
00057                                 glTexCoord2f(1.0f, 1.0f);glVertex3f(TABLEWIDTH/2+CUSHIONSIZE, CUSHIONHEIGHT, TABLELENGTH/2+CUSHIONSIZE);
00058                                 glTexCoord2f(0.0f, 1.0f);glVertex3f(TABLEWIDTH/2+CUSHIONSIZE, -0.3,  TABLELENGTH/2+CUSHIONSIZE);
00059 
00060                                 glNormal3f(0.0,0.0,1.0);
00061                                 glVertex3f(0.0f, -0.3, TABLELENGTH/2+CUSHIONSIZE);
00062                                 glVertex3f(0.0f, CUSHIONHEIGHT,  TABLELENGTH/2+CUSHIONSIZE);
00063                                 glVertex3f(TABLEWIDTH/2+CUSHIONSIZE, CUSHIONHEIGHT, TABLELENGTH/2+CUSHIONSIZE);
00064                                 glVertex3f(TABLEWIDTH/2+CUSHIONSIZE, -0.3f,  TABLELENGTH/2+CUSHIONSIZE);
00065                         glEnd();
00066 
00067                         glEndList();
00068 
00069                         glNewList(SNOOK3D_TABLE,GL_COMPILE);
00070 
00071                         glEnable(GL_LIGHTING);
00072                                         glBegin(GL_QUADS);
00073                                                 //surface
00074 
00075 
00076 
00077                                                 glNormal3f(0.0,1.0,0.0);
00078                                                 glTexCoord2f(0.0f, 0.0f);
00079                                                 glVertex3f(0.0f, 0.0f, 0.0f);
00080                                                 glTexCoord2f(5.0f, 0.0f);
00081                                                 glVertex3f(0.0f, 0.0f,  TABLELENGTH/2);
00082                                                 glTexCoord2f(5.0f, 5.0f);
00083                                                 glVertex3f(TABLEWIDTH/2, .0f, TABLELENGTH/2);
00084                                         glTexCoord2f(0.0f, 5.0f);
00085                                                 glVertex3f(TABLEWIDTH/2, 0.0f,  0.0f);
00086 
00087                                                 //cushions
00088                                                 glNormal3f(-1.0,0.0,0.0);
00089                                                 glVertex3f(TABLEWIDTH/2, 0.0, 0.0);
00090                                                 glVertex3f(TABLEWIDTH/2, CUSHIONHEIGHT,  0.0);
00091                                                 glVertex3f(TABLEWIDTH/2, CUSHIONHEIGHT, TABLELENGTH/2);
00092                                                 glVertex3f(TABLEWIDTH/2, 0.0,  TABLELENGTH/2);
00093 
00094                                                 glNormal3f(0.0,0.0,-1.0);
00095                                                 glVertex3f(0.0, 0.0, TABLELENGTH/2);
00096                                                 glVertex3f(0.0, CUSHIONHEIGHT, TABLELENGTH/2);
00097                                                 glVertex3f(TABLEWIDTH/2, CUSHIONHEIGHT, TABLELENGTH/2);
00098                                                 glVertex3f(TABLEWIDTH/2, 0.0,  TABLELENGTH/2);
00099 
00100                                                 glEnd();
00101                                                 glDisable(GL_LIGHTING);
00102 
00103                                                 glColor3f(1,1,1);
00104                                                 glEndList();
00105 
00106                                                 glNewList(SNOOK3D_FLOOR,GL_COMPILE);
00107 
00108                                                 glBegin(GL_QUADS);
00109                                                 glNormal3f(0.0,1.0,0.0);
00110                                                 glTexCoord2f(0.0f, 0.0f); glVertex3f(-3.0f, 0.0f, -3.0f);
00111                                                 glTexCoord2f(0.0f, 3.0f); glVertex3f(-3.0f, 0.0f,  3.0);
00112                                                 glTexCoord2f(3.0f, 3.0f); glVertex3f(3.0, .0f, 3.0);
00113                                                 glTexCoord2f(3.0f, 0.0f); glVertex3f(3.0, 0.0f, -3.0f);
00114 
00115                                                 glEnd();
00116                                                 glEndList();
00117 
00118 
00119 
00120                                                 glNewList(SNOOK3D_WALL,GL_COMPILE);
00121 
00122                                                 glBegin(GL_QUADS);
00123 
00124                                                 glNormal3f(0.0,1.0,0.0);
00125                                                 glTexCoord2f(0.0f, 0.0f); glVertex3f(-5.0f, 0.0f, -5.0f);
00126                                                 glTexCoord2f(0.0f, 1.0f); glVertex3f(-5.0f, 5.0f,  -5.0);
00127                                                 glTexCoord2f(1.0f, 1.0f); glVertex3f(5.0, 5.0f, -5.0);
00128                                                 glTexCoord2f(1.0f, 0.0f); glVertex3f(5.0, 0.0f, -5.0f);
00129 
00130                                                 glEnd();
00131                                                 glEndList();
00132 
00133 
00134 }
00135 
00136 
00137 
00138 
00139 #endif /* GRAPHICDEFINITIONS_H_ */

Generated on Sun Dec 5 2010 19:03:32 for Snook3d by  doxygen 1.7.2