public void DrawScene()
	{
		glColor3f(1, 1, 1);
		mLevel.Draw();
		
		switch (mEditType)
		{
		case Polygon:
		{		
			glColor3f(1, 1, 1);
			
			{
				ListIterator<Polygon> i = mSelectedPolys.listIterator();
				
				while (i.hasNext())
				{
					i.next().DrawEdges();
				}
			}
			
			{
				ListIterator<Polygon> i = mAreaSelectedPolys.listIterator();
				
				while (i.hasNext())
				{
					i.next().DrawEdges();
				}
			}
		}
		break;
		}
		
		if (mSelectRect != null)
		{
			glColor4f(1, 1, 1, 0.4f);
			mSelectRect.Fill();
			
			glColor3f(1, 1, 1);
			mSelectRect.Draw();
		}
		
		glPushMatrix();
		{
			glLoadIdentity();
			
			Texture.Begin();
			{
				switch (mEditOperation)
				{
					case Select:
					{
						mSelectTexture.BindTexture();
						mSelectTexture.Draw(10, 10);
					}
					break;
					case Move:
					{
						mMoveTexture.BindTexture();
						mMoveTexture.Draw(10, 10);
					}
					break;
				}
			}
			Texture.End();
		}
		glPopMatrix();
	}