function [] = drawframetraj(t, scale)
%DRAWFRAMETRAJ plots the a series of homogeneous transforms
%
% DRAWFRAMETRAJ(T)
% DRAWFRAMETRAJ(T, SCALE)
%
% SCALE can be used to determine the size of the coordinate axes. It
% defaults to 1.
%
% See also: DRAWFRAME, DRAWFRAMETRAJ, ANIMATEFRAMETRAJ.
% $Id: drawframetraj.m,v 1.1 2009-03-17 16:40:18 bradleyk Exp $
% Copyright (C) 2005, by Brad Kratochvil
if 1 == nargin,
scale = 1;
end
hchek = ishold;
hold on
n = size(t, 3);
% initialize
X = zeros(n,4);
Y = zeros(n,4);
Z = zeros(n,4);
% draw the path
for j=1:n,
T = t(:,:,j);
X(j,:) = (T * [scale;0;0;1])'; % for the x axis
Y(j,:) = (T * [0;scale;0;1])'; % for the y axis
Z(j,:) = (T * [0;0;scale;1])'; % for the z axis
% final axes
arrow3(pos(T), X(j,1:3)'-pos(T), [0.5 0 0]);
arrow3(pos(T), Y(j,1:3)'-pos(T), [0 0.5 0]);
arrow3(pos(T), Z(j,1:3)'-pos(T), [0 0 0.5]);
if n < 10 || 0 == mod(j,10),
text(T(1,4)+0.2*scale, T(2,4)+0.2*scale, T(3,4)+0.2*scale, ...
sprintf('%i', j));
end
end
line(X(:,1),X(:,2),X(:,3), 'LineStyle', '--', 'color', [0.5 0 0])
line(Y(:,1),Y(:,2),Y(:,3), 'LineStyle', '--', 'color', [0 0.5 0])
line(Z(:,1),Z(:,2),Z(:,3), 'LineStyle', '--', 'color', [0 0 0.5])
% final axes
arrow3(pos(T), X(n,1:3)'-pos(T), [1 0 0]);
arrow3(pos(T), Y(n,1:3)'-pos(T), [0 1 0]);
arrow3(pos(T), Z(n,1:3)'-pos(T), [0 0 1]);
if 0 == hchek
hold off
end
nice3d();
end