Exemplo n.º 1
0
 inline void apply(Piece const& piece1, Piece const& piece2,
                 bool first = true)
 {
     boost::ignore_unused_variable_warning(first);
     if ( is_adjacent(piece1, piece2)
       || detail::disjoint::disjoint_box_box(piece1.robust_envelope,
                 piece2.robust_envelope))
     {
         return;
     }
     calculate_turns(piece1, piece2);
 }
Exemplo n.º 2
0
    inline void apply(Section const& section1, Section const& section2,
                    bool first = true)
    {
        geofeatures_boost::ignore_unused_variable_warning(first);

        typedef typename geofeatures_boost::range_value<Pieces const>::type piece_type;
        piece_type const& piece1 = m_pieces[section1.ring_id.source_index];
        piece_type const& piece2 = m_pieces[section2.ring_id.source_index];

        if ( piece1.index == piece2.index
          || is_adjacent(piece1, piece2)
          || is_on_same_convex_ring(piece1, piece2)
          || detail::disjoint::disjoint_box_box(section1.bounding_box,
                    section2.bounding_box) )
        {
            return;
        }

        calculate_turns(piece1, piece2, section1, section2);
    }