Index: scan_arbitrary.hpp =================================================================== --- scan_arbitrary.hpp (revision 58921) +++ scan_arbitrary.hpp (working copy) @@ -15,6 +15,7 @@ template class line_intersection : public scanline_base { private: + typedef scanline_base base; typedef typename scanline_base::Point Point; //the first point is the vertex and and second point establishes the slope of an edge eminating from the vertex @@ -206,7 +207,7 @@ //itr = pts.begin(); //itr2 = pts.end(); for( ; itr != itr2; ++itr) { - if(intersects_grid(*itr, he1)) + if(base::intersects_grid(*itr, he1)) intersection_points[id1].insert(*itr); } } @@ -233,8 +234,8 @@ //edge changed orientation, invert count on edge output_segments.back().second.second *= -1; } - if(!is_vertical(input_segments[intermediate_segments[i].second].first) && - is_vertical(output_segments.back().first)) { + if(!base::is_vertical(input_segments[intermediate_segments[i].second].first) && + base::is_vertical(output_segments.back().first)) { output_segments.back().second.second *= -1; } if(lp(output_segments.back().first.second, output_segments.back().first.first)) { @@ -339,7 +340,7 @@ segment_id id = (*iter).second; const std::set& pts = intersection_points[id]; Point hpt(he.first.get(HORIZONTAL)+1, he.first.get(VERTICAL)); - if(!is_vertical(he) && less_slope(he.first.get(HORIZONTAL), he.first.get(VERTICAL), + if(!base::is_vertical(he) && base::less_slope(he.first.get(HORIZONTAL), he.first.get(VERTICAL), he.second, hpt)) { //slope is below horizontal std::vector tmpPts; @@ -933,6 +934,7 @@ class scanline : public scanline_base { public: //definitions + typedef scanline_base base; typedef typename scanline_base::Point Point; //the first point is the vertex and and second point establishes the slope of an edge eminating from the vertex @@ -1038,7 +1040,7 @@ if(current_iter != scan_data_.end()) { //make sure we are looking at element in scanline just below y //if(evalAtXforY(x_, (*current_iter).first.first, (*current_iter).first.second) != y) { - if(on_above_or_below(Point(x_, y), (*current_iter).first) != 0) { + if(base::on_above_or_below(Point(x_, y), (*current_iter).first) != 0) { Point e2(pt); if(e2.get(VERTICAL) != (std::numeric_limits::max)()) e2.set(VERTICAL, e2.get(VERTICAL) + 1); @@ -1050,12 +1052,12 @@ if(current_iter != scan_data_.end()) { //get the bottom iterator for elements at this point //while(evalAtXforY(x_, (*current_iter).first.first, (*current_iter).first.second) >= (high_precision)y && - while(on_above_or_below(Point(x_, y), (*current_iter).first) != 1 && + while(base::on_above_or_below(Point(x_, y), (*current_iter).first) != 1 && current_iter != scan_data_.begin()) { --current_iter; } //if(evalAtXforY(x_, (*current_iter).first.first, (*current_iter).first.second) >= (high_precision)y) { - if(on_above_or_below(Point(x_, y), (*current_iter).first) != 1) { + if(base::on_above_or_below(Point(x_, y), (*current_iter).first) != 1) { properties_below.clear(); } else { properties_below = (*current_iter).second; @@ -1068,7 +1070,7 @@ while(current_iter != scan_data_.end() && //can only be true if y is integer //evalAtXforY(x_, (*current_iter).first.first, (*current_iter).first.second) == y) { - on_above_or_below(Point(x_, y), (*current_iter).first) == 0) { + base::on_above_or_below(Point(x_, y), (*current_iter).first) == 0) { //removal_set_.push_back(current_iter); ++current_iter; } @@ -1119,7 +1121,7 @@ y = vertical_edge_below.second.get(VERTICAL); continue; } - if(is_vertical(he)) { + if(base::is_vertical(he)) { update_property_map(vertical_properties_above, vp.second); vertical_edge_above = he; } else { @@ -2472,6 +2474,7 @@ template class arbitrary_boolean_op : public scanline_base { private: + typedef scanline_base base; typedef int property_type; typedef typename scanline_base::Point Point; @@ -2523,7 +2526,7 @@ elem.first = edge; elem.second = 1; if(edge.second < edge.first) elem.second *= -1; - if(is_vertical(edge)) elem.second *= -1; + if(base::is_vertical(edge)) elem.second *= -1; #ifdef BOOST_POLYGON_MSVC #pragma warning (disable: 4127) #endif