star-cpr

Clip 2D meshes with 2D polygons
git clone git://git.meso-star.fr/star-cpr.git
Log | Files | Refs | README | LICENSE

commit 51a611964d1eef812271d0b56589b008ad01801a
parent 5de9b2338c366a37a05b3a81caf4d058b87a81d7
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Fri, 10 Mar 2023 17:23:26 +0100

Merge branch 'release_0.3_r2'

Diffstat:
Msrc/scpr.h | 2+-
Msrc/scpr_intersector.c | 8++++----
Msrc/test_scpr_intersector.c | 16++++++++--------
3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/scpr.h b/src/scpr.h @@ -94,7 +94,7 @@ struct scpr_intersector_check_callbacks { (struct scpr_callback_segment* segment1, struct scpr_callback_segment* segment2, void* ctx); - int(*collinear_segments) + int(*overlapping_segments) (struct scpr_callback_segment* segment1, struct scpr_callback_segment* segment2, void* ctx); diff --git a/src/scpr_intersector.c b/src/scpr_intersector.c @@ -532,8 +532,8 @@ check_two_segments_intersection /* No intersection at all */ } else if(ccw1 == 0 && ccw2 == 0 && ccw3 == 0 && ccw4 == 0) { - /* collinear segments */ - if(callbacks->collinear_segments) { + /* overlapping segments */ + if(callbacks->overlapping_segments) { struct scpr_callback_segment arg1, arg2; arg1.polygon = polygon1; arg1.component = comp_idx1; @@ -543,7 +543,7 @@ check_two_segments_intersection arg2.component = comp_idx2; arg2.first_vertex = r21; arg2.last_vertex = r22; - if(callbacks->collinear_segments(&arg1, &arg2, data)) { + if(callbacks->overlapping_segments(&arg1, &arg2, data)) { res = RES_BAD_ARG; goto error; } @@ -780,7 +780,7 @@ scpr_intersector_check res_T res = RES_OK; if(!intersector || !callbacks - || (!callbacks->simple_intersection && !callbacks->collinear_segments)) + || (!callbacks->simple_intersection && !callbacks->overlapping_segments)) { res = RES_BAD_ARG; goto error; diff --git a/src/test_scpr_intersector.c b/src/test_scpr_intersector.c @@ -23,7 +23,7 @@ #include <memory.h> struct cpt { - size_t simple, collinear; + size_t simple, overlapping; }; static int @@ -40,7 +40,7 @@ simple_intersection } static int -collinear_segments +overlapping_segments (struct scpr_callback_segment* segment1, struct scpr_callback_segment* segment2, void* data) @@ -48,7 +48,7 @@ collinear_segments struct cpt* cpt = (struct cpt*)data; (void)segment1; (void)segment2; ASSERT(cpt); - cpt->collinear++; + cpt->overlapping++; return 0; } @@ -180,13 +180,13 @@ main(int argc, char** argv) cb.simple_intersection = simple_intersection; OK(scpr_intersector_check(inter, &cb, &cpt)); CHK(cpt.simple == 2); - CHK(cpt.collinear == 0); - /* Report intersections and collinearity */ - cb.collinear_segments = collinear_segments; - cpt.simple = cpt.collinear = 0; + CHK(cpt.overlapping == 0); + /* Report intersections and overlapping */ + cb.overlapping_segments = overlapping_segments; + cpt.simple = cpt.overlapping = 0; OK(scpr_intersector_check(inter, &cb, &cpt)); CHK(cpt.simple == 2); - CHK(cpt.collinear == 2); + CHK(cpt.overlapping == 2); OK(scpr_polygon_ref_put(p01)); OK(scpr_polygon_ref_put(p23));