diff options
Diffstat (limited to 'boost/geometry/strategies/cartesian/box_in_box.hpp')
-rw-r--r-- | boost/geometry/strategies/cartesian/box_in_box.hpp | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/boost/geometry/strategies/cartesian/box_in_box.hpp b/boost/geometry/strategies/cartesian/box_in_box.hpp index 7680b8362c..9889658a13 100644 --- a/boost/geometry/strategies/cartesian/box_in_box.hpp +++ b/boost/geometry/strategies/cartesian/box_in_box.hpp @@ -3,6 +3,7 @@ // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. // Copyright (c) 2008-2012 Bruno Lalande, Paris, France. // Copyright (c) 2009-2012 Mateusz Loskot, London, UK. +// Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland. // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands. @@ -21,10 +22,10 @@ #include <boost/geometry/strategies/within.hpp> -namespace boost { namespace geometry { namespace strategy +namespace boost { namespace geometry { namespace strategy { - - + + namespace within { @@ -36,7 +37,8 @@ struct box_within_range , BoxContainingValue const& bing_min , BoxContainingValue const& bing_max) { - return bed_min > bing_min && bed_max < bing_max; + return bing_min <= bed_min && bed_max <= bing_max // contained in containing + && bed_min < bed_max; // interiors overlap } }; @@ -69,9 +71,9 @@ struct relate_box_box_loop assert_dimension_equal<Box1, Box2>(); if (! SubStrategy::apply( - get<min_corner, Dimension>(b_contained), - get<max_corner, Dimension>(b_contained), - get<min_corner, Dimension>(b_containing), + get<min_corner, Dimension>(b_contained), + get<max_corner, Dimension>(b_contained), + get<min_corner, Dimension>(b_containing), get<max_corner, Dimension>(b_containing) ) ) @@ -115,7 +117,7 @@ struct box_in_box { return relate_box_box_loop < - SubStrategy, + SubStrategy, Box1, Box2, 0, dimension<Box1>::type::value >::apply(box1, box2); } @@ -134,9 +136,9 @@ namespace within { namespace services template <typename BoxContained, typename BoxContaining> struct default_strategy < - box_tag, box_tag, - box_tag, areal_tag, - cartesian_tag, cartesian_tag, + box_tag, box_tag, + box_tag, areal_tag, + cartesian_tag, cartesian_tag, BoxContained, BoxContaining > { @@ -152,9 +154,9 @@ namespace covered_by { namespace services template <typename BoxContained, typename BoxContaining> struct default_strategy < - box_tag, box_tag, - box_tag, areal_tag, - cartesian_tag, cartesian_tag, + box_tag, box_tag, + box_tag, areal_tag, + cartesian_tag, cartesian_tag, BoxContained, BoxContaining > { |