function s = rotation(si,rot)
% s = rotation(si,rot)
% Rotates the geometry described by the structure si around an axis through 
% the origin.
% The entire structure is rotated and nothing remains at the previous position.
% si  :  Structure generated by the functions wire etc.
% rot :  Axis direction given by Euler's angles or by the transformation matrix
% rot = [theta, psi, phi] (all angles in degrees)  
%        theta :  Angle between previous and new z-axis (nutation) (0<=theta<180)
%        psi   :  Angle between x-axis and the intersection of the previous and 
%                 the new x-y-layer (precession) (0<=psi<360)
%        phi   :  Rotation angle (0<=phi<360)
% rot = [a11 a12 a13; a21 a22 a23; a31 a32 a33]   (-1<=aij<=+1)
%        a11 = cos(angle between previous x-axis and new x-axis)
%        a12 = cos(angle between previous x-axis and new y-axis)
%        a13 = cos(angle between previous x-axis and new z-axis)
%        a21 = cos(angle between previous y-axis and new x-axis)
%        etc.
% rotation around the x-axis:  rot = [ a  0  0 ]
%% rotation around the y-axis:  rot = cos(pi*[a 90 90-a; 90 0 90; 90-a 90 a]/180)
% rotation around the y-axis:  rot = cos(pi*[a 90 90+a; 90 0 90; 90-a 90 a]/180) ???
% rotation around the z-axis:  rot = [ 0  0  a ]
