public Triangle (Mesh mesh, Vertex a, Vertex b, Vertex c)
		{
			this.a = a;
			this.b = b;
			this.c = c;

			this.mesh = mesh;
		}
		public static void Main (string[] args)
		{

			Device.Init (1024, 576, "Software Renderer");

			// initialize a camera with 60 degrees field of view
			// the second argument is the position of the camera (left handed)
			Camera camera = new Camera (60, new Vector3 (0, 0, -10));

			// load the storm trooper texture
			Texture stormTrooperTexture = new Texture("../../Assets/Stormtrooper.png");

			// load the stormtrooper mesh, and apply the specified texture
			Mesh stormTrooper = new Mesh ("../../Assets/Stormtrooper.obj", stormTrooperTexture);

			// scale in half
			stormTrooper.scale = new Vector3 (0.5f, 0.5f, 0.5f);
			// place y at -1 to have better view of the storm tropper
			stormTrooper.position = new Vector3 (0, -1, 0);
			// start with a 0 rotation
			stormTrooper.rotationEuler = new Vector3 (0, 0, 0);

			float z = camera.position.z;
			float y = stormTrooper.rotationEuler.y;

			while (Device.Active) {
				// red background (remember, colors are not normalized in device space)
				Device.Clear (255, 0, 0);

				// input management, we rotate the mesh with left and right, and we zoom in/out with up and down
				if (Device.GetKey (KeyCode.Right))
					y+=3;

				if (Device.GetKey (KeyCode.Left))
					y-=3;

				if (Device.GetKey (KeyCode.Up))
					z+=1;

				if (Device.GetKey (KeyCode.Down))
					z-=1;

				// set z of the camera
				camera.position = new Vector3 (0, 0, z);

				// apply rotation to the model
				stormTrooper.rotationEuler = new Vector3(0, y, 0);

				// draw the model
				stormTrooper.Draw (camera);

				// update the screen
				Device.Update ();
			}
		}