From 5597eceece91a3e9cc5ca14f7f47424c0aff6b7e Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Thu, 7 Mar 2024 23:03:30 +0100 Subject: [PATCH] Region#edges: Don't include an polygon to edge processor unless required --- src/db/db/gsiDeclDbRegion.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/db/db/gsiDeclDbRegion.cc b/src/db/db/gsiDeclDbRegion.cc index 2e16558ed..700cd2162 100644 --- a/src/db/db/gsiDeclDbRegion.cc +++ b/src/db/db/gsiDeclDbRegion.cc @@ -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;