clear all
close all
clc


load("workspace_mesh3d.mat")

% MESH 3D
figure
trimesh(nova_connectivityList2,xmeshnova,zmesh,ymeshnova);
xlabel('x')
ylabel('y')
zlabel('z')
title('3D Delaunay Mesh')
xlim([min(xmeshnova)-5 max(xmeshnova)+5])
ylim([min(zmesh) max(zmesh)])
zlim([min(ymeshnova)-5 max(ymeshnova)+5])


faces_mesh3D = [xmeshnova(DT_mesh_3D.Faces(:,1)),zmesh(DT_mesh_3D.Faces(:,1)),ymeshnova(DT_mesh_3D.Faces(:,1)),...
                xmeshnova(DT_mesh_3D.Faces(:,2)),zmesh(DT_mesh_3D.Faces(:,2)),ymeshnova(DT_mesh_3D.Faces(:,2)),...
                xmeshnova(DT_mesh_3D.Faces(:,3)),zmesh(DT_mesh_3D.Faces(:,3)),ymeshnova(DT_mesh_3D.Faces(:,3))];

faces = DT_mesh_3D.Faces;


% [row3d,col3d] = find( faces_mesh3D(:,7) > 130.8 & faces_mesh3D(:,7) < 130.9);

% vetores
Vetores3d = abs([faces_mesh3D(:,[1:3])-faces_mesh3D(:,[4:6]),faces_mesh3D(:,[4:6])-faces_mesh3D(:,[7:9]),faces_mesh3D(:,[7:9])-faces_mesh3D(:,[1:3])]);


[vecrow1,veccol1] = find(Vetores3d(:,2) > 0.02);
[vecrow2,veccol2] = find(Vetores3d(:,5) > 0.02);
[vecrow3,veccol3] = find(Vetores3d(:,8) > 0.02);

vetoresremove = unique([vecrow1;vecrow2;vecrow3]);

connectivityList3D = zeros(size(faces,1),3);
for i=1:size(faces,1)
    if i~= vetoresremove
        connectivityList3D(i,:) = nova_connectivityList2(i,:);
    end
end



connectivityList3D(~any(connectivityList3D,2),:) = [];
figure
trimesh(connectivityList3D,xmeshnova,zmesh,ymeshnova)
xlim([min(xmeshnova)-5 max(xmeshnova)+5])
ylim([min(zmesh) max(zmesh)])
zlim([min(ymeshnova)-5 max(ymeshnova)+5])



figure
trimesh(nova_connectivityList2,xmeshnova,zmesh,ymeshnova)
hold on
plot3(faces_mesh3D(17417,1),faces_mesh3D(17417,2),faces_mesh3D(17417,3),'r*')
hold on
plot3(faces_mesh3D(17417,4),faces_mesh3D(17417,5),faces_mesh3D(17417,6),'r*')
hold on
plot3(faces_mesh3D(17417,7),faces_mesh3D(17417,8),faces_mesh3D(17417,9),'r*')
% xlim([125 135])
% ylim([1.32 1.45])
% zlim([90 100])






