From 9524de0dfededc83dba3944d0fc872e859bcf449 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sat, 5 May 2012 16:13:45 +0200 Subject: digital/avr/modules/math/geometry: add intersection code --- .../avr/modules/math/geometry/test/test_geometry.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'digital/avr/modules/math/geometry/test') diff --git a/digital/avr/modules/math/geometry/test/test_geometry.c b/digital/avr/modules/math/geometry/test/test_geometry.c index 17afb787..7b3c5e47 100644 --- a/digital/avr/modules/math/geometry/test/test_geometry.c +++ b/digital/avr/modules/math/geometry/test/test_geometry.c @@ -26,6 +26,7 @@ #include "modules/math/geometry/geometry.h" #include "modules/math/geometry/vect.h" #include "modules/math/geometry/distance.h" +#include "modules/math/geometry/intersection.h" #include "modules/utils/utils.h" #include "modules/uart/uart.h" @@ -236,6 +237,25 @@ test_distance (void) test (d == 670); } +void +test_intersection (void) +{ + vect_t v00 = { 0, 0 }; + vect_t v02 = { 0, 20 }; + vect_t v20 = { 20, 0 }; + vect_t v22 = { 20, 20 }; + vect_t v44 = { 40, 40 }; + test (intersection_segment_segment (&v00, &v22, &v20, &v02) == 1); + test (intersection_segment_segment (&v00, &v22, &v02, &v20) == 1); + test (intersection_segment_segment (&v22, &v00, &v20, &v02) == 1); + test (intersection_segment_segment (&v22, &v00, &v02, &v20) == 1); + test (intersection_segment_segment (&v00, &v22, &v00, &v22) == 0); + test (intersection_segment_segment (&v00, &v22, &v00, &v44) == 0); + test (intersection_segment_segment (&v22, &v44, &v02, &v20) == 0); + test (intersection_segment_segment (&v00, &v44, &v02, &v20) == 1); + test (intersection_segment_segment (&v44, &v00, &v02, &v20) == 1); +} + int main (void) { @@ -243,6 +263,7 @@ main (void) test_geometry (); test_vect (); test_distance (); + test_intersection (); uart0_putc ('o'); uart0_putc ('k'); uart0_putc ('\n'); -- cgit v1.2.3