@@ -397,8 +397,8 @@ fn test_apply_restrictions_1() {
397397 let mut poly_helper1 = poly1. clone ( ) ;
398398 let mut poly_helper2 = poly2. clone ( ) ;
399399
400- apply_restrictions ( & poly1, & mut poly_helper1 , & poly2 ) ;
401- apply_restrictions ( & poly2, & mut poly_helper2 , & poly1 ) ;
400+ apply_restrictions ( & poly1, & poly2 , & mut poly_helper1 ) ;
401+ apply_restrictions ( & poly2, & poly1 , & mut poly_helper2 ) ;
402402
403403 approx:: assert_abs_diff_eq!( poly_helper1[ ( 0 , 2 ) ] , 0.75 ) ;
404404 approx:: assert_abs_diff_eq!( poly_helper1[ ( 1 , 2 ) ] , 0.75 ) ;
@@ -434,8 +434,8 @@ fn test_apply_restrictions_2() {
434434 let mut poly_helper1 = poly1. clone ( ) ;
435435 let mut poly_helper2 = poly2. clone ( ) ;
436436
437- apply_restrictions ( & poly1, & mut poly_helper1 , & poly2 ) ;
438- apply_restrictions ( & poly2, & mut poly_helper2 , & poly1 ) ;
437+ apply_restrictions ( & poly1, & poly2 , & mut poly_helper1 ) ;
438+ apply_restrictions ( & poly2, & poly1 , & mut poly_helper2 ) ;
439439
440440 let expected_1 = nalgebra:: Matrix2xX :: from_columns ( & [
441441 nalgebra:: vector![ 0.0 , 0.0 ] ,
@@ -522,3 +522,34 @@ fn test_clean_self_intersections_swap() {
522522 }
523523 }
524524}
525+
526+ #[ test]
527+ fn test_intersect_polygons ( ) {
528+ let poly1 = nalgebra:: Matrix2xX :: from_columns ( & [
529+ nalgebra:: vector![ 0.0 , 0.0 ] ,
530+ nalgebra:: vector![ 0.0 , 1.0 ] ,
531+ nalgebra:: vector![ 1.0 , 1.0 ] ,
532+ nalgebra:: vector![ 1.0 , 0.0 ] ,
533+ ] ) ;
534+ let poly2 = nalgebra:: Matrix2xX :: from_columns ( & [
535+ nalgebra:: vector![ 0.5 , 0.5 ] ,
536+ nalgebra:: vector![ 0.5 , 1.5 ] ,
537+ nalgebra:: vector![ 1.5 , 1.5 ] ,
538+ nalgebra:: vector![ 1.5 , 0.5 ] ,
539+ ] ) ;
540+ let mut pos_helper = poly1. clone ( ) ;
541+ apply_restrictions ( & poly1, & poly2, & mut pos_helper) ;
542+
543+ let expected = nalgebra:: Matrix2xX :: from_columns ( & [
544+ nalgebra:: vector![ 0.0 , 0.0 ] ,
545+ nalgebra:: vector![ 0.0 , 1.0 ] ,
546+ nalgebra:: vector![ 0.75 , 0.75 ] ,
547+ nalgebra:: vector![ 1.0 , 0.0 ] ,
548+ ] ) ;
549+
550+ for i in 0 ..2 {
551+ for j in 0 ..poly1. ncols ( ) {
552+ approx:: assert_abs_diff_eq!( pos_helper[ ( i, j) ] , expected[ ( i, j) ] ) ;
553+ }
554+ }
555+ }
0 commit comments