vertex_processor - handle geometry_collection
This commit is contained in:
parent
40c9abcb2b
commit
0863ef1e92
1 changed files with 11 additions and 4 deletions
|
@ -34,22 +34,26 @@ struct vertex_processor
|
||||||
vertex_processor(processor_type& proc)
|
vertex_processor(processor_type& proc)
|
||||||
: proc_(proc) {}
|
: proc_(proc) {}
|
||||||
|
|
||||||
|
void operator() (geometry const& geom)
|
||||||
|
{
|
||||||
|
util::apply_visitor(*this, geom);
|
||||||
|
}
|
||||||
void operator() (point const& pt)
|
void operator() (point const& pt)
|
||||||
{
|
{
|
||||||
point_vertex_adapter va(pt);
|
point_vertex_adapter va(pt);
|
||||||
return proc_(va);
|
proc_(va);
|
||||||
}
|
}
|
||||||
|
|
||||||
void operator() (line_string const& line)
|
void operator() (line_string const& line)
|
||||||
{
|
{
|
||||||
line_string_vertex_adapter va(line);
|
line_string_vertex_adapter va(line);
|
||||||
return proc_(va);
|
proc_(va);
|
||||||
}
|
}
|
||||||
|
|
||||||
void operator() (polygon const& poly)
|
void operator() (polygon const& poly)
|
||||||
{
|
{
|
||||||
polygon_vertex_adapter va(poly);
|
polygon_vertex_adapter va(poly);
|
||||||
return proc_(va);
|
proc_(va);
|
||||||
}
|
}
|
||||||
|
|
||||||
void operator() (multi_point const& multi_pt)
|
void operator() (multi_point const& multi_pt)
|
||||||
|
@ -81,7 +85,10 @@ struct vertex_processor
|
||||||
|
|
||||||
void operator() (geometry_collection const& collection)
|
void operator() (geometry_collection const& collection)
|
||||||
{
|
{
|
||||||
// no-op
|
for (auto const& geom : collection)
|
||||||
|
{
|
||||||
|
operator()(geom);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
processor_type & proc_;
|
processor_type & proc_;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue