% Correspondence points
Xcorr = [-2 -2 2; -3 2 -2.5; -1 -2 2; -1 1 2; 0 4 2.5; 1 1 2; 2 -2 -2; 3 2 -2.5]';
Xcorr = [Xcorr; ones(1,size(Xcorr,2))];

% Affine transformed points
Xcube_ = [
   -2.9000 -2.1000 1.9000  1.1000 -2.9000 -2.5000 -1.7000 2.3000  1.5000 -2.5000 -1.7000 -2.1000 1.9000 2.3000 2.3000  1.5000  1.1000 1.9000;
   -0.7000  3.3000 2.5000 -1.5000 -0.7000 -1.5000  2.5000 1.7000 -2.3000 -1.5000  2.5000  3.3000 2.5000 1.7000 1.7000 -2.3000 -1.5000 2.5000;
    1.0000  1.0000 1.0000  1.0000  1.0000  1.0000  1.0000 1.0000  1.0000  1.0000  1.0000  1.0000 1.0000 1.0000 1.0000  1.0000  1.0000 1.0000];
Xdoor_ = [
   -1.9000   -1.3000    0.7000    0.1000   -1.9000;
   -0.9000    2.1000    1.7000   -1.3000   -0.9000;
    1.0000    1.0000    1.0000    1.0000    1.0000];
Xroof_ = [
   -3.1500    0.2500    0.7500    0.2500    2.8500    3.3500    2.8500   -3.1500   -2.6500    0.7500    3.3500   -2.6500;
    3.6000    5.0000    4.0000    5.0000    2.4000    1.4000    2.4000    3.6000    2.6000    4.0000    1.4000    2.6000;
    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000];
Xcorr_ = [
   -2.9000   -2.6500   -1.9000   -1.3000    0.2500    0.7000    1.5000    3.3500;
   -0.7000    2.6000   -0.9000    2.1000    5.0000    1.7000   -2.3000    1.4000;
    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000];

% Plot of model
figure;
plot(Xcube_(1,:),Xcube_(2,:),'b-', ...
     Xdoor_(1,:),Xdoor_(2,:),'g-', ...
     Xroof_(1,:),Xroof_(2,:),'r-', ...
     Xcorr_(1,:),Xcorr_(2,:),'kx');
for i = 1:size(Xcorr,2)
  text(Xcorr_(1,i)-.25,Xcorr_(2,i)-.25,num2str(i));
end
