star-2d

Contour structuring for efficient 2D geometric queries
git clone git://git.meso-star.fr/star-2d.git
Log | Files | Refs | README | LICENSE

commit c8f7174824731da7d403b2ddb8ddfe8d60f97024
parent c1939428ea5f4a43ffb5708d6fbed14212a83ffd
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Tue,  5 Jan 2021 17:46:20 +0100

Offset test geometry to avoid some possible success by chance

Diffstat:
Msrc/test_s2d_closest_point.c | 1-
Msrc/test_s2d_sample.c | 4++--
Msrc/test_s2d_scene.c | 4++--
Msrc/test_s2d_scene_view.c | 18+++++++++---------
Msrc/test_s2d_trace_ray.c | 12++++++------
Msrc/test_s2d_trace_ray_3d.c | 2+-
Msrc/test_s2d_utils.h | 10+++++-----
7 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/src/test_s2d_closest_point.c b/src/test_s2d_closest_point.c @@ -308,7 +308,6 @@ test_square(struct s2d_device* dev) check_closest_point_square(pos, igeom, filter_ctx.prim_to_filter, &hit); } - /* Clean up */ CHK(s2d_shape_ref_put(shape) == RES_OK); CHK(s2d_scene_ref_put(scn) == RES_OK); diff --git a/src/test_s2d_sample.c b/src/test_s2d_sample.c @@ -120,7 +120,7 @@ main(int argc, char** argv) struct s2d_attrib attr_normal; const float u = rand_canonic(); const float v = rand_canonic(); - float N[2], P[2]; + float N[2], P[2], tmp[2]; CHK(s2d_scene_view_sample(scnview, u, v, &prim, &s) == RES_OK); CHK(S2D_PRIMITIVE_EQ(&prim, &S2D_PRIMITIVE_NULL) == 0); @@ -141,7 +141,7 @@ main(int argc, char** argv) case 3: f2(P, 1.f, -1.f*s + (1-s)* 1.f); f2(N,-1.f, 0.f); break; default: CHK(0 == 1); break; /* Invalid primitive id */ } - + f2_add(P, P, f2_splat(tmp, 10)); CHK(f2_eq_eps(P, attr_position.value, 1.e-6f)); CHK(f2_eq_eps(N, attr_normal.value, 1.e-6f)); } diff --git a/src/test_s2d_scene.c b/src/test_s2d_scene.c @@ -128,8 +128,8 @@ main(int argc, char** argv) CHK(eq_epsf(area, 4.f, 1.e-6f)); CHK(s2d_scene_view_get_aabb(scnview, lower, upper) == RES_OK); - CHK(f2_eq_eps(lower, f2(tmp, -1.f, -1.f), 1.e-6f)); - CHK(f2_eq_eps(upper, f2(tmp, 1.f, 1.f), 1.e-6f)); + CHK(f2_eq_eps(lower, f2(tmp, 9.f, 9.f), 1.e-6f)); + CHK(f2_eq_eps(upper, f2(tmp, 11.f, 11.f), 1.e-6f)); CHK(s2d_scene_view_ref_put(scnview) == RES_OK); diff --git a/src/test_s2d_scene_view.c b/src/test_s2d_scene_view.c @@ -110,7 +110,7 @@ test_trace_ray CHK(s2d_scene_view_create(scn, S2D_SAMPLE|S2D_GET_PRIMITIVE, &scnview) == RES_OK); - f2(org, 0.f, -0.25f); + f2(org, 10.f, 9.75f); f2(dir, 0.f, 1.f); f2(range, 0.f, FLT_MAX); CHK(s2d_scene_view_trace_ray(scnview, org, dir, range, NULL, &hit) == RES_BAD_OP); @@ -454,24 +454,24 @@ test_aabb CHK(s2d_scene_view_get_aabb(scnview, lower, NULL) == RES_BAD_ARG); CHK(s2d_scene_view_get_aabb(NULL, lower, upper) == RES_BAD_ARG); CHK(s2d_scene_view_get_aabb(scnview, lower, upper) == RES_OK); - CHK(lower[0] == -1.f && upper[0] == 1.f); - CHK(lower[1] == -1.f && upper[1] == 1.f); + CHK(lower[0] == 9.f && upper[0] == 11.f); + CHK(lower[1] == 9.f && upper[1] == 11.f); CHK(s2d_shape_enable(square, 0) == RES_OK); CHK(s2d_scene_view_get_aabb(scnview, lower, upper) == RES_OK); - CHK(lower[0] == -1.f && upper[0] == 1.f); - CHK(lower[1] == -1.f && upper[1] == 1.f); + CHK(lower[0] == 9.f && upper[0] == 11.f); + CHK(lower[1] == 9.f && upper[1] == 11.f); CHK(s2d_scene_view_ref_put(scnview) == RES_OK); CHK(s2d_scene_view_create(scn, S2D_GET_PRIMITIVE, &scnview) == RES_OK); CHK(s2d_scene_view_get_aabb(scnview, lower, upper) == RES_OK); - CHK(lower[0] == -1.f && upper[0] == 1.f); - CHK(lower[1] == 0.f && upper[1] == 0.f); + CHK(lower[0] == 9.f && upper[0] == 11.f); + CHK(lower[1] == 10.f && upper[1] == 10.f); CHK(s2d_scene_detach_shape(scn, line) == RES_OK); CHK(s2d_scene_view_get_aabb(scnview, lower, upper) == RES_OK); - CHK(lower[0] == -1.f && upper[0] == 1.f); - CHK(lower[1] == 0.f && upper[1] == 0.f); + CHK(lower[0] == 9.f && upper[0] == 11.f); + CHK(lower[1] == 10.f && upper[1] == 10.f); CHK(s2d_scene_view_ref_put(scnview) == RES_OK); CHK(s2d_scene_view_create(scn, S2D_GET_PRIMITIVE, &scnview) == RES_OK); diff --git a/src/test_s2d_trace_ray.c b/src/test_s2d_trace_ray.c @@ -84,7 +84,7 @@ main(int argc, char** argv) CHK(s2d_scene_attach_shape(scn, shape) == RES_OK); - f2(org, 0.f, 0.f); + f2(org, 10.f, 10.f); f2(dir, 0.f, -1.f); f2(range, 0, FLT_MAX); @@ -164,7 +164,7 @@ main(int argc, char** argv) prim2 = hit.prim; - f2(org, 0.f, 2.f); + f2(org, 10.f, 12.f); f2(dir, 0.f, -1.f); CHK(RT(scnview, org, dir, range, NULL, &hit) == RES_OK); CHK(S2D_HIT_NONE(&hit) == 0); @@ -174,7 +174,7 @@ main(int argc, char** argv) CHK(S2D_HIT_NONE(&hit) == 0); CHK(S2D_PRIMITIVE_EQ(&hit.prim, &prim) == 1); - f2_splat(org, 0.f); + f2_splat(org, 10.f); f2(dir, 1.f, 0.f); CHK(RT(scnview, org, dir, range, NULL, &hit) == RES_OK); CHK(S2D_HIT_NONE(&hit) == 0); @@ -195,21 +195,21 @@ main(int argc, char** argv) CHK(s2d_scene_view_ref_put(scnview) == RES_OK); CHK(s2d_scene_view_create(scn, S2D_TRACE, &scnview) == RES_OK); - f2_sub(dir, f2(dir, 0.75f, -1.f), org); + f2(dir, 0.75f, -1.f); f2_normalize(dir, dir); CHK(RT(scnview, org, dir, range, NULL, &hit) == RES_OK); CHK(S2D_HIT_NONE(&hit) == 0); CHK(eq_epsf(hit.u, 0.125f, 1.e-6f) == 1); CHK(eq_epsf(hit.distance, 1.25, 1.E-6f) == 1); - f2_sub(dir, f2(dir, -1.f, 0.25f), org); + f2(dir, -1.f, 0.25f); f2_normalize(dir, dir); CHK(RT(scnview, org, dir, range, NULL, &hit) == RES_OK); CHK(S2D_HIT_NONE(&hit) == 0); CHK(eq_epsf(hit.u, 0.625, 1.e-6f) == 1); CHK(eq_epsf(hit.distance, (float)sqrt(1.0625f), 1e-6f) == 1); - f2(org, -1.25f, 0.f); + f2(org, 8.75f, 10.f); f2(dir, -1, 0.f); CHK(RT(scnview, org, dir, range, NULL, &hit) == RES_OK); CHK(S2D_HIT_NONE(&hit) == 1); diff --git a/src/test_s2d_trace_ray_3d.c b/src/test_s2d_trace_ray_3d.c @@ -63,7 +63,7 @@ main(int argc, char** argv) (shape, square_nsegs, line_segments_get_ids, square_nverts, &vdata, 1, (void*)&square_desc) == RES_OK); - f3_splat(org, 0.f); + f3_splat(org, 10.f); f3(dir, 1, 0, 0); f2(range, 0, FLT_MAX); diff --git a/src/test_s2d_utils.h b/src/test_s2d_utils.h @@ -41,10 +41,10 @@ struct line_segments_desc { * Geometries ******************************************************************************/ static const float square_verts[] = { - 1.f, -1.f, - -1.f, -1.f, - -1.f, 1.f, - 1.f, 1.f + 11.f, 9.f, + 9.f, 9.f, + 9.f, 11.f, + 11.f, 11.f }; const unsigned square_nverts = sizeof(square_verts)/sizeof(float[2]); @@ -58,7 +58,7 @@ const unsigned square_nsegs = sizeof(square_ids)/sizeof(unsigned[2]); static const struct line_segments_desc square_desc = { square_verts, square_ids }; -static const float line_verts[] = { -1.f, 0.f, 1.f, 0.f }; +static const float line_verts[] = { 9.f, 10.f, 11.f, 10.f }; const unsigned line_nverts = sizeof(line_verts)/sizeof(float[2]); const unsigned line_ids[] = { 0, 1 }; const unsigned line_nsegs = sizeof(line_ids)/sizeof(unsigned[2]);