jalec 64cc763dd8 compiles on mac (bug fix in upsample) 13 years ago
..
matlab 1f70076a7a fixed optimization flags in some Makefiles, tetgen wraper, launch medit, mosek wrapper 13 years ago
mosek 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
tetgen 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
EPS.cpp bd4d115fea major reorganization of directory structure 13 years ago
EPS.h bd4d115fea major reorganization of directory structure 13 years ago
MCTables.hh 9f80dbdd02 minor updates to marching cubes 13 years ago
ONE.h bd4d115fea major reorganization of directory structure 13 years ago
PI.h bd4d115fea major reorganization of directory structure 13 years ago
ReAntTweakBar.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
ReAntTweakBar.h 98be5f8569 fixed bug in render to tga 13 years ago
Timer.h 0c1a1ad9f5 added clock tick precision to the timer (macosx) 13 years ago
ZERO.h bd4d115fea major reorganization of directory structure 13 years ago
adjacency_list.cpp 21f9758feb added a few specializations 13 years ago
adjacency_list.h bd4d115fea major reorganization of directory structure 13 years ago
adjacency_matrix.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
adjacency_matrix.h bd4d115fea major reorganization of directory structure 13 years ago
all_pairs_distances.cpp bd4d115fea major reorganization of directory structure 13 years ago
all_pairs_distances.h bd4d115fea major reorganization of directory structure 13 years ago
axis_angle_to_quat.cpp bd4d115fea major reorganization of directory structure 13 years ago
axis_angle_to_quat.h bd4d115fea major reorganization of directory structure 13 years ago
basename.cpp bd4d115fea major reorganization of directory structure 13 years ago
basename.h bd4d115fea major reorganization of directory structure 13 years ago
boundary_faces.cpp bd4d115fea major reorganization of directory structure 13 years ago
boundary_faces.h 778c042ccf explicit templates matlab workspace and last commit before hunting bug in alec's skinning 13 years ago
canonical_quaternions.cpp bd4d115fea major reorganization of directory structure 13 years ago
canonical_quaternions.h bd4d115fea major reorganization of directory structure 13 years ago
cat.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
cat.h bd4d115fea major reorganization of directory structure 13 years ago
cocoa_key_to_anttweakbar_key.cpp 1d90da86f8 unproject to zero plane 13 years ago
cocoa_key_to_anttweakbar_key.h bd4d115fea major reorganization of directory structure 13 years ago
colon.cpp bd4d115fea major reorganization of directory structure 13 years ago
colon.h bd4d115fea major reorganization of directory structure 13 years ago
concat.cpp bd4d115fea major reorganization of directory structure 13 years ago
concat.h bd4d115fea major reorganization of directory structure 13 years ago
cotangent.cpp 1f7f30930c changed templates for tt to enable different types for F and TT,TTi (F might be unsigned but TT has to contain -1's) 13 years ago
cotangent.h bd4d115fea major reorganization of directory structure 13 years ago
cotmatrix.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
cotmatrix.h bd4d115fea major reorganization of directory structure 13 years ago
create_index_vbo.cpp bd4d115fea major reorganization of directory structure 13 years ago
create_index_vbo.h 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
create_mesh_vbo.cpp bd4d115fea major reorganization of directory structure 13 years ago
create_mesh_vbo.h 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
create_shader_program.cpp bd4d115fea major reorganization of directory structure 13 years ago
create_shader_program.h 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
create_vector_vbo.cpp bd4d115fea major reorganization of directory structure 13 years ago
create_vector_vbo.h 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
cross.cpp bd4d115fea major reorganization of directory structure 13 years ago
cross.h bd4d115fea major reorganization of directory structure 13 years ago
destroy_shader_program.cpp 9e49a8d87b fixed verbose and merged 13 years ago
destroy_shader_program.h 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
diag.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
diag.h b46010fc5f massmatrix 13 years ago
dirname.cpp 9e49a8d87b fixed verbose and merged 13 years ago
dirname.h bd4d115fea major reorganization of directory structure 13 years ago
dot.cpp bd4d115fea major reorganization of directory structure 13 years ago
dot.h bd4d115fea major reorganization of directory structure 13 years ago
edge_lengths.cpp bd4d115fea major reorganization of directory structure 13 years ago
edge_lengths.h bd4d115fea major reorganization of directory structure 13 years ago
edges.cpp bd4d115fea major reorganization of directory structure 13 years ago
edges.h bd4d115fea major reorganization of directory structure 13 years ago
edgetopology.cpp e1121d7171 fixed implementation of edge topology 13 years ago
edgetopology.h e1121d7171 fixed implementation of edge topology 13 years ago
example_fun.cpp bd4d115fea major reorganization of directory structure 13 years ago
example_fun.h bd4d115fea major reorganization of directory structure 13 years ago
face_occurences.cpp bd4d115fea major reorganization of directory structure 13 years ago
face_occurences.h bd4d115fea major reorganization of directory structure 13 years ago
faces_first.cpp 1f70076a7a fixed optimization flags in some Makefiles, tetgen wraper, launch medit, mosek wrapper 13 years ago
faces_first.h 1f70076a7a fixed optimization flags in some Makefiles, tetgen wraper, launch medit, mosek wrapper 13 years ago
file_contents_as_string.cpp bd4d115fea major reorganization of directory structure 13 years ago
file_contents_as_string.h bd4d115fea major reorganization of directory structure 13 years ago
file_exists.cpp bd4d115fea major reorganization of directory structure 13 years ago
file_exists.h bd4d115fea major reorganization of directory structure 13 years ago
find.cpp 98be5f8569 fixed bug in render to tga 13 years ago
find.h 98be5f8569 fixed bug in render to tga 13 years ago
full.cpp bd4d115fea major reorganization of directory structure 13 years ago
full.h bd4d115fea major reorganization of directory structure 13 years ago
get_seconds.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
get_seconds.h bd4d115fea major reorganization of directory structure 13 years ago
get_seconds_hires.cpp bd4d115fea major reorganization of directory structure 13 years ago
get_seconds_hires.h bd4d115fea major reorganization of directory structure 13 years ago
gl_type_size.cpp bd4d115fea major reorganization of directory structure 13 years ago
gl_type_size.h bd4d115fea major reorganization of directory structure 13 years ago
grad.cpp bd4d115fea major reorganization of directory structure 13 years ago
grad.h bd4d115fea major reorganization of directory structure 13 years ago
harwell_boeing.cpp 98be5f8569 fixed bug in render to tga 13 years ago
harwell_boeing.h 98be5f8569 fixed bug in render to tga 13 years ago
igl_inline.h bd4d115fea major reorganization of directory structure 13 years ago
invert_diag.cpp 98be5f8569 fixed bug in render to tga 13 years ago
invert_diag.h 15ccf65951 invert diag 13 years ago
is_border_vertex.cpp adefe2d4aa added marching cubes implementation 13 years ago
is_border_vertex.h bd4d115fea major reorganization of directory structure 13 years ago
is_dir.cpp bd4d115fea major reorganization of directory structure 13 years ago
is_dir.h bd4d115fea major reorganization of directory structure 13 years ago
is_file.cpp bd4d115fea major reorganization of directory structure 13 years ago
is_file.h bd4d115fea major reorganization of directory structure 13 years ago
is_manifold.cpp 1f7f30930c changed templates for tt to enable different types for F and TT,TTi (F might be unsigned but TT has to contain -1's) 13 years ago
is_manifold.h 1f7f30930c changed templates for tt to enable different types for F and TT,TTi (F might be unsigned but TT has to contain -1's) 13 years ago
is_readable.cpp bd4d115fea major reorganization of directory structure 13 years ago
is_readable.h bd4d115fea major reorganization of directory structure 13 years ago
is_symmetric.cpp bd4d115fea major reorganization of directory structure 13 years ago
is_symmetric.h bd4d115fea major reorganization of directory structure 13 years ago
is_writable.cpp bd4d115fea major reorganization of directory structure 13 years ago
is_writable.h bd4d115fea major reorganization of directory structure 13 years ago
launch_medit.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
launch_medit.h 98be5f8569 fixed bug in render to tga 13 years ago
limit_faces.cpp bd4d115fea major reorganization of directory structure 13 years ago
limit_faces.h bd4d115fea major reorganization of directory structure 13 years ago
list_to_matrix.cpp 98be5f8569 fixed bug in render to tga 13 years ago
list_to_matrix.h bd4d115fea major reorganization of directory structure 13 years ago
load_shader.cpp bd4d115fea major reorganization of directory structure 13 years ago
load_shader.h 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
lu_lagrange.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
lu_lagrange.h bd4d115fea major reorganization of directory structure 13 years ago
marching_cubes.cpp 9f80dbdd02 minor updates to marching cubes 13 years ago
marching_cubes.h 9f80dbdd02 minor updates to marching cubes 13 years ago
massmatrix.cpp 84b995054f fixed massmatrix 13 years ago
massmatrix.h b46010fc5f massmatrix 13 years ago
mat_max.cpp bd4d115fea major reorganization of directory structure 13 years ago
mat_max.h bd4d115fea major reorganization of directory structure 13 years ago
mat_min.cpp bd4d115fea major reorganization of directory structure 13 years ago
mat_min.h bd4d115fea major reorganization of directory structure 13 years ago
material_colors.h bd4d115fea major reorganization of directory structure 13 years ago
matrix_to_list.cpp 98be5f8569 fixed bug in render to tga 13 years ago
matrix_to_list.h 98be5f8569 fixed bug in render to tga 13 years ago
max_size.cpp bd4d115fea major reorganization of directory structure 13 years ago
max_size.h bd4d115fea major reorganization of directory structure 13 years ago
min_quad_dense.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
min_quad_dense.h 97e8cb20bd add use_lu as parameter to min_quad_dense 13 years ago
min_quad_with_fixed.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
min_quad_with_fixed.h 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
min_size.cpp bd4d115fea major reorganization of directory structure 13 years ago
min_size.h bd4d115fea major reorganization of directory structure 13 years ago
mode.cpp bd4d115fea major reorganization of directory structure 13 years ago
mode.h bd4d115fea major reorganization of directory structure 13 years ago
moveFV.cpp bd4d115fea major reorganization of directory structure 13 years ago
moveFV.h bd4d115fea major reorganization of directory structure 13 years ago
mvc.h adefe2d4aa added marching cubes implementation 13 years ago
normalize_quat.cpp bd4d115fea major reorganization of directory structure 13 years ago
normalize_quat.h bd4d115fea major reorganization of directory structure 13 years ago
normalize_row_lengths.cpp 20641d7778 normalize rows disambiguation 13 years ago
normalize_row_lengths.h 20641d7778 normalize rows disambiguation 13 years ago
normalize_row_sums.cpp 98be5f8569 fixed bug in render to tga 13 years ago
normalize_row_sums.h 98be5f8569 fixed bug in render to tga 13 years ago
on_boundary.cpp 778c042ccf explicit templates matlab workspace and last commit before hunting bug in alec's skinning 13 years ago
on_boundary.h bd4d115fea major reorganization of directory structure 13 years ago
orth.h bd4d115fea major reorganization of directory structure 13 years ago
pathinfo.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
pathinfo.h bd4d115fea major reorganization of directory structure 13 years ago
per_corner_normals.cpp 21f9758feb added a few specializations 13 years ago
per_corner_normals.h bd4d115fea major reorganization of directory structure 13 years ago
per_face_normals.cpp 21f9758feb added a few specializations 13 years ago
per_face_normals.h 98be5f8569 fixed bug in render to tga 13 years ago
per_vertex_normals.cpp 20641d7778 normalize rows disambiguation 13 years ago
per_vertex_normals.h bd4d115fea major reorganization of directory structure 13 years ago
plot_vector.cpp bd4d115fea major reorganization of directory structure 13 years ago
plot_vector.h bd4d115fea major reorganization of directory structure 13 years ago
point_in_circle.cpp bd4d115fea major reorganization of directory structure 13 years ago
point_in_circle.h bd4d115fea major reorganization of directory structure 13 years ago
pos.h bd4d115fea major reorganization of directory structure 13 years ago
print_gl_get.cpp bd4d115fea major reorganization of directory structure 13 years ago
print_gl_get.h bd4d115fea major reorganization of directory structure 13 years ago
print_ijv.cpp bd4d115fea major reorganization of directory structure 13 years ago
print_ijv.h bd4d115fea major reorganization of directory structure 13 years ago
print_program_info_log.cpp bd4d115fea major reorganization of directory structure 13 years ago
print_program_info_log.h 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
print_shader_info_log.cpp bd4d115fea major reorganization of directory structure 13 years ago
print_shader_info_log.h 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
project.cpp 9e49a8d87b fixed verbose and merged 13 years ago
project.h bd4d115fea major reorganization of directory structure 13 years ago
project_to_line.cpp a90c38cbe1 project to line 13 years ago
project_to_line.h a90c38cbe1 project to line 13 years ago
quat_conjugate.cpp bd4d115fea major reorganization of directory structure 13 years ago
quat_conjugate.h bd4d115fea major reorganization of directory structure 13 years ago
quat_mult.cpp bd4d115fea major reorganization of directory structure 13 years ago
quat_mult.h bd4d115fea major reorganization of directory structure 13 years ago
quat_to_mat.cpp bd4d115fea major reorganization of directory structure 13 years ago
quat_to_mat.h bd4d115fea major reorganization of directory structure 13 years ago
read.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
read.h bd4d115fea major reorganization of directory structure 13 years ago
readDMAT.cpp 9e49a8d87b fixed verbose and merged 13 years ago
readDMAT.h 9e49a8d87b fixed verbose and merged 13 years ago
readMESH.cpp bd4d115fea major reorganization of directory structure 13 years ago
readMESH.h bd4d115fea major reorganization of directory structure 13 years ago
readOBJ.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
readOBJ.h bd4d115fea major reorganization of directory structure 13 years ago
readOFF.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
readOFF.h 21f9758feb added a few specializations 13 years ago
removeDuplicates.cpp adefe2d4aa added marching cubes implementation 13 years ago
removeDuplicates.h adefe2d4aa added marching cubes implementation 13 years ago
removeUnreferenced.cpp bd4d115fea major reorganization of directory structure 13 years ago
removeUnreferenced.h bd4d115fea major reorganization of directory structure 13 years ago
render_to_tga.cpp 98be5f8569 fixed bug in render to tga 13 years ago
render_to_tga.h 5c3a8ff977 render to tga 13 years ago
reorder.cpp bd4d115fea major reorganization of directory structure 13 years ago
reorder.h bd4d115fea major reorganization of directory structure 13 years ago
repdiag.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
repdiag.h bd4d115fea major reorganization of directory structure 13 years ago
repmat.cpp b46010fc5f massmatrix 13 years ago
repmat.h bd4d115fea major reorganization of directory structure 13 years ago
report_gl_error.cpp bd4d115fea major reorganization of directory structure 13 years ago
report_gl_error.h bd4d115fea major reorganization of directory structure 13 years ago
rotate_by_quat.cpp bd4d115fea major reorganization of directory structure 13 years ago
rotate_by_quat.h bd4d115fea major reorganization of directory structure 13 years ago
rows_to_matrix.cpp bd4d115fea major reorganization of directory structure 13 years ago
rows_to_matrix.h bd4d115fea major reorganization of directory structure 13 years ago
slice.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
slice.h bd4d115fea major reorganization of directory structure 13 years ago
slice_into.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
slice_into.h bd4d115fea major reorganization of directory structure 13 years ago
snap_to_canonical_view_quat.cpp bd4d115fea major reorganization of directory structure 13 years ago
snap_to_canonical_view_quat.h bd4d115fea major reorganization of directory structure 13 years ago
sort.cpp bd4d115fea major reorganization of directory structure 13 years ago
sort.h bd4d115fea major reorganization of directory structure 13 years ago
sparse.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
sparse.h bd4d115fea major reorganization of directory structure 13 years ago
speye.cpp bd4d115fea major reorganization of directory structure 13 years ago
speye.h bd4d115fea major reorganization of directory structure 13 years ago
stdin_to_temp.cpp bd4d115fea major reorganization of directory structure 13 years ago
stdin_to_temp.h bd4d115fea major reorganization of directory structure 13 years ago
sum.cpp bd4d115fea major reorganization of directory structure 13 years ago
sum.h bd4d115fea major reorganization of directory structure 13 years ago
texture_from_tga.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
texture_from_tga.h bd4d115fea major reorganization of directory structure 13 years ago
tga.cpp bd4d115fea major reorganization of directory structure 13 years ago
tga.h bd4d115fea major reorganization of directory structure 13 years ago
trackball.cpp bd4d115fea major reorganization of directory structure 13 years ago
trackball.h bd4d115fea major reorganization of directory structure 13 years ago
transpose_blocks.cpp bd4d115fea major reorganization of directory structure 13 years ago
transpose_blocks.h bd4d115fea major reorganization of directory structure 13 years ago
tt.cpp 1f7f30930c changed templates for tt to enable different types for F and TT,TTi (F might be unsigned but TT has to contain -1's) 13 years ago
tt.h 1f7f30930c changed templates for tt to enable different types for F and TT,TTi (F might be unsigned but TT has to contain -1's) 13 years ago
uniform_type_to_string.cpp bd4d115fea major reorganization of directory structure 13 years ago
uniform_type_to_string.h bd4d115fea major reorganization of directory structure 13 years ago
unproject.cpp bd4d115fea major reorganization of directory structure 13 years ago
unproject.h 1d90da86f8 unproject to zero plane 13 years ago
unproject_to_zero_plane.cpp 1d90da86f8 unproject to zero plane 13 years ago
unproject_to_zero_plane.h 1d90da86f8 unproject to zero plane 13 years ago
upsample.cpp 64cc763dd8 compiles on mac (bug fix in upsample) 13 years ago
upsample.h bd4d115fea major reorganization of directory structure 13 years ago
verbose.h 64cc763dd8 compiles on mac (bug fix in upsample) 13 years ago
vf.cpp 21f9758feb added a few specializations 13 years ago
vf.h bd4d115fea major reorganization of directory structure 13 years ago
write.cpp bd4d115fea major reorganization of directory structure 13 years ago
write.h bd4d115fea major reorganization of directory structure 13 years ago
writeDMAT.cpp 9e49a8d87b fixed verbose and merged 13 years ago
writeDMAT.h bd4d115fea major reorganization of directory structure 13 years ago
writeMESH.cpp 1f70076a7a fixed optimization flags in some Makefiles, tetgen wraper, launch medit, mosek wrapper 13 years ago
writeMESH.h 1f70076a7a fixed optimization flags in some Makefiles, tetgen wraper, launch medit, mosek wrapper 13 years ago
writeOBJ.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
writeOBJ.h bd4d115fea major reorganization of directory structure 13 years ago
writeOFF.cpp 13020d0872 libigl.a and mosek/tetgen extras compile on redhat (with some warnings and removed deprecations), static library makefile for anttweakbar 13 years ago
writeOFF.h bd4d115fea major reorganization of directory structure 13 years ago

readMESH.cpp

#include "readMESH.h"

#include
#include "verbose.h"

template
IGL_INLINE bool igl::readMESH(
const std::string mesh_file_name,
std::vector > & V,
std::vector > & T,
std::vector > & F)
{
using namespace std;
using namespace igl;
FILE * mesh_file = fopen(mesh_file_name.c_str(),"r");
if(NULL==mesh_file)
{
fprintf(stderr,"IOError: %s could not be opened...",mesh_file_name.c_str());
return false;
}
#ifndef LINE_MAX
# define LINE_MAX 2048
#endif
char line[LINE_MAX];
bool still_comments;
V.clear();
T.clear();
F.clear();

// eat comments at beginning of file
still_comments= true;
while(still_comments)
{
fgets(line,LINE_MAX,mesh_file);
still_comments = (line[0] == '#' || line[0] == '\n');
}

char str[LINE_MAX];
sscanf(line," %s",str);
// check that first word is MeshVersionFormatted
if(0!=strcmp(str,"MeshVersionFormatted"))
{
fprintf(stderr,
"Error: first word should be MeshVersionFormatted not %s\n",str);
fclose(mesh_file);
return false;
}
int one = -1;
if(2 != sscanf(line,"%s %d",str,&one))
{
// 1 appears on next line?
fscanf(mesh_file," %d",&one);
}
if(one != 1)
{
fprintf(stderr,"Error: second word should be 1 not %d\n",one);
fclose(mesh_file);
return false;
}

// eat comments
still_comments= true;
while(still_comments)
{
fgets(line,LINE_MAX,mesh_file);
still_comments = (line[0] == '#' || line[0] == '\n');
}

sscanf(line," %s",str);
// check that third word is Dimension
if(0!=strcmp(str,"Dimension"))
{
fprintf(stderr,"Error: third word should be Dimension not %s\n",str);
fclose(mesh_file);
return false;
}
int three = -1;
if(2 != sscanf(line,"%s %d",str,&three))
{
// 1 appears on next line?
fscanf(mesh_file," %d",&three);
}
if(three != 3)
{
fprintf(stderr,"Error: only Dimension 3 supported not %d\n",three);
fclose(mesh_file);
return false;
}

// eat comments
still_comments= true;
while(still_comments)
{
fgets(line,LINE_MAX,mesh_file);
still_comments = (line[0] == '#' || line[0] == '\n');
}

sscanf(line," %s",str);
// check that fifth word is Vertices
if(0!=strcmp(str,"Vertices"))
{
fprintf(stderr,"Error: fifth word should be Vertices not %s\n",str);
fclose(mesh_file);
return false;
}

//fgets(line,LINE_MAX,mesh_file);

#ifdef __APPLE__
size_t number_of_vertices;
#else
int number_of_vertices;
#endif
if(1 != fscanf(mesh_file," %ld",&number_of_vertices) || number_of_vertices > 1000000000)
{
fprintf(stderr,"Error: expecting number of vertices less than 10^9...\n");
fclose(mesh_file);
return false;
}
// allocate space for vertices
V.resize(number_of_vertices,vector(3,0));
#ifdef __APPLE__
size_t extra;
#else
int extra;
#endif
for(size_t i = 0;i {
double x,y,z;
if(4 != fscanf(mesh_file," %lg %lg %lg %ld",&x,&y,&z,&extra))
{
fprintf(stderr,"Error: expecting vertex position...\n");
fclose(mesh_file);
return false;
}
V[i][0] = x;
V[i][1] = y;
V[i][2] = z;
}

// eat comments
still_comments= true;
while(still_comments)
{
fgets(line,LINE_MAX,mesh_file);
still_comments = (line[0] == '#' || line[0] == '\n');
}

sscanf(line," %s",str);
// check that sixth word is Triangles
if(0!=strcmp(str,"Triangles"))
{
fprintf(stderr,"Error: sixth word should be Triangles not %s\n",str);
fclose(mesh_file);
return false;
}
#ifdef __APPLE__
size_t number_of_triangles;
#else
int number_of_triangles;
#endif
if(1 != fscanf(mesh_file," %ld",&number_of_triangles))
{
fprintf(stderr,"Error: expecting number of triangles...\n");
fclose(mesh_file);
return false;
}
// allocate space for triangles
F.resize(number_of_triangles,vector(3));
// triangle indices
#ifdef __APPLE__
size_t tri[3];
#else
int tri[3];
#endif
for(size_t i = 0;i {
if(4 != fscanf(mesh_file," %ld %ld %ld %ld",&tri[0],&tri[1],&tri[2],&extra))
{
printf("Error: expecting triangle indices...\n");
return false;
}
for(size_t j = 0;j<3;j++)
{
F[i][j] = tri[j]-1;
}
}

// eat comments
still_comments= true;
while(still_comments)
{
fgets(line,LINE_MAX,mesh_file);
still_comments = (line[0] == '#' || line[0] == '\n');
}

sscanf(line," %s",str);
// check that sixth word is Triangles
if(0!=strcmp(str,"Tetrahedra"))
{
fprintf(stderr,"Error: seventh word should be Tetrahedra not %s\n",str);
fclose(mesh_file);
return false;
}
#ifdef __APPLE__
size_t number_of_tetrahedra;
#else
int number_of_tetrahedra;
#endif
if(1 != fscanf(mesh_file," %ld",&number_of_tetrahedra))
{
fprintf(stderr,"Error: expecting number of tetrahedra...\n");
fclose(mesh_file);
return false;
}
// allocate space for tetrahedra
T.resize(number_of_tetrahedra,vector(4));
// tet indices
#ifdef __APPLE__
size_t a,b,c,d;
#else
int a,b,c,d;
#endif
for(size_t i = 0;i {
if(5 != fscanf(mesh_file," %ld %ld %ld %ld %ld",&a,&b,&c,&d,&extra))
{
fprintf(stderr,"Error: expecting tetrahedra indices...\n");
fclose(mesh_file);
return false;
}
T[i][0] = a-1;
T[i][1] = b-1;
T[i][2] = c-1;
T[i][3] = d-1;
}
fclose(mesh_file);
return true;
}

#include
#include "list_to_matrix.h"


template
IGL_INLINE bool igl::readMESH(
const std::string str,
Eigen::PlainObjectBase& V,
Eigen::PlainObjectBase& T,
Eigen::PlainObjectBase& F)
{
std::vector > vV,vT,vF;
bool success = igl::readMESH(str,vV,vT,vF);
if(!success)
{
// readOBJ(str,vV,vTC,vN,vF,vFTC,vFN) should have already printed an error
// message to stderr
return false;
}
bool V_rect = igl::list_to_matrix(vV,V);
if(!V_rect)
{
// igl::list_to_matrix(vV,V) already printed error message to std err
return false;
}
bool T_rect = igl::list_to_matrix(vT,T);
if(!T_rect)
{
// igl::list_to_matrix(vT,T) already printed error message to std err
return false;
}
bool F_rect = igl::list_to_matrix(vF,F);
if(!F_rect)
{
// igl::list_to_matrix(vF,F) already printed error message to std err
return false;
}
assert(V.cols() == 3);
assert(T.cols() == 4);
assert(F.cols() == 3);
return true;
}

#ifndef IGL_HEADER_ONLY
// Explicit template specialization
// generated by autoexplicit.sh
template bool igl::readMESH, Eigen::Matrix, Eigen::Matrix >(std::basic_string, std::allocator >, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&);
#endif