void TransformadorAtualizarPosicaoBracoDireito::transformar(irr::scene::IAnimatedMeshSceneNode * node, tipos::Esqueleto esqueleto)
{
	IBoneSceneNode * ombro = node->getJointNode("UpArm_R");
	IBoneSceneNode * cotovelo = node->getJointNode("UpArm_R");
	float menorDistancia = 999;
	float anguloOmbro = 0;
	float anguloCotovelo = 0;
	//int anguloMinimo = -60;
	//int anguloMaximo = 60;
	int anguloMinimoOmbro = ombro->getRotation().Y - 20;
	int anguloMaximoOmbro = ombro->getRotation().Y + 20;
	int anguloMinimoCotovelo = cotovelo->getRotation().Y - 20;
	int anguloMaximoCotovelo = cotovelo->getRotation().Y + 20;
	
	for (int i = anguloMinimoOmbro ;i < anguloMaximoOmbro ;i++)
	{
		core::vector3df rotOmbro = ombro->getRotation();
		rotOmbro.Y = i;
		ombro->setRotation(rotOmbro);
		for(int j =anguloMinimoCotovelo ; j< anguloMaximoCotovelo ;j++)
		{
			core::vector3df rotCot = cotovelo->getRotation();
			rotCot.Y = j;
			cotovelo->setRotation(rotCot);
			IBoneSceneNode * mao = node->getJointNode("Hand_R");
			
			node->updateAbsolutePosition();
			for(int i=0;i<node->getJointCount();i++)
			{
				node->getJointNode(i)->updateAbsolutePosition();
			}
			float distancia = CalculosUteis::distanciaEntrePontos(
				Vetor(mao->getAbsolutePosition().X,mao->getAbsolutePosition().Y,mao->getAbsolutePosition().Z),
				esqueletoRef.mao_direita);
			if(distancia<menorDistancia)
			{
				menorDistancia = distancia;
				anguloOmbro = i;
				anguloCotovelo = j;
			}


			
		}
		
		
	}

	printf("i: %f j: %f distancia : %f\n",anguloOmbro,anguloCotovelo,menorDistancia);
	core::vector3df rotOmbro = ombro->getRotation();
		rotOmbro.Y = anguloOmbro;
		ombro->setRotation(rotOmbro);

		core::vector3df rotCot = cotovelo->getRotation();
		rotCot.Y = anguloCotovelo;
		cotovelo->setRotation(rotCot);
}
void MovimentadorBracoEsquerdo::mover(irr::scene::IAnimatedMeshSceneNode * node,tipos::Esqueleto esqueleto) 
{
	std::string ombro_esquerdo_bone			=       "UpArm_L";
	std::string braco_esquerdo_bone			=       "LoArm_L";
	std::string mao_esquerda_bone			=		"Index_L";

	float anguloOmbroEsquerdo = getAnguloBraco(esqueleto.ombro_esquerdo,esqueleto.cotovelo_esquerdo);	
	setarAnguloBone(node,ombro_esquerdo_bone,-anguloOmbroEsquerdo);		
	float anguloMaoEsquerda = CalculosUteis::anguloEntrePontos(esqueleto.cotovelo_esquerdo,esqueleto.ombro_esquerdo,esqueleto.mao_esquerda);
	if(esqueleto.cotovelo_esquerdo.y < esqueleto.mao_esquerda.y)
		anguloMaoEsquerda = - anguloMaoEsquerda;
	if(!_isnan(anguloMaoEsquerda))
		setarAnguloBone(node,braco_esquerdo_bone,anguloMaoEsquerda);


	IBoneSceneNode * mao = node->getJointNode(mao_esquerda_bone.c_str());
	pos = Vetor(
		mao->getAbsolutePosition().X,
		mao->getAbsolutePosition().Y,
		mao->getAbsolutePosition().Z);
	//teste
	/*
	bool tem = false;
	for(int i=0;i<marcadores.size();i++)
	{
		if(marcadores[i]->pontoDentroMarcador(pos) && i!=indiceAnterior)
		{
			if(!cronometro.iniciado())
			{
				cronometro.iniciarContagem();						
			}
			tem = true;
			indiceAtual = i;
		}


	}
	if(!tem)
	{
		cronometro.pararContagem();
	}
	*/

}