% Leggi i dati di triangolazione forniti da 'easymesh'
% I dati vengono convertiti in un formato compatibile con 'triangle':
%	- num. nodi da 1 a n_nod
%	- num. lati da 1 a n_sid
%	- num. elementi da 1 a n_ele
%	- correzione orientamento lati al contorno
%
% Versione 30 maggio 1997 - M. Politi
% - modificata per 'Esempio_2D' (12/7/2005)
%

function [node, n_nod, side, n_sid, elem, n_ele] = Get_em_data(nomef)

subdir = '';

%
% leggi file dati
%

nomefx = [subdir nomef '.n'];		% file .n
fid = fopen(nomefx, 'r');
n_nod = fscanf(fid, '%i', 1);
%		     n:  x  y  m
node = fscanf(fid, '%i: %g %g %i', [4, n_nod]);
node = node.';

nomefx = [subdir nomef '.s'];		% file .s
fid = fopen(nomefx, 'r');
n_sid = fscanf(fid, '%i', 1);
%		     s: n1 n2 ea eb  m
side = fscanf(fid, '%i: %i %i %i %i %i', [6, n_sid]);
side = side.';

nomefx = [subdir nomef '.e'];		% file .e
fid = fopen(nomefx, 'r');
n_ele = fscanf(fid, '%i', 1);
%		     e: n1 n2 n3 e1 e2 e3 s1 s2 s3 xV yV  m
elem = fscanf(fid, '%i: %i %i %i %i %i %i %i %i %i %g %g %i ', [13, n_ele]);
elem = elem.';

%
% modifica orientamento lati esterni (lati duali uscenti)
%

ind = find(side(:,4) == -1);

aux = side(ind,2);
side(ind,2) = side(ind,3);
side(ind,3) = aux;

aux = side(ind,4);
side(ind,4) = side(ind,5);
side(ind,5) = aux;

%
% modifica numerazione (da 1 a N invece che da 0 a N-1)
%

node(:,1) = node(:,1) + 1;		% nodi

side(:,1:4) = side(:,1:4) + 1;		% lati
ind = find(side(:,5) ~= -1);
side(ind,5) = side(ind,5) + 1;

elem(:,1:4) = elem(:,1:4) + 1;		% elementi
ind = find(elem(:,5) ~= -1);
elem(ind,5) = elem(ind,5) + 1;
ind = find(elem(:,6) ~= -1);
elem(ind,6) = elem(ind,6) + 1;
ind = find(elem(:,7) ~= -1);
elem(ind,7) = elem(ind,7) + 1;
elem(:,8:10) = elem(:,8:10) + 1;
