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:
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));