function [V] = rotGeneral(U,N,phi)
%% rotGeneral(U,N,phi)
% V = dot(R_N(phi),U) ou R_N(phi) est la matrice de rotation d'un angle phi autour de N
%
% Rotation du vecteur U autour de l'axe N d'un angle phi (rad)
%
%
% $Revision: 11 $
% $Author: lenertz $
% $Date: 2015-07-10 14:32:19 +0200 (ven., 10 juil. 2015) $

N = N/norm(N);
V = cos(phi)*U + (1-cos(phi))*dot(U,N)*N + sin(phi)*(cross(N,U));


% Amélioration pour travailler avec des matrices
%
% if nargin < 4;
%     dim = ndims(N);
% end
% 
% % Normalisation de N
% N = N / sqrt(sum(N.^2,dim));
% V = cosd(phi)*U + (1-cosd(phi))*dot(U,N,dim)*N + sind(phi)*(cross(N,U,dim));


end