function PlotScene(N0,Ni,d0,di,varargin)
i=1;
color=[52 217 160]/255;str='';
while i<length(varargin)
  if isequal(varargin{i},'string')
    i=i+1;
    str=[ '-' varargin{i}];
  end
  if isequal(varargin{i},'color')
    i=i+1;
    color= varargin{i};
    color=color*norm(color)^-1;
  end
   i=i+1; 
end
tam=0.5;
Wref=eye(4);

S0=ReflectTransf(N0,d0);

PlotCam(eye(4),Wref, tam, 'string',['S0' str]);
PlotCam(S0, Wref, tam, 'string',['C' str],'color',color );
% PlotPlane([N0 N0*d0],0.5*tam);
hold on
quiver3(0,0,0,N0(1),N0(2),N0(3),2*d0);

for i=1:size(Ni,2)
%reflection
  Si=ReflectTransf(Ni(:,i),di(i));
  Ti=S0*Si;
%plot cameras
  PlotCam(Ti, Wref, tam, 'string',['S' num2str(i) str]);
  hold on
  ni=Ti(1:3,1:3)*Ni(:,i);
  quiver3(Ti(1,4),Ti(2,4),Ti(3,4),ni(1),ni(2),ni(3),2*di(i));
%   PlotPlane([ni Ti(1:3,4)+ni*di(i) ],0.5*tam);
end




