function rot3daxes(h,as,l,ang,axSym,killLines)
% rot3daxes preforms a simple rotation of an axis set created by make3daxes.
% 
% rot3daxes(h,as,l,ang) rotates the surface objects with
% handles in array (as) in figure (h) by an angle (ang) about the axis
% defined by array (l).  The handles are assumed to be of surface objects
% generated by the function make3daxes and the angle is assumed to be in
% degrees.
%
% rot3daxes(...,axSym) plots the previous axis positions with linesytle
% axSym.
%
% rot3daxes(...,killLines) removes previous line objects from the figure,
% when killLines is set to true.
%
% Note: This function is intended to be called by animEuler.m
% 
% Examples:  
%     %rotate axes 45 degrees about z axis.
%     rot3daxes(h,as,[0,0,1],45,'--')

% Written by Dmitry Savransky 29 April 2009

if ~exist('axSym','var') || isempty(axSym)
    axSym = '--';
end
if ~exist('killLines','var')
    killLines = false;
end
%set figure and remove any previous line objects if requested
figure(h);

if killLines
    oldObjs = findobj(h,'Type','line');
    if ~isempty(oldObjs), delete(oldObjs); end
end

%plot orig axes
hold on
col = ['r','g','b'];
for j=1:3
    a = get(as(j),{'Xdata','Ydata','Zdata'});
    plot3(mean(a{1},2),mean(a{2},2),mean(a{3},2),[col(j),axSym],'LineWidth',2);
end

for j=1:20
    for i=1:3
        rotate(as(i),l,ang/20,[0,0,0])
    end
    pause(0.1);
end
% axis equal;
% axis([-1 1 -1 1 -1 1])
% view(45,15)
% grid on