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 eda2d20a855b782ea530bef5b3a3e1a75e237dfe
parent a106a498bc41411b0057ffb103540ef93449ef23
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Fri, 22 Nov 2019 16:11:21 +0100

BugFix: wrong management of add callback returning an error

Diffstat:
Msrc/senc2d_scene.c | 9++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/senc2d_scene.c b/src/senc2d_scene.c @@ -290,17 +290,16 @@ senc2d_scene_add_geometry } else { /* New segment */ seg_id_t u = scn->nusegs + actual_nusegs; - ASSERT(u == htable_seg_size_get(&scn->unique_segments)); - OK(htable_seg_set(&scn->unique_segments, &seg_key, &u)); + if(add_segment) + OK(add_segment(tmp.global_id, i, ctx)); OK(darray_segment_in_push_back(&scn->segments_in, &tmp)); range_adjust_ptr = darray_segment_in_data_get(&scn->segments_in) + u; FOR_EACH(j, 0, 2) { if(tmp.medium[j] != SENC2D_UNDEFINED_MEDIUM) scn->sides_with_defined_medium_count++; } - if(add_segment) { - OK(add_segment(tmp.global_id, i, ctx)); - } + ASSERT(u == htable_seg_size_get(&scn->unique_segments)); + OK(htable_seg_set(&scn->unique_segments, &seg_key, &u)); ++actual_nusegs; } if(range_adjust_ptr) {