mirror of https://github.com/KLayout/klayout.git
WIP: next part of region refactoring.
This commit is contained in:
parent
5a5051b0dd
commit
7062c4acf5
|
|
@ -724,7 +724,6 @@ Edges::select_interacting (const Region &other)
|
|||
scanner.insert ((char *) &*e, 0);
|
||||
}
|
||||
|
||||
other.ensure_valid_polygons ();
|
||||
for (Region::const_iterator p = other.begin (); ! p.at_end (); ++p) {
|
||||
scanner.insert ((char *) &*p + 1, 1);
|
||||
}
|
||||
|
|
@ -754,7 +753,6 @@ Edges::select_not_interacting (const Region &other)
|
|||
scanner.insert ((char *) &*e, 0);
|
||||
}
|
||||
|
||||
other.ensure_valid_polygons ();
|
||||
for (Region::const_iterator p = other.begin (); ! p.at_end (); ++p) {
|
||||
scanner.insert ((char *) &*p + 1, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -581,12 +581,11 @@ public:
|
|||
* This method will keep all edges for which the filter returns true.
|
||||
* Merged semantics applies.
|
||||
*/
|
||||
template <class F>
|
||||
Edges &filter (F &filter)
|
||||
Edges &filter (EdgeFilterBase &filter)
|
||||
{
|
||||
edge_iterator_type ew = m_edges.get_layer<db::Edge, db::unstable_layer_tag> ().begin ();
|
||||
for (const_iterator e = begin_merged (); ! e.at_end (); ++e) {
|
||||
if (filter (*e)) {
|
||||
if (filter.selected (*e)) {
|
||||
if (ew == m_edges.get_layer<db::Edge, db::unstable_layer_tag> ().end ()) {
|
||||
m_edges.get_layer<db::Edge, db::unstable_layer_tag> ().insert (*e);
|
||||
ew = m_edges.get_layer<db::Edge, db::unstable_layer_tag> ().end ();
|
||||
|
|
@ -609,12 +608,11 @@ public:
|
|||
* conform to the filter criterion.
|
||||
* Merged semantics applies.
|
||||
*/
|
||||
template <class F>
|
||||
Edges filtered (F &filter) const
|
||||
Edges filtered (const EdgeFilterBase &filter) const
|
||||
{
|
||||
Edges d;
|
||||
for (const_iterator e = begin_merged (); ! e.at_end (); ++e) {
|
||||
if (filter (*e)) {
|
||||
if (filter.selected (*e)) {
|
||||
d.insert (*e);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3422,6 +3422,7 @@ private:
|
|||
Region selected_interacting_generic (const Edges &other, bool inverse) const;
|
||||
void select_interacting_generic (const Edges &other, bool inverse);
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief A polygon receiver putting the polygons into a Region object
|
||||
|
|
@ -3466,7 +3467,6 @@ private:
|
|||
Region *mp_region;
|
||||
bool m_clear;
|
||||
};
|
||||
#endif
|
||||
|
||||
} // namespace db
|
||||
|
||||
|
|
|
|||
|
|
@ -237,7 +237,6 @@ TEST(3)
|
|||
tp.input ("i2", ir2.begin_iter ().first, ir2.begin_iter ().second);
|
||||
EXPECT_EQ (ir2.has_valid_polygons (), false);
|
||||
db::Region ir3 (db::RecursiveShapeIterator (ly, ly.cell (top), l3));
|
||||
ir3.ensure_valid_polygons ();
|
||||
tp.input ("i3", ir3.begin_iter ().first, ir3.begin_iter ().second);
|
||||
EXPECT_EQ (ir3.has_valid_polygons (), true);
|
||||
tp.output ("o1", ly, top, o1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue