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 9de058ca4f29cba57ee9415c0c27590bce8bec66
parent 7e50c82a2538283656f632f107778ed45803e0b9
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Wed, 14 Feb 2018 17:02:37 +0100

Some API renames.

Diffstat:
Msrc/senc.h | 16++++++++--------
Msrc/senc_descriptor.c | 10+++++-----
Msrc/senc_enclosure.c | 6+++---
Msrc/senc_s3d_wrapper.h | 12++++++------
Msrc/test_senc_cube_on_cube.c | 2+-
Msrc/test_senc_descriptor.c | 49+++++++++++++++++++++++++++++--------------------
Msrc/test_senc_enclosure.c | 8++++----
Msrc/test_senc_sample_enclosure.c | 4++--
Msrc/test_senc_utils.h | 4++--
9 files changed, 60 insertions(+), 51 deletions(-)

diff --git a/src/senc.h b/src/senc.h @@ -142,7 +142,7 @@ senc_descriptor_get_enclosure struct senc_enclosure** enclosure); SENC_API res_T -senc_descriptor_get_global_triangle_count +senc_descriptor_get_global_triangles_count (const struct senc_descriptor* descriptor, unsigned* count); @@ -152,25 +152,25 @@ senc_descriptor_get_global_vertices_count unsigned* count); SENC_API res_T -senc_descriptor_get_global_indices +senc_descriptor_get_global_triangle (const struct senc_descriptor* descriptor, const unsigned itri, unsigned indices[3]); SENC_API res_T -senc_descriptor_get_global_vertices +senc_descriptor_get_global_vertex (const struct senc_descriptor* descriptor, const unsigned ivert, double coord[3]); SENC_API res_T -senc_descriptor_get_global_mediums +senc_descriptor_get_global_triangle_mediums (const struct senc_descriptor* descriptor, const unsigned itri, unsigned mediums[2]); SENC_API res_T -senc_descriptor_get_global_enclosures +senc_descriptor_get_global_triangle_enclosures (const struct senc_descriptor* descriptor, const unsigned itri, unsigned enclosures[2]); @@ -192,19 +192,19 @@ senc_enclosure_get_header const struct enclosure_header** header); SENC_API res_T -senc_enclosure_get_indices +senc_enclosure_get_triangle (const struct senc_enclosure* enclosure, const unsigned itri, unsigned indices[3]); SENC_API res_T -senc_enclosure_get_vertices +senc_enclosure_get_vertex (const struct senc_enclosure* enclosure, const unsigned ivert, double coord[3]); SENC_API res_T -senc_enclosure_get_mediums +senc_enclosure_get_triangle_mediums (const struct senc_enclosure* enclosure, const unsigned itri, unsigned medium[2]); diff --git a/src/senc_descriptor.c b/src/senc_descriptor.c @@ -104,7 +104,7 @@ senc_descriptor_get_enclosure } res_T -senc_descriptor_get_global_triangle_count +senc_descriptor_get_global_triangles_count (const struct senc_descriptor* desc, unsigned* count) { @@ -127,7 +127,7 @@ senc_descriptor_get_global_vertices_count } res_T -senc_descriptor_get_global_indices +senc_descriptor_get_global_triangle (const struct senc_descriptor* desc, const unsigned itri, unsigned indices[3]) @@ -147,7 +147,7 @@ senc_descriptor_get_global_indices } res_T -senc_descriptor_get_global_vertices +senc_descriptor_get_global_vertex (const struct senc_descriptor* desc, const unsigned ivert, double vrtx[3]) @@ -163,7 +163,7 @@ senc_descriptor_get_global_vertices } res_T -senc_descriptor_get_global_mediums +senc_descriptor_get_global_triangle_mediums (const struct senc_descriptor* desc, const unsigned itri, unsigned mediums[2]) @@ -182,7 +182,7 @@ senc_descriptor_get_global_mediums } res_T -senc_descriptor_get_global_enclosures +senc_descriptor_get_global_triangle_enclosures (const struct senc_descriptor* desc, const unsigned itri, unsigned enclosures[2]) diff --git a/src/senc_enclosure.c b/src/senc_enclosure.c @@ -74,7 +74,7 @@ senc_enclosure_get_header } res_T -senc_enclosure_get_indices +senc_enclosure_get_triangle (const struct senc_enclosure* enclosure, const unsigned itri, unsigned indices[3]) @@ -95,7 +95,7 @@ senc_enclosure_get_indices } res_T -senc_enclosure_get_vertices +senc_enclosure_get_vertex (const struct senc_enclosure* enclosure, const unsigned ivert, double coord[3]) @@ -112,7 +112,7 @@ senc_enclosure_get_vertices } res_T -senc_enclosure_get_mediums +senc_enclosure_get_triangle_mediums (const struct senc_enclosure* enclosure, const unsigned itri, unsigned medium[2]) diff --git a/src/senc_s3d_wrapper.h b/src/senc_s3d_wrapper.h @@ -30,7 +30,7 @@ senc_descriptor_get_global_indices__ const struct senc_descriptor* descriptor = ctx; res_T r; ASSERT(indices && ctx); - r = senc_descriptor_get_global_indices(descriptor, itri, indices); + r = senc_descriptor_get_global_triangle(descriptor, itri, indices); ASSERT(r == RES_OK); } @@ -44,13 +44,13 @@ senc_descriptor_get_global_vertices__ double tmp[3]; res_T r; ASSERT(coord && ctx); - r = senc_descriptor_get_global_vertices(descriptor, ivert, tmp); + r = senc_descriptor_get_global_vertex(descriptor, ivert, tmp); ASSERT(r == RES_OK); f3_set_d3(coord, tmp); } void FINLINE -senc_enclosure_get_indices__ +senc_enclosure_get_triangle__ (const unsigned itri, unsigned indices[3], void* ctx) @@ -58,12 +58,12 @@ senc_enclosure_get_indices__ const struct senc_enclosure* enclosure = ctx; res_T r; ASSERT(indices && ctx); - r = senc_enclosure_get_indices(enclosure, itri, indices); + r = senc_enclosure_get_triangle(enclosure, itri, indices); ASSERT(r == RES_OK); } void FINLINE -senc_enclosure_get_vertices__ +senc_enclosure_get_vertex__ (const unsigned ivert, float coord[3], void* ctx) @@ -72,7 +72,7 @@ senc_enclosure_get_vertices__ double tmp[3]; res_T r; ASSERT(coord && ctx); - r = senc_enclosure_get_vertices(enclosure, ivert, tmp); + r = senc_enclosure_get_vertex(enclosure, ivert, tmp); ASSERT(r == RES_OK); f3_set_d3(coord, tmp); } diff --git a/src/test_senc_cube_on_cube.c b/src/test_senc_cube_on_cube.c @@ -104,7 +104,7 @@ main(int argc, char** argv) CHK(senc_descriptor_get_global_vertices_count(desc, &count) == RES_OK); CHK(count == 20); - CHK(senc_descriptor_get_global_triangle_count(desc, &count) == RES_OK); + CHK(senc_descriptor_get_global_triangles_count(desc, &count) == RES_OK); CHK(count == 34); CHK(senc_descriptor_get_enclosure_count(desc, &count) == RES_OK); diff --git a/src/test_senc_descriptor.c b/src/test_senc_descriptor.c @@ -84,38 +84,47 @@ main(int argc, char** argv) CHK(senc_descriptor_get_global_vertices_count(desc, &count) == RES_OK); CHK(count == box_nvertices); - CHK(senc_descriptor_get_global_triangle_count(NULL, &count) == RES_BAD_ARG); - CHK(senc_descriptor_get_global_triangle_count(desc, NULL) == RES_BAD_ARG); - CHK(senc_descriptor_get_global_triangle_count(desc, &count) == RES_OK); + CHK(senc_descriptor_get_global_triangles_count(NULL, &count) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_triangles_count(desc, NULL) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_triangles_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(senc_descriptor_get_global_triangle(NULL, 0, indices) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_triangle(NULL, box_ntriangles, indices) + == RES_BAD_ARG); + CHK(senc_descriptor_get_global_triangle(desc, 0, NULL) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_triangle(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(senc_descriptor_get_global_vertex(NULL, 0, coord) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_vertex(NULL, box_nvertices, coord) + == RES_BAD_ARG); + CHK(senc_descriptor_get_global_vertex(desc, 0, NULL) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_vertex(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(senc_descriptor_get_global_triangle_mediums(NULL, 0, mediums) + == RES_BAD_ARG); + CHK(senc_descriptor_get_global_triangle_mediums(NULL, box_nvertices, mediums) + == RES_BAD_ARG); + CHK(senc_descriptor_get_global_triangle_mediums(desc, 0, NULL) + == RES_BAD_ARG); + CHK(senc_descriptor_get_global_triangle_mediums(desc, 0, mediums) == RES_OK); CHK(mediums[0] == ctx.front_mediums[0] && mediums[1] == ctx.back_mediums[1]); - 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(senc_descriptor_get_global_triangle_enclosures( + NULL, 0, enclosures) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_triangle_enclosures( + NULL, box_nvertices, enclosures) == RES_BAD_ARG); + CHK(senc_descriptor_get_global_triangle_enclosures(desc, 0, NULL) + == RES_BAD_ARG); + CHK(senc_descriptor_get_global_triangle_enclosures(desc, 0, enclosures) + == RES_OK); CHK(enclosures[0] == 0 && enclosures[1] == 1); @@ -130,7 +139,7 @@ main(int argc, char** argv) /* Duplicate vertices have been replaced */ CHK(count == box_nvertices); - CHK(senc_descriptor_get_global_triangle_count(desc, &count) == RES_OK); + CHK(senc_descriptor_get_global_triangles_count(desc, &count) == RES_OK); /* Duplicate triangles have been replaced */ CHK(count == box_ntriangles); diff --git a/src/test_senc_enclosure.c b/src/test_senc_enclosure.c @@ -48,7 +48,7 @@ main(int argc, char** argv) s3d_attribs.type = S3D_FLOAT3; s3d_attribs.usage = S3D_POSITION; - s3d_attribs.get = senc_enclosure_get_vertices__; + s3d_attribs.get = senc_enclosure_get_vertex__; CHK(s3d_device_create(NULL, &allocator, 0, &s3d) == RES_OK); @@ -97,7 +97,7 @@ main(int argc, char** argv) unsigned indices[2][3]; /* Read same triangles in both enclosures */ FOR_EACH(i, 0, 2) - CHK(senc_enclosure_get_indices(enclosures[i], n, indices[i]) == RES_OK); + CHK(senc_enclosure_get_triangle(enclosures[i], n, indices[i]) == RES_OK); /* Same triangles, opposite sides */ CHK(indices[0][0] == indices[1][0]); CHK(indices[0][1] == indices[1][2]); @@ -147,7 +147,7 @@ main(int argc, char** argv) unsigned indices[2][3]; /* Read 2 consecutive triangles in the enclosure */ FOR_EACH(i, 0, 2) - senc_enclosure_get_indices(enclosure, 2 * n + i, indices[i]); + senc_enclosure_get_triangle(enclosure, 2 * n + i, indices[i]); /* Same triangles, opposite sides */ CHK(indices[0][0] == indices[1][0]); CHK(indices[0][1] == indices[1][2]); @@ -157,7 +157,7 @@ main(int argc, char** argv) CHK(s3d_shape_create_mesh(s3d, &s3d_shp) == RES_OK); CHK(s3d_mesh_setup_indexed_vertices(s3d_shp, header->triangle_count, - senc_enclosure_get_indices__, header->vertices_count, &s3d_attribs, + senc_enclosure_get_triangle__, header->vertices_count, &s3d_attribs, 1, enclosure) == RES_OK); diff --git a/src/test_senc_sample_enclosure.c b/src/test_senc_sample_enclosure.c @@ -52,7 +52,7 @@ main(int argc, char** argv) vrtx_get.type = S3D_FLOAT3; vrtx_get.usage = S3D_POSITION; - vrtx_get.get = senc_enclosure_get_vertices__; + vrtx_get.get = senc_enclosure_get_vertex__; CHK(s3d_device_create(NULL, &allocator, 0, &s3d) == RES_OK); @@ -81,7 +81,7 @@ main(int argc, char** argv) /* Put enclosure in a 3D view... */ CHK(s3d_shape_create_mesh(s3d, &s3d_shp) == RES_OK); CHK(s3d_mesh_setup_indexed_vertices(s3d_shp, header->triangle_count, - senc_enclosure_get_indices__, header->vertices_count, &vrtx_get, 1, enclosure) + senc_enclosure_get_triangle__, header->vertices_count, &vrtx_get, 1, enclosure) == RES_OK); CHK(s3d_scene_attach_shape(s3d_scn, s3d_shp) == RES_OK); diff --git a/src/test_senc_utils.h b/src/test_senc_utils.h @@ -149,12 +149,12 @@ dump_enclosure CHK(stream); FOR_EACH(i, 0, header->vertices_count) { double tmp[3]; - CHK(senc_enclosure_get_vertices(enclosure, i, tmp) == RES_OK); + CHK(senc_enclosure_get_vertex(enclosure, i, tmp) == RES_OK); fprintf(stream, "v %g %g %g\n", SPLIT3(tmp)); } FOR_EACH(i, 0, header->unique_triangle_count) { unsigned indices[3]; - CHK(senc_enclosure_get_indices(enclosure, i, indices) == RES_OK); + CHK(senc_enclosure_get_triangle(enclosure, i, indices) == RES_OK); fprintf(stream, "f %lu %lu %lu\n", 1+indices[0], 1+indices[1], 1+indices[2]); }