%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% MOSTRAR OS 3 VERTICES DA PRIMEIRA FACE
% figure
% trimesh(nova_connectivityList2,xmeshnova,zmesh,ymeshnova);
% hold on
% plot3(xmeshnova(faces_mesh3D(1,1)),zmesh(faces_mesh3D(1,1)),ymeshnova(faces_mesh3D(1,1)),'ro')
% hold on
% plot3(xmeshnova(faces_mesh3D(1,2)),zmesh(faces_mesh3D(1,2)),ymeshnova(faces_mesh3D(1,2)),'ro')
% hold on
% plot3(xmeshnova(faces_mesh3D(1,3)),zmesh(faces_mesh3D(1,3)),ymeshnova(faces_mesh3D(1,3)),'ro')
% xlim([min(xmeshnova)-5 max(xmeshnova)+5])
% ylim([min(zmesh) max(zmesh)])
% zlim([min(ymeshnova)-5 max(ymeshnova)+5])
% grid on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% % CONVERTER OS INDICES DOS VERTICES EM COORDENADAS (x,y,z)
% NFaces_3D = size(faces_mesh3D,1);
% matrix_vertices_coordenadas_3D = zeros([size(faces_mesh3D,1) 9]);
% for i=1:NFaces_3D
%     matrix_vertices_coordenadas_3D(i,:) = [xmeshnova(faces_mesh3D(i,1)) zmesh(faces_mesh3D(i,1)) ymeshnova(faces_mesh3D(i,1)) ...
%         xmeshnova(faces_mesh3D(i,2)) zmesh(faces_mesh3D(i,2)) ymeshnova(faces_mesh3D(i,2)) ...
%         xmeshnova(faces_mesh3D(i,3)) zmesh(faces_mesh3D(i,3)) ymeshnova(faces_mesh3D(i,3)) ];
% end
% 
% % SEPARAR A MATRIZ DOS VERTICES EM CADA UM DOS VERTICES
% primeiro_vertice_coord_3D = [matrix_vertices_coordenadas_3D(:,1) matrix_vertices_coordenadas_3D(:,2) matrix_vertices_coordenadas_3D(:,3)];
% segundo_vertice_coord_3D = [matrix_vertices_coordenadas_3D(:,4) matrix_vertices_coordenadas_3D(:,5) matrix_vertices_coordenadas_3D(:,6)];
% terceiro_vertice_coord_3D = [matrix_vertices_coordenadas_3D(:,7) matrix_vertices_coordenadas_3D(:,8) matrix_vertices_coordenadas_3D(:,9)];
%  
% 
% 
% 
% mesh3d_xmin = 251;
% mesh3d_xmax = 329;
% mesh3d_ymin = 173;
% mesh3d_ymax = 186;
% mesh3d_zmin = 1.39;
% mesh3d_zmax = 1.5;
% 
% [faces_altas_row,faces_altas_col] = find(matrix_vertices_coordenadas_3D(:,[1 4 7]) > mesh3d_xmin & matrix_vertices_coordenadas_3D(:,[1 4 7]) < mesh3d_xmax & ...
%                    matrix_vertices_coordenadas_3D(:,[2 5 8]) > mesh3d_zmin & matrix_vertices_coordenadas_3D(:,[2 5 8]) < mesh3d_zmax & ...
%                    matrix_vertices_coordenadas_3D(:,[3 6 9]) > mesh3d_ymin & matrix_vertices_coordenadas_3D(:,[3 6 9]) < mesh3d_ymax);
% 
% 
% 
% faces_altas_row = unique(faces_altas_row);
% 
% nova_connectivityList3 = zeros(size(nova_connectivityList2,1),3);
% for i=1:size(nova_connectivityList2,1)
%     if i~= faces_altas_row
%         nova_connectivityList3(i,:) = nova_connectivityList2(i,:);
%     end
% end
% 
% nova_connectivityList3(~any(nova_connectivityList3,2),:) = [];
% 
% figure
% trimesh(nova_connectivityList3,xmeshnova,zmesh,ymeshnova)
% xlim([min(xmeshnova)-5 max(xmeshnova)+5])
% ylim([min(zmesh) max(zmesh)])
% zlim([min(ymeshnova)-5 max(ymeshnova)+5])
% grid on
% title('Modified 3D Delaunay Mesh')
% 
% 
% 
% 
% testevetoresemcima = matrix_vertices_coordenadas_3D(faces_altas_row,:);
% 
% 
% 
% 
% 
% 
% vetores_arestas = zeros(size(matrix_vertices_coordenadas_3D,1),9);
% primeiro_vetor = zeros(size(matrix_vertices_coordenadas_3D,1),3);
% segundo_vetor = zeros(size(matrix_vertices_coordenadas_3D,1),3);
% terceiro_vetor = zeros(size(matrix_vertices_coordenadas_3D,1),3);
% NPontos = size(matrix_vertices_coordenadas_3D,1);
% for i=1:size(testevetoresemcima,1)
%     primeiro_vetor(i,:) = testevetoresemcima(i,1:3)-testevetoresemcima(i,4:6);
%     segundo_vetor(i,:) = testevetoresemcima(i,4:6)-testevetoresemcima(i,7:9);
%     terceiro_vetor(i,:) = testevetoresemcima(i,7:9)-testevetoresemcima(i,1:3);
% 
%     vetores_arestas = [primeiro_vetor,segundo_vetor,terceiro_vetor];
% end

