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 c983b6ba8fd3370db9a455aa33f9b0fbf9526b7c
parent 8cce1bcbc3b1d8c524dd5df1ad37457a5ae929e5
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Tue, 13 Feb 2018 10:35:12 +0100

Add descriptor-related API tests.

Diffstat:
Msrc/test_senc_descriptor.c | 34++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+), 0 deletions(-)

diff --git a/src/test_senc_descriptor.c b/src/test_senc_descriptor.c @@ -31,6 +31,10 @@ main(int argc, char** argv) struct senc_enclosure* enc = NULL; struct context ctx; unsigned count; + unsigned indices[3]; + double coord[3]; + unsigned mediums[2]; + unsigned enclosures[2]; (void) argc, (void) argv; CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); @@ -85,6 +89,36 @@ main(int argc, char** argv) CHK(senc_descriptor_get_global_triangle_count(desc, &count) == RES_OK); CHK(count == box_ntriangles); + CHK(senc_descriptor_get_global_indices(NULL, 0, indices) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_indices(NULL, box_ntriangles, indices) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_indices(desc, 0, NULL) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_indices(desc, 0, indices) == RES_OK); + CHK(indices[0] == box_indices[0] + && indices[1] == box_indices[1] + && indices[2] == box_indices[2]); + + CHK(senc_descriptor_get_global_vertices(NULL, 0, coord) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_vertices(NULL, box_nvertices, coord) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_vertices(desc, 0, NULL) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_vertices(desc, 0, coord) == RES_OK); + CHK(coord[0] == box_vertices[0] + && coord[1] == box_vertices[1] + && coord[2] == box_vertices[2]); + + CHK(senc_descriptor_get_global_mediums(NULL, 0, mediums) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_mediums(NULL, box_nvertices, mediums) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_mediums(desc, 0, NULL) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_mediums(desc, 0, mediums) == RES_OK); + CHK(mediums[0] == ctx.front_medium + && mediums[1] == ctx.back_medium); + + CHK(senc_descriptor_get_global_enclosures(NULL, 0, enclosures) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_enclosures(NULL, box_nvertices, enclosures) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_enclosures(desc, 0, NULL) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_enclosures(desc, 0, enclosures) == RES_OK); + CHK(enclosures[0] == 0 + && enclosures[1] == 1); + /* Add valid duplicate geometry */ CHK(senc_descriptor_ref_put(desc) == RES_OK); desc = NULL;