/* applet appears in surfaces and homemorphism.htm*/
//import java.awt.*;
import java.awt.event.*;
import primitives.machines.TwolegsMachine;
import primitives.spaces.PlaneSpace;
import primitives.frames.Frames;
public class TwoLegSpaceDemo extends Frames implements KeyListener{
	private TwolegsMachine machine = null;
	private PlaneSpace space = null;
	private double dalpha = 0.1;
	public void init(){
		super.init();
		frames[0].drawArea.addKeyListener(this);
		frames[1].drawArea.addKeyListener(this);
		frames[0].drawArea.requestFocus();
	}
	public void start(){
			run = true;
		machine = new TwolegsMachine(frames[0].drawArea.getSize(),2);
		frames[0].drawArea.setCurrentObject(machine);
		space = new PlaneSpace(frames[1].drawArea.getSize(),dalpha);
		frames[1].drawArea.setCurrentObject(space);
	}
	public void keyPressed(KeyEvent k){
			int dx = 0;
			int  leg = 0;
			switch(k.getKeyCode()){
				case k.VK_LEFT:dx = -1;break;
				case k.VK_RIGHT:dx = 1;break;
				case k.VK_DOWN:{
					leg = 1;
					dx = 1;
					}break;
				case k.VK_UP:{
					dx = -1;
					leg = 1;
						}
			  }

			  if(dx!=0)	{
				  machine.rotateJoint(leg,dx*dalpha);
				  if (leg==1) space.Ytranslate(dx);
				  else space.Xtranslate(dx);
				  frames[0].drawArea.repaint();
				  frames[1].drawArea.repaint();
			  }
	}
	public void keyReleased(KeyEvent k){}
	public void keyTyped(KeyEvent k)   {}
	public void stop(){
		super.stop();
		space = null;
		machine = null;
	}
}