% CALCULAR AREAS DOS TRIANGULOS DA MESH 3D
% AreaP1P2P3 = zeros([size(faces_mesh3D,1) 1]);
% for i=1:NFaces_3D
%     AreaP1P2P3(i) = 1/2*norm(cross(segundo_vertice_coord_3D(i,:)-primeiro_vertice_coord_3D(i,:),terceiro_vertice_coord_3D(i,:)-primeiro_vertice_coord_3D(i,:)));
% end

% % CALCULAR O COMPRIMENTO DE CADA ARESTA DA MESH 3D
% distancias_arestas_3D = zeros([size(faces_mesh3D,1) 3]);
% for i=1:NFaces_3D
%     distancias_arestas_3D(i,:) = [norm(segundo_vertice_coord_3D(i,:)-primeiro_vertice_coord_3D(i,:)) 
%                                   norm(terceiro_vertice_coord_3D(i,:)-segundo_vertice_coord_3D(i,:)) 
%                                   norm(primeiro_vertice_coord_3D(i,:)-terceiro_vertice_coord_3D(i,:))];
% end


% % ARESTAS GRANDES E AREAS GRANDES
% % ROW E COL (INDEX) DAS ARESTAS GRANDES
% arestas_grandes_row_3D = find(distancias_arestas_3D > 8 & distancias_arestas_3D < 9);

% triangulos com areas muito grandes
% areas_grandes_3D = find(AreaP1P2P3 > 8);

% INDICES DOS TRIANGULOS COM AREAS E ARESTAS GRANDES
% triangulos_remove_3D = [arestas_grandes_row_3D;areas_grandes_3D];
% triangulos_remove_3D = [arestas_grandes_row_3D];


% % CRIAR NOVA CONNECTIVITY LIST PARA REMOVER TRIANGULOS C/AREA GRANDE
% NConnectivity_3D = size(faces_mesh3D,1);
% nova_connectivityList_3D = zeros(size(faces_mesh3D,1),3);
% for i=1:NConnectivity_3D
%     if i ~= arestas_grandes_row_3D
%         nova_connectivityList_3D(i,:) = nova_connectivityList2(i,:);
%     end
% end
% 
% % REMOVER ZEROS DA CONNECTIVITY LIST
% nova_connectivityList_3D(~any(nova_connectivityList_3D,2),:) = [];


% % FAZER A VISUALIZAÇAO DA MESH 3D "ORIGINAL"
% figure
% trimesh(nova_connectivityList2,xmeshnova,zmesh,ymeshnova);
% xlim([min(xmeshnova)-5 max(xmeshnova)+5])
% ylim([min(zmesh) max(zmesh)])
% zlim([min(ymeshnova)-5 max(ymeshnova)+5])
% grid on
% title('Original 3D Delaunay Mesh')
% 
% 
% % FAZER A VISUALIZAÇAO DA MESH 3D MODIFICADA
% figure
% trimesh(nova_connectivityList_3D,xmeshnova,zmesh,ymeshnova)
% xlim([min(xmeshnova)-5 max(xmeshnova)+5])
% ylim([min(zmesh) max(zmesh)])
% zlim([min(ymeshnova)-5 max(ymeshnova)+5])
% grid on
% title('Modified 3D Delaunay Mesh')


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% TENTAR ENCONTRAR VETORES DAS ARESTAS %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



