[test] fix reverse information for ccw geometries in overlay test

This commit is contained in:
Barend Gehrels 2017-05-21 14:45:47 +02:00
parent 25f55bfac4
commit d6c8619cdc

View File

@ -383,8 +383,13 @@ void test_overlay(std::string const& caseid,
typedef typename boost::range_value<Geometry>::type geometry_out; typedef typename boost::range_value<Geometry>::type geometry_out;
typedef bg::detail::overlay::overlay typedef bg::detail::overlay::overlay
< <
Geometry, Geometry, false, OverlayType == bg::overlay_difference, Geometry, Geometry,
false, geometry_out, bg::detail::overlay::do_reverse<bg::point_order<Geometry>::value>::value,
OverlayType == bg::overlay_difference
? ! bg::detail::overlay::do_reverse<bg::point_order<Geometry>::value>::value
: bg::detail::overlay::do_reverse<bg::point_order<Geometry>::value>::value,
bg::detail::overlay::do_reverse<bg::point_order<Geometry>::value>::value,
geometry_out,
OverlayType OverlayType
> overlay; > overlay;
@ -445,11 +450,11 @@ void test_overlay(std::string const& caseid,
#define TEST_UNION_WITH(caseid, index1, index2, area, clips, holes) (test_overlay<multi_polygon, bg::overlay_union>) \ #define TEST_UNION_WITH(caseid, index1, index2, area, clips, holes) (test_overlay<multi_polygon, bg::overlay_union>) \
( #caseid "_union" #index1 "_" #index2, caseid[index1], caseid[index2], area, clips, holes) ( #caseid "_union" #index1 "_" #index2, caseid[index1], caseid[index2], area, clips, holes)
template <typename T> template <typename T, bool Clockwise>
void test_all() void test_all()
{ {
typedef bg::model::point<T, 2, bg::cs::cartesian> point_type; typedef bg::model::point<T, 2, bg::cs::cartesian> point_type;
typedef bg::model::polygon<point_type> polygon; typedef bg::model::polygon<point_type, Clockwise> polygon;
typedef bg::model::multi_polygon<polygon> multi_polygon; typedef bg::model::multi_polygon<polygon> multi_polygon;
TEST_UNION(case_multi_simplex, 14.58, 1, 0); TEST_UNION(case_multi_simplex, 14.58, 1, 0);
@ -493,6 +498,7 @@ void test_all()
int test_main(int, char* []) int test_main(int, char* [])
{ {
test_all<double>(); test_all<double, true>();
// test_all<double, false>();
return 0; return 0;
} }