commit 4dbcc9d0894071ffbf63bf1158e2381dc6a0a1c5
parent ce046f006c072e3cbc1ebd75e9926e973d160ebe
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Tue, 17 Apr 2018 15:12:51 +0200
Use a distorded cube in tests when possible.
This causes 2 tests to fail and reveal a bug!
Diffstat:
8 files changed, 113 insertions(+), 99 deletions(-)
diff --git a/src/test_senc_cube_behind_cube.c b/src/test_senc_cube_behind_cube.c
@@ -45,8 +45,8 @@ main(int argc, char** argv)
ctx.back_media = medium1;
/* First cube */
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
/* +Z from the first cube,
* big enough to prevent rays from the first cube to miss this one */
@@ -54,8 +54,8 @@ main(int argc, char** argv)
ctx.scale = 5;
/* Second cube */
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_analyze(scn, &desc) == RES_OK);
@@ -66,8 +66,8 @@ main(int argc, char** argv)
ctx.back_media = medium0;
/* Third cube */
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
if(desc) CHK(senc_descriptor_ref_put(desc) == RES_OK);
desc = NULL;
diff --git a/src/test_senc_cube_in_cube.c b/src/test_senc_cube_in_cube.c
@@ -47,8 +47,8 @@ main(int argc, char** argv)
ctx.back_media = medium1;
/* First cube */
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
d3(ctx.offset, -1, -1, -1);
ctx.scale = 3;
@@ -57,8 +57,8 @@ main(int argc, char** argv)
ctx.reverse_vrtx = 1;
/* Second cube */
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_analyze(scn, &desc) == RES_OK);
@@ -72,8 +72,8 @@ main(int argc, char** argv)
ctx.back_media = medium0; /* mismatch with cube 2 */
/* Third cube */
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
if(desc) CHK(senc_descriptor_ref_put(desc) == RES_OK);
desc = NULL;
diff --git a/src/test_senc_cube_on_cube.c b/src/test_senc_cube_on_cube.c
@@ -59,7 +59,7 @@ main(int argc, char** argv)
/* Create the scene */
CHK(senc_scene_create(dev, &scn) == RES_OK);
- ctx.positions = box_vertices;
+ ctx.positions = cube_vertices; /* Need true cubes for cubes #1 and #2 */
ctx.indices = box_indices;
ctx.scale = 1;
ctx.reverse_vrtx = 0;
@@ -72,8 +72,8 @@ main(int argc, char** argv)
ctx.back_media = medium0;
/* Add cube #1 */
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media,
- NULL, box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media,
+ NULL, nvertices, get_position, &ctx) == RES_OK);
d3(ctx.offset, 1, 1, 1);
ctx.scale = 1;
@@ -84,9 +84,10 @@ main(int argc, char** argv)
ctx.back_media = medium0;
/* Add cube #2 (has a duplicate face with cube #1) */
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media,
- NULL, box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media,
+ NULL, nvertices, get_position, &ctx) == RES_OK);
+ ctx.positions = box_vertices; /* Can use distorded cube for cube #3 */
d3(ctx.offset, 0, 0, 0);
ctx.scale = 4;
ctx.reverse_vrtx = 1;
@@ -97,8 +98,8 @@ main(int argc, char** argv)
ctx.back_media = medium1;
/* Add cube #3 */
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media,
- NULL, box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media,
+ NULL, nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_analyze(scn, &desc) == RES_OK);
diff --git a/src/test_senc_descriptor.c b/src/test_senc_descriptor.c
@@ -53,8 +53,8 @@ main(int argc, char** argv)
ctx.front_media = medium0;
ctx.back_media = medium1;
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_analyze(scn, &desc) == RES_OK);
@@ -112,15 +112,15 @@ main(int argc, char** argv)
CHK(senc_descriptor_get_global_vertices_count(NULL, &count) == RES_BAD_ARG);
CHK(senc_descriptor_get_global_vertices_count(desc, NULL) == RES_BAD_ARG);
CHK(senc_descriptor_get_global_vertices_count(desc, &count) == RES_OK);
- CHK(count == box_nvertices);
+ CHK(count == nvertices);
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(count == ntriangles);
CHK(senc_descriptor_get_global_triangle(NULL, 0, indices) == RES_BAD_ARG);
- CHK(senc_descriptor_get_global_triangle(NULL, box_ntriangles, indices)
+ CHK(senc_descriptor_get_global_triangle(NULL, 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);
@@ -129,7 +129,7 @@ main(int argc, char** argv)
&& indices[2] == box_indices[2]);
CHK(senc_descriptor_get_global_vertex(NULL, 0, coord) == RES_BAD_ARG);
- CHK(senc_descriptor_get_global_vertex(NULL, box_nvertices, coord)
+ CHK(senc_descriptor_get_global_vertex(NULL, 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);
@@ -139,7 +139,7 @@ main(int argc, char** argv)
CHK(senc_descriptor_get_global_triangle_media(NULL, 0, media)
== RES_BAD_ARG);
- CHK(senc_descriptor_get_global_triangle_media(NULL, box_nvertices, media)
+ CHK(senc_descriptor_get_global_triangle_media(NULL, nvertices, media)
== RES_BAD_ARG);
CHK(senc_descriptor_get_global_triangle_media(desc, 0, NULL)
== RES_BAD_ARG);
@@ -150,7 +150,7 @@ main(int argc, char** argv)
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);
+ NULL, 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)
@@ -161,25 +161,25 @@ main(int argc, char** argv)
/* Add valid duplicate geometry */
CHK(senc_descriptor_ref_put(desc) == RES_OK);
desc = NULL;
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media,
- NULL, box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media,
+ NULL, nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_analyze(scn, &desc) == RES_OK);
CHK(senc_descriptor_get_global_vertices_count(desc, &count) == RES_OK);
/* Duplicate vertices have been replaced */
- CHK(count == box_nvertices);
+ CHK(count == nvertices);
CHK(senc_descriptor_get_global_triangles_count(desc, &count) == RES_OK);
/* Duplicate triangles have been replaced */
- CHK(count == box_ntriangles);
+ CHK(count == ntriangles);
/* Add invalid duplicate geometry */
CHK(senc_descriptor_ref_put(desc) == RES_OK);
desc = NULL;
ctx.front_media = medium1;
ctx.back_media = medium0;
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_BAD_ARG);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_BAD_ARG);
CHK(senc_scene_ref_put(scn) == RES_OK);
CHK(senc_device_ref_put(dev) == RES_OK);
diff --git a/src/test_senc_enclosure.c b/src/test_senc_enclosure.c
@@ -17,7 +17,6 @@
#include "senc_s3d_wrapper.h"
#include "test_senc_utils.h"
-#include <rsys/float3.h>
#include <rsys/double3.h>
#include <star/s3d.h>
@@ -70,8 +69,8 @@ main(int argc, char** argv)
ctx.front_media = medium0;
ctx.back_media = medium1;
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media,
- NULL, box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media,
+ NULL, nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_analyze(scn, &desc) == RES_OK);
@@ -85,52 +84,52 @@ main(int argc, char** argv)
CHK(senc_enclosure_ref_put(enclosure) == RES_OK);
CHK(senc_enclosure_get_triangle(NULL, 0, indices[0]) == RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle(enclosure, box_ntriangles, indices[0])
+ CHK(senc_enclosure_get_triangle(enclosure, ntriangles, indices[0])
== RES_BAD_ARG);
CHK(senc_enclosure_get_triangle(enclosure, 0, NULL) == RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle(NULL, box_ntriangles, indices[0])
+ CHK(senc_enclosure_get_triangle(NULL, ntriangles, indices[0])
== RES_BAD_ARG);
CHK(senc_enclosure_get_triangle(NULL, 0, NULL) == RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle(enclosure, box_ntriangles, NULL)
+ CHK(senc_enclosure_get_triangle(enclosure, ntriangles, NULL)
== RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle(NULL, box_ntriangles, NULL) == RES_BAD_ARG);
+ CHK(senc_enclosure_get_triangle(NULL, ntriangles, NULL) == RES_BAD_ARG);
CHK(senc_enclosure_get_triangle(enclosure, 0, indices[0]) == RES_OK);
CHK(senc_enclosure_get_vertex(NULL, 0, vrtx) == RES_BAD_ARG);
- CHK(senc_enclosure_get_vertex(enclosure, box_nvertices, vrtx)
+ CHK(senc_enclosure_get_vertex(enclosure, nvertices, vrtx)
== RES_BAD_ARG);
CHK(senc_enclosure_get_vertex(enclosure, 0, NULL) == RES_BAD_ARG);
- CHK(senc_enclosure_get_vertex(NULL, box_nvertices, vrtx) == RES_BAD_ARG);
+ CHK(senc_enclosure_get_vertex(NULL, nvertices, vrtx) == RES_BAD_ARG);
CHK(senc_enclosure_get_vertex(NULL, 0, NULL) == RES_BAD_ARG);
- CHK(senc_enclosure_get_vertex(enclosure, box_nvertices, NULL)
+ CHK(senc_enclosure_get_vertex(enclosure, nvertices, NULL)
== RES_BAD_ARG);
- CHK(senc_enclosure_get_vertex(NULL, box_nvertices, NULL) == RES_BAD_ARG);
+ CHK(senc_enclosure_get_vertex(NULL, nvertices, NULL) == RES_BAD_ARG);
CHK(senc_enclosure_get_vertex(enclosure, 0, vrtx) == RES_OK);
CHK(senc_enclosure_get_triangle_media(NULL, 0, medium) == RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle_media(enclosure, box_ntriangles, medium)
+ CHK(senc_enclosure_get_triangle_media(enclosure, ntriangles, medium)
== RES_BAD_ARG);
CHK(senc_enclosure_get_triangle_media(enclosure, 0, NULL) == RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle_media(NULL, box_ntriangles, medium)
+ CHK(senc_enclosure_get_triangle_media(NULL, ntriangles, medium)
== RES_BAD_ARG);
CHK(senc_enclosure_get_triangle_media(NULL, 0, NULL) == RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle_media(enclosure, box_ntriangles, NULL)
+ CHK(senc_enclosure_get_triangle_media(enclosure, ntriangles, NULL)
== RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle_media(NULL, box_ntriangles, NULL)
+ CHK(senc_enclosure_get_triangle_media(NULL, ntriangles, NULL)
== RES_BAD_ARG);
CHK(senc_enclosure_get_triangle_media(enclosure, 0, medium) == RES_OK);
CHK(senc_enclosure_get_triangle_global_id(NULL, 0, &gid) == RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle_global_id(enclosure, box_ntriangles, &gid)
+ CHK(senc_enclosure_get_triangle_global_id(enclosure, ntriangles, &gid)
== RES_BAD_ARG);
CHK(senc_enclosure_get_triangle_global_id(enclosure, 0, NULL)
== RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle_global_id(NULL, box_ntriangles, &gid)
+ CHK(senc_enclosure_get_triangle_global_id(NULL, ntriangles, &gid)
== RES_BAD_ARG);
CHK(senc_enclosure_get_triangle_global_id(NULL, 0, NULL) == RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle_global_id(enclosure, box_ntriangles, NULL)
+ CHK(senc_enclosure_get_triangle_global_id(enclosure, ntriangles, NULL)
== RES_BAD_ARG);
- CHK(senc_enclosure_get_triangle_global_id(NULL, box_ntriangles, NULL)
+ CHK(senc_enclosure_get_triangle_global_id(NULL, ntriangles, NULL)
== RES_BAD_ARG);
CHK(senc_enclosure_get_triangle_global_id(enclosure, 0, &gid) == RES_OK);
@@ -146,9 +145,9 @@ main(int argc, char** argv)
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.triangle_count == ntriangles);
+ CHK(header.unique_triangle_count == ntriangles);
+ CHK(header.vertices_count == nvertices);
CHK(header.is_infinite == (i == 0));
FOR_EACH(t, 0, header.triangle_count) {
@@ -161,7 +160,7 @@ main(int argc, char** argv)
FOR_EACH(i, 0, 2)
CHK(senc_descriptor_get_enclosure(desc, i, enclosures + i) == RES_OK);
- FOR_EACH(n, 0, box_ntriangles) {
+ FOR_EACH(n, 0, ntriangles) {
/* Read same triangles in both enclosures */
FOR_EACH(i, 0, 2)
CHK(senc_enclosure_get_triangle(enclosures[i], n, indices[i]) == RES_OK);
@@ -188,8 +187,8 @@ main(int argc, char** argv)
ctx.front_media = medium0;
ctx.back_media = medium0;
- CHK(senc_scene_add_geometry(scn, box_ntriangles - 1, get_indices, get_media,
- NULL, box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles - 1, get_indices, get_media,
+ NULL, nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_analyze(scn, &desc) == RES_OK);
@@ -208,8 +207,8 @@ main(int argc, char** argv)
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.unique_triangle_count == ntriangles - 1);
+ CHK(header.vertices_count == nvertices);
CHK(header.is_infinite == 1);
FOR_EACH(t, 0, header.unique_triangle_count) {
diff --git a/src/test_senc_sample_enclosure.c b/src/test_senc_sample_enclosure.c
@@ -61,7 +61,7 @@ main(int argc, char** argv)
/* A 3D cube, but with a hole (incomplete).
* 1 single enclosure including both sides of triangles */
- ctx.positions = box_vertices;
+ ctx.positions = cube_vertices; /* Need a true cube */
ctx.indices = box_indices;
ctx.scale = 1;
ctx.reverse_vrtx = 0;
@@ -70,8 +70,8 @@ main(int argc, char** argv)
ctx.front_media = medium0;
ctx.back_media = medium0;
- CHK(senc_scene_add_geometry(scn, box_ntriangles - 1, get_indices,
- get_media, NULL, box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles - 1, get_indices,
+ get_media, NULL, nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_analyze(scn, &desc) == RES_OK);
diff --git a/src/test_senc_scene.c b/src/test_senc_scene.c
@@ -74,29 +74,29 @@ main(int argc, char** argv)
ctx.back_media = medium1;
ctx.global_ids = gid_face;
- CHK(senc_scene_add_geometry(NULL, box_ntriangles, get_indices, get_media,
- get_global_id, box_nvertices, get_position, &ctx) == RES_BAD_ARG);
+ CHK(senc_scene_add_geometry(NULL, ntriangles, get_indices, get_media,
+ get_global_id, nvertices, get_position, &ctx) == RES_BAD_ARG);
CHK(senc_scene_add_geometry(scn, 0, get_indices, get_media, get_global_id,
- box_nvertices, get_position, &ctx) == RES_BAD_ARG);
- CHK(senc_scene_add_geometry(scn, box_ntriangles, NULL, get_media,
- get_global_id, box_nvertices, get_position, &ctx) == RES_BAD_ARG);
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, NULL,
- get_global_id, box_nvertices, get_position, &ctx) == RES_BAD_ARG);
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media,
+ nvertices, get_position, &ctx) == RES_BAD_ARG);
+ CHK(senc_scene_add_geometry(scn, ntriangles, NULL, get_media,
+ get_global_id, nvertices, get_position, &ctx) == RES_BAD_ARG);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, NULL,
+ get_global_id, nvertices, get_position, &ctx) == RES_BAD_ARG);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media,
get_global_id, 0, get_position, &ctx) == RES_BAD_ARG);
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media,
- get_global_id, box_nvertices, NULL, &ctx) == RES_BAD_ARG);
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media,
- get_global_id, box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media,
+ get_global_id, nvertices, NULL, &ctx) == RES_BAD_ARG);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media,
+ get_global_id, nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_get_triangles_count(scn, &count) == RES_OK);
- CHK(count == box_ntriangles);
+ CHK(count == ntriangles);
CHK(senc_scene_get_unique_triangles_count(scn, &count) == RES_OK);
- CHK(count == box_ntriangles);
+ CHK(count == ntriangles);
CHK(senc_scene_get_vertices_count(scn, &count) == RES_OK);
- CHK(count == box_nvertices);
+ CHK(count == nvertices);
CHK(senc_scene_get_unique_vertices_count(scn, &count) == RES_OK);
- CHK(count == box_nvertices);
+ CHK(count == nvertices);
CHK(senc_scene_analyze(NULL, NULL) == RES_BAD_ARG);
CHK(senc_scene_analyze(scn, NULL) == RES_BAD_ARG);
@@ -112,11 +112,11 @@ main(int argc, char** argv)
CHK(senc_scene_ref_put(scn) == RES_OK);
CHK(senc_descriptor_ref_put(desc) == RES_OK);
CHK(senc_scene_create(dev, &scn) == RES_OK);
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media,
- get_global_id, box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media,
+ get_global_id, nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_analyze(scn, &desc) == RES_OK);
- FOR_EACH(i, 0, box_ntriangles) {
+ FOR_EACH(i, 0, ntriangles) {
unsigned gid;
CHK(senc_descriptor_get_global_triangle_global_id(desc, i, &gid) == RES_OK);
/* gid has been set to gid_face. */
@@ -126,11 +126,11 @@ main(int argc, char** argv)
CHK(senc_scene_ref_put(scn) == RES_OK);
CHK(senc_descriptor_ref_put(desc) == RES_OK);
CHK(senc_scene_create(dev, &scn) == RES_OK);
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_analyze(scn, &desc) == RES_OK);
- FOR_EACH(i, 0, box_ntriangles) {
+ FOR_EACH(i, 0, ntriangles) {
unsigned gid;
CHK(senc_descriptor_get_global_triangle_global_id(desc, i, &gid) == RES_OK);
/* Default gid: triangle rank. */
@@ -138,36 +138,36 @@ main(int argc, char** argv)
}
/* Invalid vertex ID */
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices - 1, get_position, &ctx) == RES_BAD_ARG);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices - 1, get_position, &ctx) == RES_BAD_ARG);
/* Incoherent medium on a duplicate triangle */
ctx.back_media = medium1_3;
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_BAD_ARG);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_BAD_ARG);
/* It is OK dd geometry after a failed add */
ctx.back_media = medium1;
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
/* Coherent medium on duplicate triangle */
ctx.back_media = medium1;
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
/* Coherent medium on duplicate triangle V2 */
ctx.reverse_med = 1;
ctx.front_media = medium1;
ctx.back_media = medium0;
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
/* Coherent medium on duplicate triangle V3 */
ctx.reverse_med = 0;
ctx.reverse_vrtx = 1;
- CHK(senc_scene_add_geometry(scn, box_ntriangles, get_indices, get_media, NULL,
- box_nvertices, get_position, &ctx) == RES_OK);
+ CHK(senc_scene_add_geometry(scn, ntriangles, get_indices, get_media, NULL,
+ nvertices, get_position, &ctx) == RES_OK);
CHK(senc_scene_ref_put(scn) == RES_OK);
CHK(senc_device_ref_put(dev) == RES_OK);
diff --git a/src/test_senc_utils.h b/src/test_senc_utils.h
@@ -24,7 +24,19 @@
/*******************************************************************************
* Geometry
******************************************************************************/
+/* Distorded cube */
static const double box_vertices[8/*#vertices*/*3/*#coords per vertex*/] = {
+ 0.1, 0.0, 0.0,
+ 1.0, 0.0, 0.0,
+ 0.0, 1.0, 0.0,
+ 1.0, 1.0, 0.0,
+ 0.0, 0.0, 1.1,
+ 1.0, 0.0, 1.0,
+ 0.0, 1.0, 1.0,
+ 1.0, 1.1, 1.0
+};
+/* Need a true cube for some tests */
+static const double cube_vertices[8/*#vertices*/ * 3/*#coords per vertex*/] = {
0.0, 0.0, 0.0,
1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
@@ -34,7 +46,9 @@ static const double box_vertices[8/*#vertices*/*3/*#coords per vertex*/] = {
0.0, 1.0, 1.0,
1.0, 1.0, 1.0
};
-static const unsigned box_nvertices = sizeof(box_vertices) / sizeof(double[3]);
+static const unsigned nvertices = sizeof(box_vertices) / sizeof(double[3]);
+STATIC_ASSERT(sizeof(box_vertices) == sizeof(cube_vertices),
+ The_2_geometries_must_have_the_same_number_of_vertices);
/* The following array lists the indices toward the 3D vertices of each
* triangle.
@@ -56,7 +70,7 @@ box_indices[12/*#triangles*/*3/*#indices per triangle*/] = {
0, 1, 4, 4, 1, 5 /* Bottom face */
};
static const unsigned
-box_ntriangles = sizeof(box_indices) / (3 * sizeof(*box_indices));
+ntriangles = sizeof(box_indices) / (3 * sizeof(*box_indices));
struct context {
const double* positions;