commit f8844125ffaa54e3dd7fd4fd7de098b09c5afd57
parent 9b2a8dc022bb8350f1f4f319aae304d9ec5b5962
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Thu, 12 Apr 2018 14:56:18 +0200
API change: get enclosure header by copy (was by ptr).
Diffstat:
7 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/src/senc.h b/src/senc.h
@@ -228,13 +228,13 @@ senc_descriptor_ref_put
* case the 2 occurences of the triangle have reversed vertices order and
* unique_triangle_count and triangle_count differ.
* By-index API accesses of triangles (or properties) visit unique triangles
- * for indexes in the [0 unique_triangle_count[ and back-faces of the
+ * for indexes in the [0 unique_triangle_count[ range and back-faces of the
* doubly-listed triangles in the [unique_triangle_count triangle_count[ range.
******************************************************************************/
SENC_API res_T
senc_enclosure_get_header
(const struct senc_enclosure* enclosure,
- const struct enclosure_header** header);
+ struct enclosure_header* header);
SENC_API res_T
senc_enclosure_get_triangle
diff --git a/src/senc_enclosure.c b/src/senc_enclosure.c
@@ -66,10 +66,10 @@ enclosure_create
res_T
senc_enclosure_get_header
(const struct senc_enclosure* enclosure,
- const struct enclosure_header** header)
+ struct enclosure_header* header)
{
if(!enclosure || !header) return RES_BAD_ARG;
- *header = &enclosure->data->header;
+ *header = enclosure->data->header;
return RES_OK;
}
diff --git a/src/test_senc_enclosure.c b/src/test_senc_enclosure.c
@@ -31,7 +31,7 @@ main(int argc, char** argv)
struct senc_scene* scn = NULL;
struct senc_enclosure* enclosures[2] = { NULL, NULL };
struct senc_enclosure* enclosure;
- const struct enclosure_header* header;
+ struct enclosure_header header;
struct s3d_device* s3d = NULL;
struct s3d_scene* s3d_scn = NULL;
struct s3d_shape* s3d_shp = NULL;
@@ -144,14 +144,14 @@ main(int argc, char** argv)
CHK(senc_enclosure_get_header(NULL, NULL) == RES_BAD_ARG);
CHK(senc_enclosure_get_header(enclosure, &header) == RES_OK);
- CHK(header->enclosure_id == i);
- CHK(header->enclosed_medium == (i == 0 ? 0U : 1U));
- CHK(header->triangle_count == box_ntriangles);
- CHK(header->unique_triangle_count == box_ntriangles);
- CHK(header->vertices_count == box_nvertices);
- CHK(header->is_infinite == (i == 0));
+ CHK(header.enclosure_id == i);
+ CHK(header.enclosed_medium == (i == 0 ? 0U : 1U));
+ CHK(header.triangle_count == box_ntriangles);
+ CHK(header.unique_triangle_count == box_ntriangles);
+ CHK(header.vertices_count == box_nvertices);
+ CHK(header.is_infinite == (i == 0));
- FOR_EACH(t, 0, header->triangle_count) {
+ FOR_EACH(t, 0, header.triangle_count) {
CHK(senc_enclosure_get_triangle_global_id(enclosure, t, &gid) == RES_OK);
CHK(gid == t);
}
@@ -205,26 +205,26 @@ main(int argc, char** argv)
CHK(senc_enclosure_get_header(NULL, NULL) == RES_BAD_ARG);
CHK(senc_enclosure_get_header(enclosure, &header) == RES_OK);
- CHK(header->enclosure_id == 0);
- CHK(header->enclosed_medium == 0);
- CHK(header->triangle_count == 2 * header->unique_triangle_count);
- CHK(header->unique_triangle_count == box_ntriangles - 1);
- CHK(header->vertices_count == box_nvertices);
- CHK(header->is_infinite == 1);
+ CHK(header.enclosure_id == 0);
+ CHK(header.enclosed_medium == 0);
+ CHK(header.triangle_count == 2 * header.unique_triangle_count);
+ CHK(header.unique_triangle_count == box_ntriangles - 1);
+ CHK(header.vertices_count == box_nvertices);
+ CHK(header.is_infinite == 1);
- FOR_EACH(t, 0, header->unique_triangle_count) {
+ FOR_EACH(t, 0, header.unique_triangle_count) {
/* The first unique_triangle_count triangles of an enclosure
* are unique triangles */
CHK(senc_enclosure_get_triangle_global_id(enclosure, t, &gid) == RES_OK);
CHK(gid == t);
}
- FOR_EACH(n, 0, header->unique_triangle_count) {
+ FOR_EACH(n, 0, header.unique_triangle_count) {
/* Put geometry 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_triangle__, header->vertices_count, &s3d_attribs,
+ CHK(s3d_mesh_setup_indexed_vertices(s3d_shp, header.triangle_count,
+ senc_enclosure_get_triangle__, header.vertices_count, &s3d_attribs,
1, enclosure)
== RES_OK);
diff --git a/src/test_senc_many_enclosures.c b/src/test_senc_many_enclosures.c
@@ -145,13 +145,13 @@ main(int argc, char** argv)
FOR_EACH(e, 0, count) {
struct senc_enclosure* enclosure;
- const struct enclosure_header* header;
+ struct enclosure_header header;
CHK(senc_descriptor_get_enclosure(desc, e, &enclosure) == RES_OK);
CHK(senc_enclosure_get_header(enclosure, &header) == RES_OK);
- CHK(header->triangle_count ==
+ CHK(header.triangle_count ==
(e == 0 /* Outermost enclosure: NB_CYL_1*NB_CYL_1 cylinders */
? NB_CYL_1 * NB_CYL_1 * cyl_trg_count
- : (header->enclosed_medium == 0
+ : (header.enclosed_medium == 0
? cyl_trg_count /* Innermost enclosures: 1 cylinder */
: 2 * cyl_trg_count))); /* Other enclosures: 2 cylinders */
CHK(senc_enclosure_ref_put(enclosure) == RES_OK);
diff --git a/src/test_senc_many_triangles.c b/src/test_senc_many_triangles.c
@@ -129,10 +129,10 @@ main(int argc, char** argv)
CHK(count == 1 + NB_CYL);
FOR_EACH(i, 0, count) {
struct senc_enclosure* enclosure;
- const struct enclosure_header* header;
+ struct enclosure_header header;
CHK(senc_descriptor_get_enclosure(desc, i, &enclosure) == RES_OK);
CHK(senc_enclosure_get_header(enclosure, &header) == RES_OK);
- CHK(header->triangle_count ==
+ CHK(header.triangle_count ==
i ? cyl_trg_count : NB_CYL * cyl_trg_count);
CHK(senc_enclosure_ref_put(enclosure) == RES_OK);
}
diff --git a/src/test_senc_sample_enclosure.c b/src/test_senc_sample_enclosure.c
@@ -31,7 +31,7 @@ main(int argc, char** argv)
struct senc_device* dev = NULL;
struct senc_scene* scn = NULL;
struct senc_enclosure* enclosure = NULL;
- const struct enclosure_header* header = NULL;
+ struct enclosure_header header;
struct s3d_device* s3d = NULL;
struct s3d_scene* s3d_scn = NULL;
struct s3d_scene_view* s3d_view = NULL;
@@ -80,8 +80,8 @@ main(int argc, char** argv)
/* Put enclosure in a 3D view... */
S3D(shape_create_mesh(s3d, &s3d_shp));
- S3D(mesh_setup_indexed_vertices(s3d_shp, header->triangle_count,
- senc_enclosure_get_triangle__, header->vertices_count, &vrtx_get, 1,
+ S3D(mesh_setup_indexed_vertices(s3d_shp, header.triangle_count,
+ senc_enclosure_get_triangle__, header.vertices_count, &vrtx_get, 1,
enclosure));
S3D(scene_attach_shape(s3d_scn, s3d_shp));
diff --git a/src/test_senc_utils.h b/src/test_senc_utils.h
@@ -155,7 +155,7 @@ dump_enclosure
const char* name)
{
struct senc_enclosure* enclosure;
- const struct enclosure_header* header;
+ struct enclosure_header header;
FILE* stream;
unsigned count, i;
@@ -168,12 +168,12 @@ dump_enclosure
stream = fopen(name, "w");
CHK(stream);
- FOR_EACH(i, 0, header->vertices_count) {
+ FOR_EACH(i, 0, header.vertices_count) {
double tmp[3];
CHK(senc_enclosure_get_vertex(enclosure, i, tmp) == RES_OK);
fprintf(stream, "v %g %g %g\n", SPLIT3(tmp));
}
- FOR_EACH(i, 0, header->triangle_count) {
+ FOR_EACH(i, 0, header.triangle_count) {
unsigned indices[3];
CHK(senc_enclosure_get_triangle(enclosure, i, indices) == RES_OK);
fprintf(stream, "f %lu %lu %lu\n", (unsigned long)(1+indices[0]),