#include <boost/foreach.hpp>
#include <boost/geometry/io/svg/svg_mapper.hpp>
+#include <boost/geometry/algorithms/intersection.hpp>
inline char piece_type_char(bg::strategy::buffer::piece_type const& type)
// If you want to see travel information
<< std::endl
- << " nxt " << it->operations[0].enriched.travels_to_ip_index
- << "/" << it->operations[1].enriched.travels_to_ip_index
- << " or " << it->operations[0].enriched.next_ip_index
- << "/" << it->operations[1].enriched.next_ip_index
+ << " nxt " << it->operations[0].enriched.get_next_turn_index()
+ << "/" << it->operations[1].enriched.get_next_turn_index()
//<< " frac " << it->operations[0].fraction
// If you want to see (robust)point coordinates (e.g. to find duplicates)
typedef typename bg::point_type<ring_type>::type point_type;
std::ostringstream out;
- out << piece.index << " (" << piece_type_char(piece.type) << ") " << piece.first_seg_id.segment_index << ".." << piece.last_segment_index - 1;
+ out << piece.index
+ << (piece.is_flat_start ? " FS" : "")
+ << (piece.is_flat_end ? " FE" : "")
+ << " (" << piece_type_char(piece.type) << ") "
+ << piece.first_seg_id.segment_index
+ << ".." << piece.last_segment_index - 1;
point_type label_point = bg::return_centroid<point_type>(corner);
if ((piece.type == bg::strategy::buffer::buffered_concave
}
}
- template <typename Mapper, typename Geometry, typename RescalePolicy>
- void map_self_ips(Mapper& mapper, Geometry const& geometry, RescalePolicy const& rescale_policy)
+ template <typename Mapper, typename Geometry, typename Strategy, typename RescalePolicy>
+ void map_self_ips(Mapper& mapper, Geometry const& geometry, Strategy const& strategy, RescalePolicy const& rescale_policy)
{
typedef bg::detail::overlay::turn_info
<
bg::self_turns
<
bg::detail::overlay::assign_null_policy
- >(geometry, rescale_policy, turns, policy);
+ >(geometry, strategy, rescale_policy, turns, policy);
BOOST_FOREACH(turn_info const& turn, turns)
{