%-----------------------------------------------------------
% Carlos Cabral 2003 - Dep.UA

% funçao para calcular a distancia entre o ponto de intercepçao das duas rectas e a recta definida pelos dois pontos extremos da feature
% (com o valor da distancia é possivel classificar a feature quanto à convexidade da mesma)
%----------------------------------------------------------

function [distancia]=DIST4CONV(cart_data, segmento, indexofconsider, k5)

    %--------------------------------------------------------------------------------------
    %local para verificar se o conjunto das duas recta apresenta-se como concavo ou convexo
    z_vi=cart_data(segmento(indexofconsider(k5),1),:)'- cart_data(segmento(indexofconsider(k5),2),:)';
    Mod_z_vi=sqrt(z_vi(1)^2+z_vi(2)^2); %dist. euclidiana entre o ponto inicial e outro ponto
    Ang_z_vi=atan2(z_vi(2),z_vi(1));

    % definir o vector ortogonal à recta
    Ang_segm=atan2(cart_data(segmento(indexofconsider(k5)+1,2),2)-cart_data(segmento(indexofconsider(k5),1),2),cart_data(segmento(indexofconsider(k5)+1,2),1)-cart_data(segmento(indexofconsider(k5),1),1));
    u_i=[cos(Ang_segm+pi/2); sin(Ang_segm+pi/2)];
    Mod_u_i=sqrt(u_i(1)^2+u_i(2)^2);
    Ang_u_i=atan2(u_i(2),u_i(1));

    %a distancia é então o produto interno entre estes dois vectores
    distancia=Mod_u_i*Mod_z_vi*cos(Ang_u_i-Ang_z_vi);