private void DrawSea() { GL.glDisable(GL.GL_LIGHTING); float dup = GlobalProperties.seaDuplicates; GL.glEnable(GL.GL_TEXTURE_2D); GL.glColor4f(1.0f, 1.0f, 1.0f, 0.3f); GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]); GL.glBegin(GL.GL_QUADS); float cor = GlobalProperties.seaSize / 2; GL.glTexCoord2f(0, 0); GL.glVertex3f(-cor, -cor, 0.0f); GL.glTexCoord2f(0, dup); GL.glVertex3f(cor, -cor, 0.0f); GL.glTexCoord2f(dup, dup); GL.glVertex3f(cor, cor, 0.0f); GL.glTexCoord2f(dup, 0); GL.glVertex3f(-cor, cor, 0.0f); GL.glEnd(); GL.glDisable(GL.GL_TEXTURE_2D); GL.glEnable(GL.GL_LIGHTING); }
void DrawOldAxes() { //for this time //Lights positioning is here!!! float [] pos = new float[4]; pos[0] = 10; pos[1] = 10; pos[2] = 10; pos[3] = 1; GL.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, pos); GL.glDisable(GL.GL_LIGHTING); //INITIAL axes GL.glEnable(GL.GL_LINE_STIPPLE); GL.glLineStipple(1, 0xFF00); // dotted GL.glBegin(GL.GL_LINES); //x RED GL.glColor3f(1.0f, 0.0f, 0.0f); GL.glVertex3f(-3.0f, 0.0f, 0.0f); GL.glVertex3f(3.0f, 0.0f, 0.0f); //y GREEN GL.glColor3f(0.0f, 1.0f, 0.0f); GL.glVertex3f(0.0f, -3.0f, 0.0f); GL.glVertex3f(0.0f, 3.0f, 0.0f); //z BLUE GL.glColor3f(0.0f, 0.0f, 1.0f); GL.glVertex3f(0.0f, 0.0f, -3.0f); GL.glVertex3f(0.0f, 0.0f, 3.0f); GL.glEnd(); GL.glDisable(GL.GL_LINE_STIPPLE); }
void DrawGrid(float gridsize) { //floor texture GL.glEnable(GL.GL_TEXTURE_2D); GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]); GL.glBegin(GL.GL_QUADS); GL.glColor3f(1f, 1f, 1f);//white clear //left side GL.glNormal3f(0.0f, 1.0f, 0.0f); GL.glTexCoord2f(0, 0); GL.glVertex3f(0, 0, 0); GL.glTexCoord2f(0, 1); GL.glVertex3f(-gridsize, 0, 0); GL.glTexCoord2f(1f, 1f); GL.glVertex3f(-gridsize, 0, -gridsize * 2); GL.glTexCoord2f(1f, 0); GL.glVertex3f(0, 0, -gridsize * 2); //right side GL.glNormal3f(0.0f, 1.0f, 0.0f); GL.glTexCoord2f(0, 0); GL.glVertex3f(0, 0, 0); GL.glTexCoord2f(0, 1); GL.glVertex3f(gridsize, 0, 0); GL.glTexCoord2f(1f, 1f); GL.glVertex3f(gridsize, 0, -gridsize * 2); GL.glTexCoord2f(1f, 0); GL.glVertex3f(0, 0, -gridsize * 2); GL.glEnd(); GL.glDisable(GL.GL_TEXTURE_2D); }
private void drawSquareSurface(float width, float height, float depth, eAxis axis) { GL.glBegin(GL.GL_QUADS); // if there is no texture bind, the glTexCoord2f do nothing switch (axis) { case eAxis.X: GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(width, 0, 0); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(width, 0, depth); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(width, height, depth); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(width, height, 0); break; case eAxis.Y: GL.glVertex3f(0, height, 0); GL.glVertex3f(0, height, depth); GL.glVertex3f(width, height, depth); GL.glVertex3f(width, height, 0); break; case eAxis.Z: GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(0, 0, depth); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(0, height, depth); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(width, height, depth); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(width, 0, depth); break; } GL.glEnd(); }
void drawFloor() { GL.glEnable(GL.GL_LIGHTING); GL.glPushMatrix(); GL.glColor3d(0, 1, 0); GL.glTranslated(0, -0.01, 0); float[] grass_ambuse = { 0.03f, 0.56f, 0.19f, 1.0f }; float[] grass_specular = { 0.0f, 0.0f, 0.0f, 1.0f }; float[] grass_shininess = { 10 }; GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_AMBIENT_AND_DIFFUSE, grass_ambuse); GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_SPECULAR, grass_specular); GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_SHININESS, grass_shininess); GL.glBegin(GL.GL_QUADS); GL.glNormal3f(0, 1, 0); GL.glVertex3f(-200, 0, -200); GL.glVertex3f(-200, 0, 200); GL.glVertex3f(200, 0, 200); GL.glVertex3f(200, 0, -200); GL.glEnd(); GL.glDisable(GL.GL_LIGHTING); GL.glPopMatrix(); }
void DrawMirror(bool screen) { GL.glTranslatef(0f, 0f, -30f); GL.glBegin(GL.GL_QUADS); //!!! for blended REFLECTION float mirrorhight = 3; float mirrorwidth = 15; if (screen) { GL.glColor4d(0.0, 0.0, 0.6, 0.4); } else { GL.glColor4d(1, 1, 1, 0); } GL.glVertex3f(0, 0, 0); GL.glVertex3f(0, 0, mirrorwidth); GL.glVertex3f(0, mirrorhight, mirrorwidth); GL.glVertex3f(0, mirrorhight, 0); GL.glEnd(); GL.glTranslatef(0f, 0f, 30f); }
protected void DrawOldAxes() { if (enableDefaultCoordSystem) { GL.glEnable(GL.GL_LINE_STIPPLE); GL.glLineStipple(1, 0xFF00); GL.glBegin(GL.GL_LINES); //X - Red GL.glColor3f(1.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(10.0f, 0.0f, 0.0f); //Y - Greed GL.glColor3f(0.0f, 1.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 10.0f, 0.0f); //Z - Blue GL.glColor3f(0.0f, 0.0f, 1.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 10.0f); GL.glEnd(); GL.glDisable(GL.GL_LINE_STIPPLE); } }
private void drawCubeAndPasteTexture(float i_Height) { GL.glBegin(GL.GL_QUADS); GL.glColor3f(1.0f, 1.0f, 1.0f); // bug fix //Back side GL.glTexCoord2f(0.25f, 0.0f); GL.glVertex3f(0.0f, 0.0f + i_Height, 0.0f); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(1.0f, 0.0f + i_Height, 0.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(1.0f, 1.0f + i_Height, 0.0f); GL.glTexCoord2f(0.25f, 1.0f); GL.glVertex3f(0.0f, 1.0f + i_Height, 0.0f); //Left side GL.glTexCoord2f(0.25f, 0.0f); GL.glVertex3f(0.0f, 0.0f + i_Height, 0.0f); GL.glTexCoord2f(0.5f, 0.0f); GL.glVertex3f(0.0f, 0.0f + i_Height, 1.0f); GL.glTexCoord2f(0.5f, 1.0f); GL.glVertex3f(0.0f, 1.0f + i_Height, 1.0f); GL.glTexCoord2f(0.25f, 1.0f); GL.glVertex3f(0.0f, 1.0f + i_Height, 0.0f); //Right side GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(1.0f, 0.0f + i_Height, 0.0f); GL.glTexCoord2f(0.75f, 0.0f); GL.glVertex3f(1.0f, 0.0f + i_Height, 1.0f); GL.glTexCoord2f(0.75f, 1.0f); GL.glVertex3f(1.0f, 1.0f + i_Height, 1.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(1.0f, 1.0f + i_Height, 0.0f); //FrontSide GL.glTexCoord2f(0.5f, 0.0f); GL.glVertex3f(0.0f, 0.0f + i_Height, 1.0f); GL.glTexCoord2f(0.75f, 0.0f); GL.glVertex3f(1.0f, 0.0f + i_Height, 1.0f); GL.glTexCoord2f(0.75f, 1.0f); GL.glVertex3f(1.0f, 1.0f + i_Height, 1.0f); GL.glTexCoord2f(0.5f, 1.0f); GL.glVertex3f(0.0f, 1.0f + i_Height, 1.0f); GL.glEnd(); }
void DrawGrid(float gridsize, bool sky) { float h = 0; //floor texture GL.glEnable(GL.GL_TEXTURE_2D); if (sky) { GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[6]); } else { GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]); } GL.glBegin(GL.GL_QUADS); GL.glColor3f(1f, 1f, 1f);//white clear //left side if (sky) { h = 10; GL.glNormal3f(0.0f, -1.0f, 0.0f); } else { GL.glNormal3f(0.0f, 1.0f, 0.0f); } GL.glTexCoord2f(0, 0); GL.glVertex3f(0, h, 0); GL.glTexCoord2f(0, 1); GL.glVertex3f(-gridsize, h, 0); GL.glTexCoord2f(1f, 1f); GL.glVertex3f(-gridsize, h, -gridsize * 2); GL.glTexCoord2f(1f, 0); GL.glVertex3f(0, h, -gridsize * 2); //right side if (sky) { GL.glNormal3f(0.0f, -1.0f, 0.0f); } else { GL.glNormal3f(0.0f, 1.0f, 0.0f); } GL.glTexCoord2f(0, 0); GL.glVertex3f(0, h, 0); GL.glTexCoord2f(0, 1); GL.glVertex3f(gridsize, h, 0); GL.glTexCoord2f(1f, 1f); GL.glVertex3f(gridsize, h, -gridsize * 2); GL.glTexCoord2f(1f, 0); GL.glVertex3f(0, h, -gridsize * 2); GL.glEnd(); GL.glDisable(GL.GL_TEXTURE_2D); }
public void Draw() { GL.glBegin(GL.GL_LINES); GL.glColor3f(color.R, color.G, color.B); GL.glVertex3f(v1.X, v1.Y, v1.Z); GL.glVertex3f(v2.X, v2.Y, v2.Z); ApplyTransformation(); GL.glEnd(); }
void DrawTexturedCube() { float big = 1.0f; float small = big; // front GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[0]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-big, -big, big); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(big, -big, big); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(big, big, big); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-big, big, big); GL.glEnd(); // back GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[1]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(small, -small, -small); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-small, -small, -small); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-small, small, -small); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(small, small, -small); GL.glEnd(); // left GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[2]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-small, -small, -small); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-big, -big, big); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-big, big, big); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-small, small, -small); GL.glEnd(); // right GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[3]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(big, -big, big); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(small, -small, -small); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(small, small, -small); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(big, big, big); GL.glEnd(); // top GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[4]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-big, big, big); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(big, big, big); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(small, small, -small); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-small, small, -small); GL.glEnd(); // bottom GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[5]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-small, -small, -small); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(small, -small, -small); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(big, -big, big); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-big, -big, big); GL.glEnd(); }
//! TEXTURE CUBE b //Draws our textured cube, VERY simple. Notice that the faces are constructed //in a counter-clockwise order. If they were done in a clockwise order you would //have to use the glFrontFace() function. void DrawTexturedCube() { // front GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-40.0f, -40.0f, 40.0f); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(40.0f, -40.0f, 40.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(40.0f, 40.0f, 40.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-40.0f, 40.0f, 40.0f); GL.glEnd(); // back GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[1]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(40.0f, -40.0f, -40.0f); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-40.0f, -40.0f, -40.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-40.0f, 40.0f, -40.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(40.0f, 40.0f, -40.0f); GL.glEnd(); // left GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[2]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-40.0f, -40.0f, -40.0f); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-40.0f, -40.0f, 40.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-40.0f, 40.0f, 40.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-40.0f, 40.0f, -40.0f); GL.glEnd(); // right GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[3]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(40.0f, -40.0f, 40.0f); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(40.0f, -40.0f, -40.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(40.0f, 40.0f, -40.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(40.0f, 40.0f, 40.0f); GL.glEnd(); // top GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[4]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-40.0f, 40.0f, 40.0f); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(40.0f, 40.0f, 40.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(40.0f, 40.0f, -40.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-40.0f, 40.0f, -40.0f); GL.glEnd(); // bottom GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[5]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-40.0f, -40.0f, -40.0f); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(40.0f, -40.0f, -40.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(40.0f, -40.0f, 40.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-40.0f, -40.0f, 40.0f); GL.glEnd(); }
void DrawTexturedCube() { GL.glEnable(GL.GL_TEXTURE_2D); GL.glDisable(GL.GL_BLEND); GL.glColor3d(1, 1, 1); GL.glDisable(GL.GL_LIGHTING); // front GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(300.0f, -0.01f, 300.0f); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-300.0f, -0.01f, 300.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-300.0f, 300.0f, 300.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(300.0f, 300.0f, 300.0f); GL.glEnd(); // back GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-300.0f, -0.01f, -300.0f); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(300.0f, -0.01f, -300.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(300.0f, 300.0f, -300.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-300.0f, 300.0f, -300.0f); GL.glEnd(); // left GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[2]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-300.0f, -0.01f, 300.0f); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-300.0f, -0.01f, -300.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-300.0f, 300.0f, -300.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-300.0f, 300.0f, 300.0f); GL.glEnd(); // right GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[3]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(300.0f, -0.01f, -300.0f); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(300.0f, -0.01f, 300.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(300.0f, 300.0f, 300.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(300.0f, 300.0f, -300.0f); GL.glEnd(); // top GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[4]); GL.glBegin(GL.GL_QUADS); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-300.0f, 300.0f, -300.0f); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(300.0f, 300.0f, -300.0f); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(300.0f, 300.0f, 300.0f); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-300.0f, 300.0f, 300.0f); GL.glEnd(); GL.glDisable(GL.GL_TEXTURE_2D); GL.glEnable(GL.GL_BLEND); }
public void Drawfloor() { GL.glPushMatrix(); GL.glColor3f(0.0f, 1.0f, 0.0f); GL.glTranslatef(0, -0.001f, 0); GL.glBegin(GL.GL_QUADS); GL.glNormal3f(0, 1, 0); GL.glVertex3f(-100, 0, -100); GL.glVertex3f(-100, 0, 100); GL.glVertex3f(100, 0, 100); GL.glVertex3f(100, 0, -100); GL.glEnd(); GL.glPopMatrix(); }
void drawStar(Star star, bool isForShade) { if (star.toDraw == true) { GL.glPushMatrix(); GL.glTranslatef(0f, 0f, 1f); GL.glTranslatef(star.X + (float)xExisOrigin, star.Y + (float)yExisOrigin, 3 - Math.Abs(2f * (float)Math.Cos(ballZMovement))); GL.glRotatef(ballZtranslate, 0, 0, 1f); if (!isForShade) { GL.glEnable(GL.GL_TEXTURE_2D); GL.glColor3f(1.0f, 1.0f, 1.0f); GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[6]); GL.glEnable(GL.GL_TEXTURE_GEN_S); GL.glEnable(GL.GL_TEXTURE_GEN_T); GL.glTexGeni(GL.GL_S, GL.GL_TEXTURE_GEN_MODE, (int)GL.GL_SPHERE_MAP); GL.glTexGeni(GL.GL_T, GL.GL_TEXTURE_GEN_MODE, (int)GL.GL_SPHERE_MAP); } else { GL.glColor3d(0.2, 0.2, 0.2); } for (int i = 0; i < 5; i++) { GL.glRotatef(72, 1, 0, 0); GL.glBegin(GL.GL_QUADS); GL.glVertex3f(0f, 0f, 0); GL.glVertex3f(0f, (float)Math.Sin(36), 1); GL.glVertex3f(0f, 0, 3f); GL.glVertex3f(0f, -(float)Math.Sin(36), 1); GL.glEnd(); } if (!isForShade) { GL.glDisable(GL.GL_TEXTURE_GEN_S); GL.glDisable(GL.GL_TEXTURE_GEN_T); GL.glDisable(GL.GL_TEXTURE_2D); } GL.glPopMatrix(); } }
public void DrawWithTexture(int multMirrorPicture, bool isFrontOrbackWall) { // multMirrorPicture == -1 : mirror pictures uint swapPictures = 0; // if swapPictures == 0 picture left = picture right if (multMirrorPicture == -1) { swapPictures = 1; } else { swapPictures = 0; } if (isFrontOrbackWall) { if (this.textureId == 12) { GL.glBindTexture(GL.GL_TEXTURE_2D, this.textureId + swapPictures); } else if (this.textureId == 13) { GL.glBindTexture(GL.GL_TEXTURE_2D, this.textureId - swapPictures); } } else { GL.glBindTexture(GL.GL_TEXTURE_2D, this.textureId); } GL.glBegin(GL.GL_QUADS); if (isFrontOrbackWall) { GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(multMirrorPicture * v1.X, v1.Y, v1.Z); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(multMirrorPicture * v2.X, v2.Y, v2.Z); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(multMirrorPicture * v3.X, v3.Y, v3.Z); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(multMirrorPicture * v4.X, v4.Y, v4.Z); } else { GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(v1.X, v1.Y, multMirrorPicture * v1.Z); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(v2.X, v2.Y, multMirrorPicture * v2.Z); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(v3.X, v3.Y, multMirrorPicture * v3.Z); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(v4.X, v4.Y, multMirrorPicture * v4.Z); } GL.glEnd(); }
private void drawInvertedPyramid() { GL.glBegin(GL.GL_TRIANGLES); //1 GL.glColor3f(1.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.5f, 0.0f); GL.glColor3f(1.0f, 1.0f, 1.0f); GL.glVertex3f(0.0f, 0.5f, 1.0f); GL.glColor3f(1.0f, 1.0f, 1.0f); GL.glVertex3f(0.5f, 0.0f, 0.5f); // 2 GL.glColor3f(0.0f, 1.0f, 0.0f); GL.glVertex3f(0.0f, 0.5f, 0.0f); GL.glColor3f(1.0f, 1.0f, 1.0f); GL.glVertex3f(1.0f, 0.5f, 0.0f); GL.glColor3f(1.0f, 1.0f, 1.0f); GL.glVertex3f(0.5f, 0.0f, 0.5f); // 3 GL.glColor3f(0.0f, 0.0f, 1.0f); GL.glVertex3f(1.0f, 0.5f, 1.0f); GL.glColor3f(1.0f, 1.0f, 1.0f); GL.glVertex3f(0.0f, 0.5f, 1.0f); GL.glColor3f(1.0f, 1.0f, 1.0f); GL.glVertex3f(0.5f, 0.0f, 0.5f); // 4 GL.glColor3f(1.0f, 0.5f, 1.0f); GL.glVertex3f(1.0f, 0.5f, 1.0f); GL.glColor3f(1.0f, 1.0f, 1.0f); GL.glVertex3f(1.0f, 0.5f, 0.0f); GL.glColor3f(1.0f, 1.0f, 1.0f); GL.glVertex3f(0.5f, 0.0f, 0.5f); GL.glEnd(); }
void DrawAxes(Color xColor, Color yColor, Color zColor) { GL.glBegin(GL.GL_LINES); //x GL.glColor3f(xColor.R, xColor.G, xColor.B); GL.glVertex3f(-3.0f, 0.0f, 0.0f); GL.glVertex3f(3.0f, 0.0f, 0.0f); //y GL.glColor3f(yColor.R, yColor.G, yColor.B); GL.glVertex3f(0.0f, -3.0f, 0.0f); GL.glVertex3f(0.0f, 3.0f, 0.0f); //z GL.glColor3f(zColor.R, zColor.G, zColor.B); GL.glVertex3f(0.0f, 0.0f, -3.0f); GL.glVertex3f(0.0f, 0.0f, 3.0f); GL.glEnd(); }
public void drawaxe() { GL.glBegin(GL.GL_LINES); //x RED GL.glColor3f(1.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(150.0f, 0.0f, 0.0f); //y GREEN GL.glColor3f(0.0f, 1.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 150.0f, 0.0f); //z BLUE GL.glColor3f(0.0f, 0.0f, 1.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 150.0f); GL.glEnd(); }
/********************************************************************************************************** * * * * Draw scene components.Axes,lake,light,floor and textures. * * * **********************************************************************************************************/ void DrawAxes() { GL.glBegin(GL.GL_LINES); //x RED GL.glColor3f(1.0f, 0.0f, 0.0f); GL.glVertex3f(-3.0f, 0.0f, 0.0f); GL.glVertex3f(3.0f, 0.0f, 0.0f); //y GREEN GL.glColor3f(0.0f, 1.0f, 0.0f); GL.glVertex3f(0.0f, -3.0f, 0.0f); GL.glVertex3f(0.0f, 3.0f, 0.0f); //z BLUE GL.glColor3f(0.0f, 0.0f, 1.0f); GL.glVertex3f(0.0f, 0.0f, -3.0f); GL.glVertex3f(0.0f, 0.0f, 3.0f); GL.glEnd(); }
void DrawBounds() { if (isBounds) { GL.glScalef(0.99f, 0.99f, 0.99f); GL.glLineWidth(2); GL.glColor3f(1.0f, 0.0f, 0.0f); GL.glDisable(GL.GL_LIGHTING); GL.glBegin(GL.GL_LINE_LOOP); GL.glVertex3f(-1, -1, -1); GL.glVertex3f(1, -1, -1); GL.glVertex3f(1, -1, 1); GL.glVertex3f(-1, -1, 1); GL.glEnd(); GL.glBegin(GL.GL_LINE_LOOP); GL.glVertex3f(-1, 1, -1); GL.glVertex3f(1, 1, -1); GL.glVertex3f(1, 1, 1); GL.glVertex3f(-1, 1, 1); GL.glEnd(); GL.glBegin(GL.GL_LINES); GL.glVertex3f(-1, -1, -1); GL.glVertex3f(-1, 1, -1); GL.glVertex3f(1, -1, -1); GL.glVertex3f(1, 1, -1); GL.glVertex3f(1, -1, 1); GL.glVertex3f(1, 1, 1); GL.glVertex3f(-1, -1, 1); GL.glVertex3f(-1, 1, 1); GL.glEnd(); GL.glScalef(1.0f / 0.99f, 1.0f / 0.99f, 1.0f / 0.99f); } GL.glEnable(GL.GL_COLOR_MATERIAL); GL.glEnable(GL.GL_LIGHTING); GL.glEnable(GL.GL_LIGHT0); GL.glTranslatef(0.1f, 0.2f, -0.7f); GL.glColor3f(0, 1, 0); GLU.gluSphere(obj, 0.05, 16, 16); GL.glTranslatef(-0.1f, -0.2f, 0.7f); GL.glDisable(GL.GL_LIGHTING); }
public void createLeafList() { GL.glNewList(LEAF_LIST + currentTree, GL.GL_COMPILE); GL.glBegin(GL.GL_TRIANGLES); GL.glNormal3f(-0.1f, 0, leafScale); GL.glVertex3f(0, 0, 0); GL.glVertex3f(leafScale, leafScale, 0.1f); GL.glVertex3f(0, leafScale * 2, 0); GL.glNormal3f(0.1f, 0, leafScale); GL.glVertex3f(0, 0, 0); GL.glVertex3f(0, leafScale * 2, 0); GL.glVertex3f(leafScale, leafScale, 0.1f); GL.glEnd(); GL.glEndList(); }
void drawFloorTextured() { GL.glEnable(GL.GL_TEXTURE_2D); GL.glDisable(GL.GL_BLEND); GL.glColor3d(1, 1, 1); GL.glDisable(GL.GL_LIGHTING); GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[5]); GL.glBegin(GL.GL_QUADS); GL.glNormal3f(0, 1, 0); GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-200, -0.01f, 200); GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(200, -0.01f, 200); GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(200, -0.01f, -200); GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-200, -0.01f, -200); GL.glEnd(); GL.glDisable(GL.GL_TEXTURE_2D); GL.glEnable(GL.GL_BLEND); GL.glEnable(GL.GL_LIGHTING); }
private void drawQuadAtGivenHeight(float i_Height) { GL.glBegin(GL.GL_QUADS); GL.glColor3f(1.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f + i_Height, 0.0f); GL.glColor3f(0.0f, 0.0f, 1.0f); GL.glVertex3f(0.0f, 0.0f + i_Height, 1.0f); GL.glColor3f(0.5f, 0.5f, 1.0f); GL.glVertex3f(1.0f, 0.0f + i_Height, 1.0f); GL.glColor3f(0.0f, 0.0f, 1.0f); GL.glVertex3f(1.0f, 0.0f + i_Height, 0.0f); GL.glEnd(); }
private void drawAxises() { //axes GL.glBegin(GL.GL_LINES); //x RED GL.glColor3f(1.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(10.0f, 0.0f, 0.0f); //y GREEN GL.glColor3f(0.0f, 1.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 10.0f, 0.0f); //z BLUE GL.glColor3f(0.0f, 0.0f, 1.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 10.0f); GL.glEnd(); }
public void DrawAxes() { GL.glPushMatrix(); GL.glDisable(GL.GL_LIGHTING); GL.glBegin(GL.GL_LINES); //x RED GL.glColor3f(1.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(3.0f, 0.0f, 0.0f); //y GREEN GL.glColor3f(0.0f, 1.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 3.0f, 0.0f); //z BLUE GL.glColor3f(0.0f, 0.0f, 1.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 3.0f); GL.glEnd(); GL.glEnable(GL.GL_LIGHTING); GL.glPopMatrix(); }
protected void DrawAxes() { GL.glBegin(GL.GL_LINES); //X - Red GL.glColor3f(1.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(10.0f, 0.0f, 0.0f); //Y - Greed GL.glColor3f(0.0f, 1.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 10.0f, 0.0f); //Z - Blue GL.glColor3f(0.0f, 0.0f, 1.0f); GL.glVertex3f(0.0f, 0.0f, 0.0f); GL.glVertex3f(0.0f, 0.0f, 10.0f); GL.glEnd(); }
void DrawOldAxes() { //INITIAL axes GL.glEnable(GL.GL_LINE_STIPPLE); GL.glLineStipple(1, 0xFF00); // dotted GL.glBegin(GL.GL_LINES); //x RED GL.glColor3f(1.0f, 0.0f, 0.0f); GL.glVertex3f(-3.0f, 0.0f, 0.0f); GL.glVertex3f(3.0f, 0.0f, 0.0f); //y GREEN GL.glColor3f(0.0f, 1.0f, 0.0f); GL.glVertex3f(0.0f, -3.0f, 0.0f); GL.glVertex3f(0.0f, 3.0f, 0.0f); //z BLUE GL.glColor3f(0.0f, 0.0f, 1.0f); GL.glVertex3f(0.0f, 0.0f, -3.0f); GL.glVertex3f(0.0f, 0.0f, 3.0f); GL.glEnd(); GL.glDisable(GL.GL_LINE_STIPPLE); }
/// <summary> /// Draws a doughnut. /// </summary> /// <param name="r">The inner radius.</param> /// <param name="R">The outer radius.</param> /// <param name="nsides">The number of sides.</param> /// <param name="rings">The number of rings.</param> private static void Doughnut(float r, float R, int nsides, int rings) { float theta, phi, theta1; float cosTheta, sinTheta; float cosTheta1, sinTheta1; float ringDelta, sideDelta; ringDelta = 2.0f * M_PI / rings; sideDelta = 2.0f * M_PI / nsides; theta = 0.0f; cosTheta = 1.0f; sinTheta = 0.0f; for (int i = rings - 1; i >= 0; i--) { theta1 = theta + ringDelta; cosTheta1 = (float)Math.Cos(theta1); sinTheta1 = (float)Math.Sin(theta1); GL.glBegin(GL.GL_QUAD_STRIP); phi = 0.0f; for (int j = nsides; j >= 0; j--) { float cosPhi, sinPhi, dist; phi += sideDelta; cosPhi = (float)Math.Cos(phi); sinPhi = (float)Math.Sin(phi); dist = R + r * cosPhi; GL.glNormal3f(cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi); GL.glVertex3f(cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi); GL.glNormal3f(cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi); GL.glVertex3f(cosTheta * dist, -sinTheta * dist, r * sinPhi); } GL.glEnd(); theta = theta1; cosTheta = cosTheta1; sinTheta = sinTheta1; } }
private void drawGyroCylinder() { GL.glPushMatrix(); // translate the position to draw the cylinder on the top of the cube float xCylinderOrigin = CubeWidth / 2; float yCylinderOrigin = CubeHeight; float zCylinderOrigin = CubeDepth / 2; GL.glTranslatef(xCylinderOrigin, yCylinderOrigin, zCylinderOrigin); // draw the cylinder int cylinderSegements = 16; GLUquadric GluQuadric; GluQuadric = GLU.gluNewQuadric(); GL.glRotatef(90, -1, 0, 0); // the cylinder height is relative to z axis GLU.gluCylinder(GluQuadric, CylinderRadius, CylinderRadius, CylinderHeight, cylinderSegements, cylinderSegements); GL.glRotatef(90, 1, 0, 0); GLU.gluDeleteQuadric(GluQuadric); // draw cylinder cover GL.glBegin(GL.GL_POLYGON); for (int i = 0; i < cylinderSegements; i++) { float theta = 2.0f * 3.1415926f * i / cylinderSegements; //get the current angle float x = CylinderRadius * (float)Math.Cos(theta); //calculate the x component float y = CylinderRadius * (float)Math.Sin(theta); //calculate the y component GL.glVertex3f(x, CylinderHeight, y); } GL.glEnd(); GL.glPopMatrix(); }