function [QQ,t,V] = MultiPolyTraj(Q,N,tt)
%QQ-matriz que, em cada coluna, tem os valores das juntas nos instantes
%correspondentes, incluindo os via points
%t- vetor com os instantes de tempo correspondentes a todos os instantes deamostragem da trajetoria do inicio ao fim
%inputs
%Q-matriz com os vetores iniciais, finais e interm´edios das posi¸c˜oes a percorrer: [ Qi QA QB ... Qf]
%tt-vetor com os instantes finais de cada via point (espera-se que o instante inicial ´e 0, mas poder´a n˜ao ser...)
%N-vetor com os n´umeros de pontos a usar em cada sub-trajet´oria.
V=zeros( size(Q) ); %velocidades de passagem nulas
QQ=[]; t=[]; %matriz e vetor para ir concatenando...

V=zeros( size(Q) ); %vel. de passagem inicializadas a zero
for i=2:size(Q,2)-1 %calcular vel. intermedias
dq_1=(Q(:,i-1)-Q(:,i))/(tt(i-1)-tt(i)); % vel. no anterior
dq_2=(Q(:,i+1)-Q(i))/(tt(i+1)-tt(i)); % vel. no posterior
%m=vetor logico indexador das vel. de passagem nao nulas
m=(sign(dq_1)==sign(dq_2));
%atribuicao das vel. medias nao nulas!Indexacao engenhosa :-)
V(m,i)=( dq_1(m)+dq_2(m) )/2;
end
%...

for i=1:size(Q,2)-1 % pq?
    Qi= Q(:,i) ; Qf=Q(:,i+1); 
    Vi=V(:,i) ; Vf=V(:,i+1); 
    t0=tt(i) ; tf=tt(i+1); 
    [q , ttt]=PolyTrajV(Qi,Qf,Vi,Vf,N,t0,tf);
    QQ=[QQ q]; %acumulacao dos ˆangulos
    t=[t ttt]; %acumulacao dos tempos
end

