star-enclosures-2d

Extract enclosures from 2D geometry
git clone git://git.meso-star.fr/star-enclosures-2d.git
Log | Files | Refs | README | LICENSE

commit ccbbe7324ec0e1d8e83dda0ad5a9c50cc19fac01
parent 2fe944daf1941595fa28c1b787d59a0c5bbea7bc
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Thu,  7 Feb 2019 11:37:38 +0100

BugFix: reverse some flag on a special case

Diffstat:
Msrc/senc2d_scene_analyze.c | 13+++++++++++++
1 file changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/senc2d_scene_analyze.c b/src/senc2d_scene_analyze.c @@ -322,6 +322,19 @@ extract_connex_components * associated with neighbour's medium). */ component_canceled = 1; darray_side_id_clear(&stack); + /* Reverse the used flag for sides in cancelled component */ + sz = darray_side_id_size_get(&current_component); + FOR_EACH(ii, 0, sz) { + enum side_id_t used_side + = darray_side_id_cdata_get(&current_component)[ii]; + seg_id_t used_trg_id = SEGSIDE_2_SEG(used_side); + enum side_flag used_side_flag + = SEGSIDE_2_SIDEFLAG(used_side); + unsigned char* used = processed + used_trg_id; + ASSERT(*used & (unsigned char)used_side_flag); + *used &= ~(unsigned char)used_side_flag; + } + goto canceled; } /* Mark neighbour as processed and stack it */