/*
* This projects belongs to Vasily Tserekh, if you find it useful
* Stop by for my blog and make a comment, I'll really apreciate some
* feedback
*http://vasilydev.blogspot.com/
*/
using System;
using System.Collections.Generic;
using System.Text;
using ShadowEngine;
using Tao.OpenGl;
namespace CarRace
{
class World
{
public void Draw()
{
int width = 240;
int height = 200;
int length = 240;
//start in this coordinates
int x = 10;
int y = -3;
int z = 7;
//center the square
x = x - width / 2;
y = y - height / 2;
z = z - length / 2;
Gl.glEnable(Gl.GL_TEXTURE_2D);
Gl.glBindTexture(Gl.GL_TEXTURE_2D, ContentManager.GetTextureByName("back.jpg"));
//start drawing quads
Gl.glBegin(Gl.GL_QUADS);
Gl.glNormal3d(-1, 1, 1);
Gl.glTexCoord2f(1.0f, 0.0f); Gl.glVertex3d(x + width, y, z);
Gl.glNormal3d(-1, -1, 1);
Gl.glTexCoord2f(1.0f, 1.0f); Gl.glVertex3d(x + width, y + height, z);
Gl.glNormal3d(1, -1, 1);
Gl.glTexCoord2f(0.0f, 1.0f); Gl.glVertex3d(x, y + height, z);
Gl.glNormal3d(1, 1, 1);
Gl.glTexCoord2f(0.0f, 0.0f); Gl.glVertex3d(x, y, z);
Gl.glEnd();
Gl.glBindTexture(Gl.GL_TEXTURE_2D, ContentManager.GetTextureByName("front.jpg"));
Gl.glBegin(Gl.GL_QUADS);
Gl.glNormal3d(1, 1, -1);
Gl.glTexCoord2f(1.0f, 0.0f); Gl.glVertex3d(x, y, z + length);
Gl.glNormal3d(1, -1, -1);
Gl.glTexCoord2f(1.0f, 1.0f); Gl.glVertex3d(x, y + height, z + length);
Gl.glNormal3d(-1, -1, -1);
Gl.glTexCoord2f(0.0f, 1.0f); Gl.glVertex3d(x + width, y + height, z + length);
Gl.glNormal3d(-1, 1, -1);
Gl.glTexCoord2f(0.0f, 0.0f); Gl.glVertex3d(x + width, y, z + length);
Gl.glEnd();
Gl.glBindTexture(Gl.GL_TEXTURE_2D, ContentManager.GetTextureByName("top.jpg"));
Gl.glBegin(Gl.GL_QUADS);
Gl.glNormal3d(-1, -1, 1);
Gl.glTexCoord2f(1.0f, 0.0f); Gl.glVertex3d(x + width, y + height, z);
Gl.glNormal3d(-1, -1, -1);
Gl.glTexCoord2f(1.0f, 1.0f); Gl.glVertex3d(x + width, y + height, z + length);
Gl.glNormal3d(1, -1, -1);
Gl.glTexCoord2f(0.0f, 1.0f); Gl.glVertex3d(x, y + height, z + length);
Gl.glNormal3d(1, -1, 1);
Gl.glTexCoord2f(0.0f, 0.0f); Gl.glVertex3d(x, y + height, z);
Gl.glEnd();
Gl.glBindTexture(Gl.GL_TEXTURE_2D, ContentManager.GetTextureByName("left.jpg"));
Gl.glBegin(Gl.GL_QUADS);
Gl.glNormal3d(1, -1, 1);
Gl.glTexCoord2f(0.0f, 1.0f); Gl.glVertex3d(x, y + height, z);
Gl.glNormal3d(1, -1, -1);
Gl.glTexCoord2f(1.0f, 1.0f); Gl.glVertex3d(x, y + height, z + length);
Gl.glNormal3d(1, 1, -1);
Gl.glTexCoord2f(1.0f, 0.0f); Gl.glVertex3d(x, y, z + length);
Gl.glNormal3d(1, 1, 1);
Gl.glTexCoord2f(0.0f, 0.0f); Gl.glVertex3d(x, y, z);
Gl.glEnd();
Gl.glBindTexture(Gl.GL_TEXTURE_2D, ContentManager.GetTextureByName("right.jpg"));
Gl.glBegin(Gl.GL_QUADS);
Gl.glNormal3d(-1, 1, 1);
Gl.glTexCoord2f(0.0f, 0.0f); Gl.glVertex3d(x + width, y, z);
Gl.glNormal3d(-1, 1, -1);
Gl.glTexCoord2f(1.0f, 0.0f); Gl.glVertex3d(x + width, y, z + length);
Gl.glNormal3d(-1, -1, -1);
Gl.glTexCoord2f(1.0f, 1.0f); Gl.glVertex3d(x + width, y + height, z + length);
Gl.glNormal3d(-1, -1, 1);
Gl.glTexCoord2f(0.0f, 1.0f); Gl.glVertex3d(x + width, y + height, z);
Gl.glEnd();
Gl.glBindTexture(Gl.GL_TEXTURE_2D, ContentManager.GetTextureByName("cesped.jpg"));
Gl.glBegin(Gl.GL_QUADS);
Gl.glNormal3d(1, 1, 1);
Gl.glTexCoord2f(16.0f, 0.0f); Gl.glVertex3d(x, -0.2f, z);
Gl.glNormal3d(1, 1, -1);
Gl.glTexCoord2f(16.0f, 16.0f); Gl.glVertex3d(x, -0.2f, z + length);
Gl.glNormal3d(-1, 1, -1);
Gl.glTexCoord2f(0.0f, 16.0f); Gl.glVertex3d(x + width, -0.2f, z + length);
Gl.glNormal3d(-1, 1, 1);
Gl.glTexCoord2f(0.0f, 0.0f); Gl.glVertex3d(x + width, -0.2f, z);
Gl.glEnd();
}
}
}