star-enclosures-3d

Extract enclosures from 3D geometry
git clone git://git.meso-star.fr/star-enclosures-3d.git
Log | Files | Refs | README | LICENSE

commit ee3681a33fa8a6543889832a184fa5b0eb0a5542
parent e9de0bee60f464b9cb95cd3db93422bd0d1ec071
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Wed, 18 Apr 2018 10:50:08 +0200

Add an API call to get max medium rank.

Diffstat:
Msrc/senc.h | 5+++++
Msrc/senc_descriptor.c | 10++++++++++
Msrc/test_senc_descriptor.c | 7+++++++
3 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/src/senc.h b/src/senc.h @@ -161,6 +161,11 @@ senc_scene_ref_put * StarEnclosures descriptor. It is an handle toward an analyze result. ******************************************************************************/ SENC_API res_T +senc_descriptor_get_max_medium + (const struct senc_descriptor* descriptor, + unsigned* rank); + +SENC_API res_T senc_descriptor_get_enclosure_count (const struct senc_descriptor* descriptor, unsigned* count); diff --git a/src/senc_descriptor.c b/src/senc_descriptor.c @@ -84,6 +84,16 @@ struct mem_allocator* * Exported functions ******************************************************************************/ res_T +senc_descriptor_get_max_medium + (const struct senc_descriptor* desc, unsigned* rank) +{ + if(!desc || !rank) return RES_BAD_ARG; + ASSERT(desc->scene->nmeds < UINT_MAX); /* API type */ + *rank = (unsigned)desc->scene->nmeds; + return RES_OK; +} + +res_T senc_descriptor_get_enclosure_count (const struct senc_descriptor* desc, unsigned* count) { diff --git a/src/test_senc_descriptor.c b/src/test_senc_descriptor.c @@ -63,6 +63,13 @@ main(int argc, char** argv) CHK(senc_descriptor_ref_put(NULL) == RES_BAD_ARG); CHK(senc_descriptor_ref_put(desc) == RES_OK); + CHK(senc_descriptor_get_max_medium(NULL, &count) == RES_BAD_ARG); + CHK(senc_descriptor_get_max_medium(desc, NULL) == RES_BAD_ARG); + CHK(senc_descriptor_get_enclosure_count(NULL, NULL) == RES_BAD_ARG); + CHK(senc_descriptor_get_max_medium(desc, &count) == RES_OK); + + CHK(count == 2); + CHK(senc_descriptor_get_enclosure_count(NULL, &count) == RES_BAD_ARG); CHK(senc_descriptor_get_enclosure_count(desc, NULL) == RES_BAD_ARG); CHK(senc_descriptor_get_enclosure_count(NULL, NULL) == RES_BAD_ARG);