% 
% % CONVERTER COORDENADAS DOS VERTICES EM VETORES
% vetores_arestas1 = zeros(size(matrix_vertices_coordenadas_3D,1),9);
% primeiro_vetor1 = zeros(size(matrix_vertices_coordenadas_3D,1),3);
% segundo_vetor1 = zeros(size(matrix_vertices_coordenadas_3D,1),3);
% terceiro_vetor1 = zeros(size(matrix_vertices_coordenadas_3D,1),3);
% NPontos1 = size(matrix_vertices_coordenadas_3D,1);
% for i=1:NPontos1
%     primeiro_vetor1(i,:) = matrix_vertices_coordenadas_3D(i,1:3)-matrix_vertices_coordenadas_3D(i,4:6);
%     segundo_vetor1(i,:) = matrix_vertices_coordenadas_3D(i,4:6)-matrix_vertices_coordenadas_3D(i,7:9);
%     terceiro_vetor1(i,:) = matrix_vertices_coordenadas_3D(i,7:9)-matrix_vertices_coordenadas_3D(i,1:3);
% 
%     vetores_arestas1 = [primeiro_vetor,segundo_vetor,terceiro_vetor];
% end
% 
% 
% 
% % CONVERTER VETORES A 0 CASO Z=0
% for i=1:size(matrix_vertices_coordenadas_3D,1)
%     if vetores_arestas(i,2) == 0
%         vetores_arestas(i,1:3) = 0;
%     elseif vetores_arestas(i,5) == 0
%         vetores_arestas(i,4:6) = 0;
%     elseif vetores_arestas(i,8) == 0
%         vetores_arestas(i,7:9) = 0;
%     end
% end
% 
% 
% % CONVERTER O TRIANGULO TODO (COM Z=0 ANTERIOR) A 0
% for i=1:size(vetores_arestas,1)
%     if vetores_arestas(i,1:3) == 0
%         vetores_arestas(i,:) = 0;
%     elseif vetores_arestas(i,4:6) == 0
%         vetores_arestas(i,:) = 0;
%     elseif vetores_arestas(i,7:9) == 0
%         vetores_arestas(i,:) = 0;
%     end
% end
% 
% 
% [vetores_comZrow,vetores_comZcol] = find(vetores_arestas ~= 0);
% 
% 
% 
% vetores_comZrow = unique(vetores_comZrow);
% 
% 
% 
% 
% 
% 
% 
% 
% 
% 
% index_vetor1 = find(primeiro_vetor(:,2) ~= 0);
% index_vetor2 = find(segundo_vetor(:,2) ~= 0);
% index_vetor3 = find(terceiro_vetor(:,2) ~= 0);
% 
% vetor1_comZ = abs(primeiro_vetor(index_vetor1,1:3));
% vetor2_comZ = abs(segundo_vetor(index_vetor2,1:3));
% vetor3_comZ = abs(terceiro_vetor(index_vetor3,1:3));
% 
% 
% 
% vetor1_grande = find(vetor1_comZ(:,2) > 0.067);
% vetor2_grande = find(vetor2_comZ(:,2) > 0.067);
% vetor3_grande = find(vetor3_comZ(:,2) > 0.067);
% 
% 
% triangulos_com_vetores_aRemover = unique([index_vetor1;index_vetor2;index_vetor3]);
% 
% 
% 
% nova_connectivityList_3D_vetores = zeros(size(nova_connectivityList2,1),3);
% for i=1:NPontos
%     if i == triangulos_com_vetores_aRemover
%         nova_connectivityList_3D_vetores(i,:) = nova_connectivityList2(i,:);
%     end
% end
% 
% % REMOVER ZEROS DA CONNECTIVITY LIST
% nova_connectivityList_3D_vetores(~any(nova_connectivityList_3D_vetores,2),:) = [];
% 
% 
% 
% 
% figure
% trimesh(nova_connectivityList_3D_vetores,xmeshnova,zmesh,ymeshnova)
% xlim([min(xmeshnova)-5 max(xmeshnova)+5])
% ylim([min(zmesh) max(zmesh)])
% zlim([min(ymeshnova)-5 max(ymeshnova)+5])
% grid on
% title('Modified 3D Delaunay Mesh')
% 
% 
% 
% 
% 
% 
% 
% 
% figure
% voronoi(xmeshnova,ymeshnova,DT.ConnectivityList);
% xlim([min(xmeshnova)-5 max(xmeshnova)+5])
% ylim([min(ymeshnova)-5 max(ymeshnova)+5])








