@Override
	protected void controlUpdate(float tpf)
	{
		if (stage == Stage.Init)
		{
			controlInit(tpf);
			if (stage != Stage.Detach)
    			stage = Stage.Update;
		}
		
		if (stage == Stage.Update)
    		controlProcess(tpf);

		if (stage == Stage.Detach)
		{
			controlDetach();
			if (spatial != null)
    			spatial.removeControl(this);
		}
	}