star-cad

Geometric operators for computer-aided design
git clone git://git.meso-star.fr/star-cad.git
Log | Files | Refs | README | LICENSE

commit a220331672e129cbe50ac6fc26b437c33dc5dd91
parent 12592595753e58a2a7e2b492a16765e820ab4493
Author: Benjamin Piaud <benjamin.piaud@meso-star.com>
Date:   Tue,  6 Sep 2022 17:45:03 +0200

Extent scad_geometry_boundary to a list of geometries

Diffstat:
Msrc/scad.h | 3++-
Msrc/scad_geometry.c | 9+++++----
2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/scad.h b/src/scad.h @@ -253,7 +253,8 @@ scad_geometries_partition_one SCAD_API res_T scad_geometry_boundary (const char* name, /* Can be NULL */ - struct scad_geometry* geom, + struct scad_geometry** geometries, + const size_t geometries_count, struct scad_geometry** out_boundary); /* copy the geometry `geom'. */ diff --git a/src/scad_geometry.c b/src/scad_geometry.c @@ -1065,16 +1065,18 @@ scad_geometries_partition res_T scad_geometry_boundary (const char* name, - struct scad_geometry* geom, + struct scad_geometry** geometries, + const size_t geometries_count, struct scad_geometry** out_geometry) { int* tagout = NULL; size_t tagoutn, sz; int* data; int ierr = 0; + struct scad_geometry* geom; res_T res = RES_OK; - if(!geom || !out_geometry) { + if(!geometries || !out_geometry) { res = RES_BAD_ARG; goto error; } @@ -1083,8 +1085,7 @@ scad_geometry_boundary ERR(scad_synchronize()); } - sz = geom->gmsh_dimTags_n; - data = geom->gmsh_dimTags; + ERR(gather_tags(geometries, geometries_count, SIZE_MAX, &data, &sz)); gmshModelGetBoundary(data, sz, &tagout, &tagoutn, 1, 0, 0, &ierr); ERR(gmsh_err_to_res_T(ierr));