star-cad

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

commit 850dbd9ec9290f7a7cc6607c7e7311dbe9cc8d69
parent 0a837e6c6ec2a95fa4ad6f816c456b10cb51f265
Author: Benjamin Piaud <benjamin.piaud@meso-star.com>
Date:   Tue, 20 Sep 2022 10:09:50 +0200

Add global scene partition function (maybe temporary)

Diffstat:
Msrc/scad.c | 33+++++++++++++++++++++++++++++++++
Msrc/scad.h | 4++++
2 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/src/scad.c b/src/scad.c @@ -519,3 +519,36 @@ exit: error: goto exit; } + +res_T +scad_scene_partition + (void) +{ + int* dimTags = NULL; + size_t dimTags_n; + int ierr = 0; + res_T res = RES_OK; + + ERR(check_device(FUNC_NAME)); + if(get_device()->need_synchro) { + ERR(scad_synchronize()); + } + + gmshModelOccGetEntities(&dimTags, &dimTags_n, 3, &ierr); + ERR(gmsh_err_to_res_T(ierr)); + if(dimTags_n > 2) { + /* Remove all duplicate entities in the OpenCASCADE CAD representation + * (different entities at the same geometrical location) after intersecting + * (using boolean fragments) all highest dimensional entities. */ + gmshModelOccRemoveAllDuplicates(&ierr); + ERR(gmsh_err_to_res_T(ierr)); + } + gmshModelOccSynchronize(&ierr); + ERR(gmsh_err_to_res_T(ierr)); + +exit: + if(dimTags) free(dimTags); + return res; +error: + goto exit; +} diff --git a/src/scad.h b/src/scad.h @@ -328,6 +328,10 @@ SCAD_API res_T /* FIXME remove this */ scad_run_ui (void); +SCAD_API res_T /* FIXME TEMPORARY */ +scad_scene_partition + (void); + END_DECLS #endif /* SCAD_H */