% figure
% plot3(primeiro_vertice_coord_3D(1,1),primeiro_vertice_coord_3D(1,2),primeiro_vertice_coord_3D(1,3),'r.')
% xlim([min(xmeshnova)-5 max(xmeshnova)+5])
% ylim([min(zmesh) max(zmesh)])
% zlim([min(ymeshnova)-5 max(ymeshnova)+5])
% grid on
% hold on
% plot3(segundo_vertice_coord_3D(1,1),segundo_vertice_coord_3D(1,2),segundo_vertice_coord_3D(1,3),'r.')
% hold on
% plot3(terceiro_vertice_coord_3D(1,1),terceiro_vertice_coord_3D(1,2),terceiro_vertice_coord_3D(1,3),'r.')

% triangulo 1
% 
% vetores_arestas = zeros(size(faces_mesh3D,1),9);
% AB = zeros(size(faces_mesh3D,1),3);
% BC = zeros(size(faces_mesh3D,1),3);
% CA = zeros(size(faces_mesh3D,1),3);
% for i=1:NFaces_3D
%     AB(i,:) = matrix_vertices_coordenadas_3D(i,1:3) - matrix_vertices_coordenadas_3D(i,4:6);
%     BC(i,:) = matrix_vertices_coordenadas_3D(i,4:6) - matrix_vertices_coordenadas_3D(i,7:9);
%     CA(i,:) = matrix_vertices_coordenadas_3D(i,7:9) - matrix_vertices_coordenadas_3D(i,1:3);
%     vetores_arestas(i,:) = [AB(i,:),BC(i,:),CA(i,:)];
%     
%     if vetores_arestas(i,3) == 0 || vetores_arestas(i,6) == 0 || vetores_arestas(i,9) == 0
%         vetores_arestas(i,:) = [];
%     end
% end
% 
% 
% 
% 
% indices_vetores = find(vetores_arestas~=0);
% 
% 
% % CRIAR NOVA CONNECTIVITY LIST
% NConnectivity_3D1 = size(faces_mesh3D,1);
% nova_connectivityList_3D1 = zeros(size(faces_mesh3D,1),3);
% for i=1:NConnectivity_3D1
%     if i ~= indices_vetores
%         nova_connectivityList_3D1(i,:) = [nova_connectivityList2(i,:)];
%     end
% end
% 
% % REMOVER ZEROS DA CONNECTIVITY LIST
% nova_connectivityList_3D1(~any(nova_connectivityList_3D1,2),:) = [];
% 
% 
% figure
% trimesh(nova_connectivityList_3D1,xmeshnova,zmesh,ymeshnova)
% xlim([min(xmeshnova)-5 max(xmeshnova)+5])
% ylim([min(zmesh) max(zmesh)])
% zlim([min(ymeshnova)-5 max(ymeshnova)+5])
% grid on
% title('Modified 3D Delaunay Mesh')
% 
% 
% 
% 
% lim_primeiroV = find(primeiro_vertice_coord_3D(:,1) > 250 & primeiro_vertice_coord_3D(:,1) < 300 & ...
%     primeiro_vertice_coord_3D(:,2) > 1.38 & primeiro_vertice_coord_3D(:,2) < 1.5 & ...
%     primeiro_vertice_coord_3D(:,3) > 160 & primeiro_vertice_coord_3D(:,3) < 200);
% 
% lim_segundoV = find(segundo_vertice_coord_3D(:,1) > 250 & segundo_vertice_coord_3D(:,1) < 300 & ...
%     segundo_vertice_coord_3D(:,2) > 1.38 & segundo_vertice_coord_3D(:,2) < 1.5 & ...
%     segundo_vertice_coord_3D(:,3) > 160 & segundo_vertice_coord_3D(:,3) < 200);
% 
% lim_terceiroV = find(terceiro_vertice_coord_3D(:,1) > 250 & terceiro_vertice_coord_3D(:,1) < 300 & ...
%     terceiro_vertice_coord_3D(:,2) > 1.38 & terceiro_vertice_coord_3D(:,2) < 1.5 & ...
%     terceiro_vertice_coord_3D(:,3) > 160 & terceiro_vertice_coord_3D(:,3) < 200);
% 
% 
% novospontos = matrix_vertices_coordenadas_3D(lim_terceiroV,:);
% 
% figure
% trimesh(nova_connectivityList2,xmeshnova,zmesh,ymeshnova);
% xlim([min(xmeshnova)-5 max(xmeshnova)+5])
% ylim([min(zmesh) max(zmesh)])
% zlim([min(ymeshnova)-5 max(ymeshnova)+5])
% grid on
% hold on
% plot3(novospontos(1,1),novospontos(1,2),novospontos(1,3),'*r')
% hold on
% plot3(novospontos(1,4),novospontos(1,5),novospontos(1,6),'*g')
% hold on
% plot3(novospontos(1,7),novospontos(1,8),novospontos(1,9),'*b')
% 
% 
% 
% 
% ponto1 = [novospontos(1,1),novospontos(1,2),novospontos(1,3)];
% ponto2 = [novospontos(1,4),novospontos(1,5),novospontos(1,6)];
% ponto3 = [novospontos(1,7),novospontos(1,8),novospontos(1,9)];
% 
% 
% AB = ponto1 - ponto2;
% BC = ponto2 - ponto3;
% CA = ponto3 - ponto1;
% 
% % vetores_arestas = zeros(size(faces_mesh3D,1),18);
% % for i=1:NFaces_3D
% %     vetores_arestas(i,:) = [segundo_vertice_coord_3D(i,1)-primeiro_vertice_coord_3D(i,1),...
% %                             segundo_vertice_coord_3D(i,2)-primeiro_vertice_coord_3D(i,2),...
% %                             segundo_vertice_coord_3D(i,3)-primeiro_vertice_coord_3D(i,3),...
% %                             segundo_vertice_coord_3D(i,1)-terceiro_vertice_coord_3D(i,1),...
% %                             segundo_vertice_coord_3D(i,2)-terceiro_vertice_coord_3D(i,2),...
% %                             segundo_vertice_coord_3D(i,3)-terceiro_vertice_coord_3D(i,3)...
% %                             terceiro_vertice_coord_3D(i,1)-primeiro_vertice_coord_3D(i,1),...
% %                             terceiro_vertice_coord_3D(i,2)-primeiro_vertice_coord_3D(i,2),...
% %                             terceiro_vertice_coord_3D(i,3)-primeiro_vertice_coord_3D(i,3)...
% %                             segundo_vertice_coord_3D(i,1)-primeiro_vertice_coord_3D(i,1),...
% %                             segundo_vertice_coord_3D(i,2)-primeiro_vertice_coord_3D(i,2),...
% %                             segundo_vertice_coord_3D(i,3)-primeiro_vertice_coord_3D(i,3),...
% %                             segundo_vertice_coord_3D(i,1)-terceiro_vertice_coord_3D(i,1),...
% %                             segundo_vertice_coord_3D(i,2)-terceiro_vertice_coord_3D(i,2),...
% %                             segundo_vertice_coord_3D(i,3)-terceiro_vertice_coord_3D(i,3)...
% %                             terceiro_vertice_coord_3D(i,1)-primeiro_vertice_coord_3D(i,1),...
% %                             terceiro_vertice_coord_3D(i,2)-primeiro_vertice_coord_3D(i,2),...
% %                             terceiro_vertice_coord_3D(i,3)-primeiro_vertice_coord_3D(i,3)];
% %     if vetores_arestas(i,3) == 0 || vetores_arestas(i,6) == 0 || vetores_arestas(i,9) == 0
% %         vetores_arestas(i,:) = [];
% %     end
% %     vetores_arestas(~any(vetores_arestas,2),:) = [];
% % end
% 
% 
% 
% % vetores_arestas1 = zeros(size(faces_mesh3D,1),18);
% % for i=1:NFaces_3D
% %     vetores_arestas1(i,:) = [primeiro_vertice_coord_3D(i,1)-segundo_vertice_coord_3D(i,1),...
% %                             primeiro_vertice_coord_3D(i,2)-segundo_vertice_coord_3D(i,2),...
% %                             primeiro_vertice_coord_3D(i,3)-segundo_vertice_coord_3D(i,3),...
% %                             terceiro_vertice_coord_3D(i,1)-segundo_vertice_coord_3D(i,1),...
% %                             terceiro_vertice_coord_3D(i,2)-segundo_vertice_coord_3D(i,2),...
% %                             terceiro_vertice_coord_3D(i,3)-segundo_vertice_coord_3D(i,3)...
% %                             primeiro_vertice_coord_3D(i,1)-terceiro_vertice_coord_3D(i,1),...
% %                             primeiro_vertice_coord_3D(i,2)-terceiro_vertice_coord_3D(i,2),...
% %                             primeiro_vertice_coord_3D(i,3)-terceiro_vertice_coord_3D(i,3)...
% %                             primeiro_vertice_coord_3D(i,1)-segundo_vertice_coord_3D(i,1),...
% %                             primeiro_vertice_coord_3D(i,2)-segundo_vertice_coord_3D(i,2),...
% %                             primeiro_vertice_coord_3D(i,3)-segundo_vertice_coord_3D(i,3),...
% %                             terceiro_vertice_coord_3D(i,1)-segundo_vertice_coord_3D(i,1),...
% %                             terceiro_vertice_coord_3D(i,2)-segundo_vertice_coord_3D(i,2),...
% %                             terceiro_vertice_coord_3D(i,3)-segundo_vertice_coord_3D(i,3)...
% %                             primeiro_vertice_coord_3D(i,1)-terceiro_vertice_coord_3D(i,1),...
% %                             primeiro_vertice_coord_3D(i,2)-terceiro_vertice_coord_3D(i,2),...
% %                             primeiro_vertice_coord_3D(i,3)-terceiro_vertice_coord_3D(i,3)];
% %     if vetores_arestas1(i,3) == 0 || vetores_arestas1(i,6) == 0 || vetores_arestas1(i,9) == 0 || vetores_arestas1(i,12) == 0 || vetores_arestas1(i,15) == 0 || vetores_arestas1(i,18) == 0
% %         vetores_arestas1(i,:) = [];
% %     end
% %     vetores_arestas1(~any(vetores_arestas1,2),:) = [];
% % end
% 
% 
% % vetores_todos = [vetores_arestas;vetores_arestas];
% 
% 
% % [row_vetor,col_vetor] = find(vetores_todos);
% 
% 
% 
% % % CRIAR NOVA CONNECTIVITY LIST
% % NConnectivity_3D1 = size(faces_mesh3D,1);
% % nova_connectivityList_3D1 = zeros(size(faces_mesh3D,1),3);
% % for i=1:NConnectivity_3D1
% %     if i ~= row_vetor
% %         nova_connectivityList_3D1(i,:) = [nova_connectivityList2(i,:)];
% %     end
% % end
% % 
% % % REMOVER ZEROS DA CONNECTIVITY LIST
% % nova_connectivityList_3D1(~any(nova_connectivityList_3D1,2),:) = [];
% 
% 
% % figure
% % trimesh(nova_connectivityList_3D1,xmeshnova,zmesh,ymeshnova)
% % xlim([min(xmeshnova)-5 max(xmeshnova)+5])
% % ylim([min(zmesh) max(zmesh)])
% % zlim([min(ymeshnova)-5 max(ymeshnova)+5])
% % grid on
% % title('Modified 3D Delaunay Mesh')