55 lines
1.6 KiB
Matlab
55 lines
1.6 KiB
Matlab
function mesh = load_SBCmesh_dat(datFile)
|
|
%LOAD_SBCMESH_DAT Read SBCmesh.dat (1-based indices, same as MATLAB getMesh).
|
|
fid = fopen(datFile, 'r');
|
|
assert(fid > 0, 'Cannot open mesh file: %s', datFile);
|
|
|
|
tag = fscanf(fid, '%s', 1);
|
|
assert(strcmp(tag, 'NbrVertex'), 'Expected NbrVertex');
|
|
mesh.NbrVertex = fscanf(fid, '%d', 1);
|
|
tag = fscanf(fid, '%s', 1);
|
|
assert(strcmp(tag, 'Vertex'));
|
|
mesh.Vertex = reshape(fscanf(fid, '%f', mesh.NbrVertex * 3), 3, []).';
|
|
|
|
tag = fscanf(fid, '%s', 1);
|
|
assert(strcmp(tag, 'NbrTet'));
|
|
mesh.NbrTet = fscanf(fid, '%d', 1);
|
|
tag = fscanf(fid, '%s', 1);
|
|
assert(strcmp(tag, 'Tet'));
|
|
mesh.Tet = reshape(fscanf(fid, '%d', mesh.NbrTet * 4), 4, []).';
|
|
|
|
tag = fscanf(fid, '%s', 1);
|
|
assert(strcmp(tag, 'DomainOfTet'));
|
|
mesh.DomainOfTet = fscanf(fid, '%d', mesh.NbrTet);
|
|
|
|
tag = fscanf(fid, '%s', 1);
|
|
assert(strcmp(tag, 'NbrEdge'));
|
|
mesh.NbrEdge = fscanf(fid, '%d', 1);
|
|
tag = fscanf(fid, '%s', 1);
|
|
assert(strcmp(tag, 'Edge'));
|
|
fscanf(fid, '%f', mesh.NbrEdge * 2);
|
|
|
|
tag = fscanf(fid, '%s', 1);
|
|
assert(strcmp(tag, 'EdgeOfTet'));
|
|
mesh.EdgeOfTet = reshape(fscanf(fid, '%d', mesh.NbrTet * 6), 6, []).';
|
|
|
|
tag = fscanf(fid, '%s', 1);
|
|
assert(strcmp(tag, 'NbrTri'));
|
|
mesh.NbrTri = fscanf(fid, '%d', 1);
|
|
tag = fscanf(fid, '%s', 1);
|
|
assert(strcmp(tag, 'Tri'));
|
|
mesh.Tri = reshape(fscanf(fid, '%d', mesh.NbrTri * 3), 3, []).';
|
|
|
|
tag = fscanf(fid, '%s', 1);
|
|
assert(strcmp(tag, 'DomainOfTri'));
|
|
mesh.DomainOfTri = fscanf(fid, '%d', mesh.NbrTri);
|
|
|
|
if ~feof(fid)
|
|
tag = fscanf(fid, '%s', 1);
|
|
if strcmp(tag, 'ConnOfTri')
|
|
mesh.ConnOfTri = reshape(fscanf(fid, '%d', mesh.NbrTri * 2), 2, []).';
|
|
end
|
|
end
|
|
|
|
fclose(fid);
|
|
end
|