clear
clc

%vertici   a b c d e f g h
p3d =    [ 0 1 1 0 0 1 1 0 ;   % x 
           0 0 0 0 1 1 1 1 ;   % y
           0 0 1 1 1 1 0 0 ];  % z
p3d = p3d*1000;     

connmatrix = [ 'r'  0   0   0   0   0   0   0  ;  %a origine
               'g' 'k'  0   0   0   0   0   0  ;  %b assw Xw
                0  'b' 'y'  0   0   0   0   0  ;  %c
               'r'  0  'b' 'g'  0   0   0   0  ;  %d asse Yw
                0   0   0  'b' 'b'  0   0   0  ;  %e
                0   0  'b'  0  'b' 'b'  0   0  ;  %f
                0  'b'  0   0   0  'b' 'b'  0  ;  %g
               'c'  0   0   0  'b'  0  'b' 'm' ]; %h asse Zw
           
kx=1;
ky=1; %piano immagine ha asse y rovescio
u=1000;
v=1000;
alt=2000;
lar=2000;

K=[ kx  0   1000    ;
    0   ky  1000    ;
    0   0      1    ];
f=1000;

% routo la telecamera per guardare nel verso di
% y entrante nel foglio
R=rotaz(pi/2, 0, 0);

%sposto la telecamera al centro della faccia
T=[500 0 500]';

%mi allontano "dal foglio"
T(2)=-2000;


[P2D, hidden] = camera_simulation...
    (R, T, p3d, K, f, alt, lar);

%ccdplot(P2D, hidden, connmatrix) 
axis([0, lar, 0, alt]);
ccdplot(P2D, hidden, connmatrix) 
axis([0, lar, 0, alt]);

for alpha=0:0.02:(2*pi)
    R=rotaz(pi/2, alpha, 0);
    
    [P2D, hidden] = camera_simulation...
    (R, T, p3d, K, f, alt, lar);
    axis([0, lar, 0, alt]);
    ccdplot(P2D, hidden, connmatrix) 
    axis([0, lar, 0, alt]);
    
    if min(hidden)
        disp('skip')
        pause(0.01)%corre di più s enon si vede nulla
    else        
        pause(0.1) 
    end
end

