summaryrefslogtreecommitdiff
path: root/boost/geometry/algorithms/detail/overlay/get_turns.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/algorithms/detail/overlay/get_turns.hpp')
-rw-r--r--boost/geometry/algorithms/detail/overlay/get_turns.hpp27
1 files changed, 14 insertions, 13 deletions
diff --git a/boost/geometry/algorithms/detail/overlay/get_turns.hpp b/boost/geometry/algorithms/detail/overlay/get_turns.hpp
index a5d8f3f023..098c7b5642 100644
--- a/boost/geometry/algorithms/detail/overlay/get_turns.hpp
+++ b/boost/geometry/algorithms/detail/overlay/get_turns.hpp
@@ -22,6 +22,7 @@
#include <boost/array.hpp>
#include <boost/concept_check.hpp>
#include <boost/mpl/if.hpp>
+#include <boost/mpl/vector_c.hpp>
#include <boost/range.hpp>
#include <boost/geometry/core/access.hpp>
@@ -142,7 +143,7 @@ class get_turns_in_sections
template <typename Geometry, typename Section>
static inline bool neighbouring(Section const& section,
- int index1, int index2)
+ signed_size_type index1, signed_size_type index2)
{
// About n-2:
// (square: range_count=5, indices 0,1,2,3
@@ -150,7 +151,7 @@ class get_turns_in_sections
// Also tested for open polygons, and/or duplicates
// About first condition: will be optimized by compiler (static)
// It checks if it is areal (box,ring,(multi)polygon
- int const n = int(section.range_count);
+ signed_size_type const n = static_cast<signed_size_type>(section.range_count);
boost::ignore_unused_variable_warning(n);
boost::ignore_unused_variable_warning(index1);
@@ -207,8 +208,8 @@ public :
int const dir1 = sec1.directions[0];
int const dir2 = sec2.directions[0];
- int index1 = sec1.begin_index;
- int ndi1 = sec1.non_duplicate_index;
+ signed_size_type index1 = sec1.begin_index;
+ signed_size_type ndi1 = sec1.non_duplicate_index;
bool const same_source =
source_id1 == source_id2
@@ -236,8 +237,8 @@ public :
begin_range_1, end_range_1, next1, true);
advance_to_non_duplicate_next(nd_next1, it1, sec1, robust_policy);
- int index2 = sec2.begin_index;
- int ndi2 = sec2.non_duplicate_index;
+ signed_size_type index2 = sec2.begin_index;
+ signed_size_type ndi2 = sec2.non_duplicate_index;
range2_iterator prev2, it2, end2;
@@ -359,7 +360,7 @@ private :
typename boost::range_iterator<Range const>::type& it,
typename boost::range_iterator<Range const>::type& prev,
typename boost::range_iterator<Range const>::type& end,
- int& index, int& ndi,
+ signed_size_type& index, signed_size_type& ndi,
int dir, Box const& other_bounding_box, RobustPolicy const& robust_policy)
{
it = boost::begin(range) + section.begin_index;
@@ -524,8 +525,8 @@ struct get_turns_cs
RobustPolicy const& robust_policy,
Turns& turns,
InterruptPolicy& interrupt_policy,
- signed_index_type multi_index = -1,
- signed_index_type ring_index = -1)
+ signed_size_type multi_index = -1,
+ signed_size_type ring_index = -1)
{
if ( boost::size(range) <= 1)
{
@@ -552,7 +553,7 @@ struct get_turns_cs
//char previous_side[2] = {0, 0};
- signed_index_type index = 0;
+ signed_size_type index = 0;
for (iterator_type prev = it++;
it != boost::end(view);
@@ -696,7 +697,7 @@ struct get_turns_polygon_cs
int source_id2, Box const& box,
RobustPolicy const& robust_policy,
Turns& turns, InterruptPolicy& interrupt_policy,
- signed_index_type multi_index = -1)
+ signed_size_type multi_index = -1)
{
typedef typename geometry::ring_type<Polygon>::type ring_type;
@@ -714,7 +715,7 @@ struct get_turns_polygon_cs
turns, interrupt_policy,
multi_index, -1);
- signed_index_type i = 0;
+ signed_size_type i = 0;
typename interior_return_type<Polygon const>::type
rings = interior_rings(polygon);
@@ -753,7 +754,7 @@ struct get_turns_multi_polygon_cs
Multi const
>::type iterator_type;
- signed_index_type i = 0;
+ signed_size_type i = 0;
for (iterator_type it = boost::begin(multi);
it != boost::end(multi);
++it, ++i)