Transformacion Transformacion::scale(float sx,float sy,float sz, Punto centro)
//Acumula el escalado sobre un punto generico
{
	Matriz s;
	translation(centro);
	s.setelem(0,0,sx); s.setelem(1,1,sy); s.setelem(2,2,sz);
	append(s);
	return translation(centro.negated());
}
Transformacion Transformacion::rotation(float ang, Vector vectorEje, Punto enRecta )
//Acumula el giro alrededor de un eje generico
{
	float lat,lon;

	lat= vectorEje.latitude();		//latitud
	lon= vectorEje.longitude();		//longitud

	//Recordar acumulacion LIFO
	translation(enRecta);			//Rehacer la traslacion
	rotY(lon);						//Rehacer la longitud
	rotX(-lat);						//Rehacer la latitud
	rotZ(ang);						//Girar el angulo
	rotX(lat);						//Deshacer la latitud
	rotY(-lon);						//Deshacer la longitud
	return translation(enRecta.negated());	//Traslacion al origen
}