% =============================================================
% Definicao da funcao Shoe
% =============================================================
syms u v;

f = u;

g = v;

h = ((1/3) * (u^3)) - ((1/2) * (v^2));

% =============================================================
% Geracao dos pontos da superficie
% =============================================================
piso_u = -2;
teto_u =  2;
piso_v = -2;
teto_v =  2;
delta_u = 0.2;
delta_v = 0.2;

if (piso_u > 0)
  m = (piso_u + teto_u) / delta_u + 1;
else
  m = (teto_u - piso_u) / delta_u + 1;
end

if (piso_v > 0)
  n = (piso_v + teto_v) / delta_v + 1;
else
  n = (teto_v - piso_v) / delta_v + 1;
end

VNEx = zeros(m,n);
VNEy = zeros(m,n);
VNEz = zeros(m,n);
VNA = zeros(m*n,3);

coluna = 1;

for u = piso_u : delta_u : teto_u
    linha = 1;
    for v = piso_v : delta_v : teto_v
        [P, VBu, VBv, VN, TM, TC] = elex_shoe(u,v);
        VNEx(linha,coluna) = VN(1);
        VNEy(linha,coluna) = VN(2);
        VNEz(linha,coluna) = VN(3);
    
        VNA( ( (linha-1) * n + (coluna-1) + 1), 1) = VNEx(linha,coluna);
        VNA( ( (linha-1) * n + (coluna-1) + 1), 2) = VNEy(linha,coluna);
        VNA( ( (linha-1) * n + (coluna-1) + 1), 3) = VNEz(linha,coluna);
        
        linha = linha + 1;
    end
    coluna = coluna+1;
end

%    VNA(linha) = [VNEx VNEy VNEz];

vanio_shoe;

Erro = zeros(m*n,1);

for i = 1 : 1 : m*n
    Erro(i) = dot(VNA(i),VNB(i));
    
end;

