fix a segment fault by admesh

This commit is contained in:
wenjie 2016-03-12 15:54:36 +08:00
parent a32937cef2
commit 3acb0514e1

View File

@ -805,14 +805,18 @@ stl_remove_degenerate(stl_file *stl, int facet) {
vnot2 = stl->neighbors_start[facet].which_vertex_not[edge2]; vnot2 = stl->neighbors_start[facet].which_vertex_not[edge2];
vnot3 = stl->neighbors_start[facet].which_vertex_not[edge3]; vnot3 = stl->neighbors_start[facet].which_vertex_not[edge3];
stl->neighbors_start[neighbor1].neighbor[(vnot1 + 1) % 3] = neighbor2; if(neighbor1 >= 0){
stl->neighbors_start[neighbor2].neighbor[(vnot2 + 1) % 3] = neighbor1; stl->neighbors_start[neighbor1].neighbor[(vnot1 + 1) % 3] = neighbor2;
stl->neighbors_start[neighbor1].which_vertex_not[(vnot1 + 1) % 3] = vnot2; stl->neighbors_start[neighbor1].which_vertex_not[(vnot1 + 1) % 3] = vnot2;
stl->neighbors_start[neighbor2].which_vertex_not[(vnot2 + 1) % 3] = vnot1; }
if(neighbor2 >= 0){
stl->neighbors_start[neighbor2].neighbor[(vnot2 + 1) % 3] = neighbor1;
stl->neighbors_start[neighbor2].which_vertex_not[(vnot2 + 1) % 3] = vnot1;
}
stl_remove_facet(stl, facet); stl_remove_facet(stl, facet);
if(neighbor3 != -1) { if(neighbor3 >= 0) {
stl_update_connects_remove_1(stl, neighbor3); stl_update_connects_remove_1(stl, neighbor3);
stl->neighbors_start[neighbor3].neighbor[(vnot3 + 1) % 3] = -1; stl->neighbors_start[neighbor3].neighbor[(vnot3 + 1) % 3] = -1;
} }