Region#edges: Don't include an polygon to edge processor unless required

This commit is contained in:
Matthias Koefferlein 2024-03-07 23:03:30 +01:00
parent 28e96ee0c3
commit 5597eceece
1 changed files with 7 additions and 2 deletions

View File

@ -783,8 +783,13 @@ size_dvm (db::Region *region, const db::Vector &dv, unsigned int mode)
static db::Edges
edges (const db::Region *region, db::PolygonToEdgeProcessor::EdgeMode mode)
{
db::PolygonToEdgeProcessor proc (mode);
return region->edges (proc);
if (mode != db::PolygonToEdgeProcessor::All) {
db::PolygonToEdgeProcessor proc (mode);
return region->edges (proc);
} else {
// this version is more efficient in the hierarchical case
return region->edges ();
}
}
static db::Point default_origin;