mirror of https://github.com/CGAL/cgal
Merge pull request #7034 from sloriot/PMP-coref_open_mesh_case_fix
Fix inconsistency check
This commit is contained in:
commit
868793754b
|
|
@ -1068,15 +1068,15 @@ public:
|
||||||
if (!used_to_clip_a_surface && !used_to_classify_patches && (!is_tm1_closed || !is_tm2_closed))
|
if (!used_to_clip_a_surface && !used_to_classify_patches && (!is_tm1_closed || !is_tm2_closed))
|
||||||
{
|
{
|
||||||
//make sure there is no ambiguity in tm1
|
//make sure there is no ambiguity in tm1
|
||||||
if( (patch_status_was_not_already_set[0] && previous_bitvalue[0]!=is_patch_inside_tm2[patch_id_p1] ) ||
|
if( (!patch_status_was_not_already_set[0] && previous_bitvalue[0]!=is_patch_inside_tm2.test(patch_id_p1) ) ||
|
||||||
(patch_status_was_not_already_set[1] && previous_bitvalue[1]!=is_patch_inside_tm2[patch_id_p2] ) )
|
(!patch_status_was_not_already_set[1] && previous_bitvalue[1]!=is_patch_inside_tm2.test(patch_id_p2) ) )
|
||||||
{
|
{
|
||||||
impossible_operation.set();
|
impossible_operation.set();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//make sure there is no ambiguity in tm2
|
//make sure there is no ambiguity in tm2
|
||||||
if( (patch_status_was_not_already_set[2] && previous_bitvalue[2]!=is_patch_inside_tm2[patch_id_q1] ) ||
|
if( (!patch_status_was_not_already_set[2] && previous_bitvalue[2]!=is_patch_inside_tm1.test(patch_id_q1) ) ||
|
||||||
(patch_status_was_not_already_set[3] && previous_bitvalue[3]!=is_patch_inside_tm2[patch_id_q2] ) )
|
(!patch_status_was_not_already_set[3] && previous_bitvalue[3]!=is_patch_inside_tm1.test(patch_id_q2) ) )
|
||||||
{
|
{
|
||||||
impossible_operation.set();
|
impossible_operation.set();
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -1091,6 +1091,15 @@ public:
|
||||||
patch_status_not_set_tm2.reset(patch_id_q1);
|
patch_status_not_set_tm2.reset(patch_id_q1);
|
||||||
patch_status_not_set_tm2.reset(patch_id_q2);
|
patch_status_not_set_tm2.reset(patch_id_q2);
|
||||||
|
|
||||||
|
// restore initial state, needed when checking in `inconsistent_classification()`
|
||||||
|
if (!is_tm1_closed || !is_tm2_closed)
|
||||||
|
{
|
||||||
|
is_patch_inside_tm2.reset(patch_id_p1);
|
||||||
|
is_patch_inside_tm2.reset(patch_id_p2);
|
||||||
|
is_patch_inside_tm1.reset(patch_id_q1);
|
||||||
|
is_patch_inside_tm1.reset(patch_id_q2);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CGAL_COREFINEMENT_POLYHEDRA_DEBUG
|
#ifdef CGAL_COREFINEMENT_POLYHEDRA_DEBUG
|
||||||
#warning: Factorize the orientation predicates.
|
#warning: Factorize the orientation predicates.
|
||||||
#endif //CGAL_COREFINEMENT_POLYHEDRA_DEBUG
|
#endif //CGAL_COREFINEMENT_POLYHEDRA_DEBUG
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
OFF
|
||||||
|
8 4 0
|
||||||
|
|
||||||
|
0 0 1
|
||||||
|
1 0 1
|
||||||
|
1 1 1
|
||||||
|
0 1 1
|
||||||
|
0 0 0
|
||||||
|
1 0 0
|
||||||
|
1 1 0
|
||||||
|
0 1 0
|
||||||
|
3 0 1 2
|
||||||
|
3 2 3 0
|
||||||
|
3 6 5 4
|
||||||
|
3 4 7 6
|
||||||
|
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
OFF
|
||||||
|
8 12 0
|
||||||
|
|
||||||
|
0.75 0.75 -1
|
||||||
|
0.25 0.75 -1
|
||||||
|
0.25 0.25 -1
|
||||||
|
0.75 0.25 -1
|
||||||
|
0.75 0.25 1
|
||||||
|
0.75 0.75 1
|
||||||
|
0.25 0.75 1
|
||||||
|
0.25 0.25 1
|
||||||
|
3 4 5 6
|
||||||
|
3 0 3 2
|
||||||
|
3 1 2 7
|
||||||
|
3 0 1 6
|
||||||
|
3 3 0 5
|
||||||
|
3 2 3 4
|
||||||
|
3 6 7 4
|
||||||
|
3 2 1 0
|
||||||
|
3 7 6 1
|
||||||
|
3 6 5 0
|
||||||
|
3 5 4 3
|
||||||
|
3 4 7 2
|
||||||
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
${CGAL_DATA_DIR}/meshes/elephant.off ${CGAL_DATA_DIR}/meshes/sphere.off ALL 1 1 1 1
|
${CGAL_DATA_DIR}/meshes/elephant.off ${CGAL_DATA_DIR}/meshes/sphere.off ALL 1 1 1 1
|
||||||
${CGAL_DATA_DIR}/meshes/open_cube.off data-coref/incompatible_with_open_cube.off ALL 0 0 0 0
|
${CGAL_DATA_DIR}/meshes/open_cube.off data-coref/incompatible_with_open_cube.off ALL 0 0 0 0
|
||||||
|
data-coref/floating_squares.off data-coref/hexa.off ALL 1 1 1 1
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue