mirror of https://github.com/KLayout/klayout.git
WIP
This commit is contained in:
parent
43b63923a7
commit
91c85172e3
|
|
@ -1648,6 +1648,7 @@ DeepRegion::run_check (db::edge_relation_type rel, bool different_polygons, cons
|
|||
bool other_is_merged = true;
|
||||
|
||||
bool needs_merged_primary = different_polygons || options.needs_merged ();
|
||||
needs_merged_primary = true; // @@@
|
||||
bool primary_is_merged = ! merged_semantics () || needs_merged_primary || is_merged ();
|
||||
|
||||
if (other == subject_regionptr ()) {
|
||||
|
|
|
|||
|
|
@ -253,7 +253,8 @@ namespace std
|
|||
h = hfunc_coord (o.end_ext (), h);
|
||||
h = hfunc_coord (o.width (), h);
|
||||
// NOTE: using too many points for the hash function just slows down the code.
|
||||
unsigned int n = 20;
|
||||
// @@@ unsigned int n = 20;
|
||||
unsigned int n = std::numeric_limits<unsigned int>::max (); // @@@
|
||||
for (typename db::path<C>::iterator p = o.begin (); p != o.end (); ++p) {
|
||||
if (--n == 0) {
|
||||
h = hfunc (o.points (), h);
|
||||
|
|
@ -288,7 +289,8 @@ namespace std
|
|||
size_t hfunc (const db::polygon_contour<C> &o, size_t h)
|
||||
{
|
||||
// NOTE: using too many points for the hash function just slows down the code.
|
||||
unsigned int n = 20;
|
||||
// @@@ unsigned int n = 20;
|
||||
unsigned int n = std::numeric_limits<unsigned int>::max (); // @@@
|
||||
for (typename db::polygon_contour<C>::simple_iterator i = o.begin (); i != o.end (); ++i) {
|
||||
if (--n == 0) {
|
||||
h = hfunc (o.size (), h);
|
||||
|
|
@ -324,7 +326,8 @@ namespace std
|
|||
{
|
||||
h = hfunc (o.hull (), h);
|
||||
// NOTE: using too many points for the hash function just slows down the code.
|
||||
unsigned int n = 20;
|
||||
// @@@ unsigned int n = 20;
|
||||
unsigned int n = std::numeric_limits<unsigned int>::max (); // @@@
|
||||
for (size_t i = 0; i < o.holes (); ++i) {
|
||||
if (--n == 0) {
|
||||
h = hfunc (o.holes (), h);
|
||||
|
|
|
|||
|
|
@ -342,11 +342,11 @@ template <class TS, class TI, class TR>
|
|||
local_processor_cell_context<TS, TI, TR> &
|
||||
local_processor_cell_context<TS, TI, TR>::operator= (const local_processor_cell_context &other)
|
||||
{
|
||||
if (this != &other) {
|
||||
m_propagated = other.m_propagated;
|
||||
m_drops = other.m_drops;
|
||||
}
|
||||
return *this;
|
||||
if (this != &other) {
|
||||
m_propagated = other.m_propagated;
|
||||
m_drops = other.m_drops;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
template <class TS, class TI, class TR>
|
||||
|
|
@ -1221,6 +1221,7 @@ private:
|
|||
db::box_convert <db::CellInst, true> inst_bc (*mp_subject_layout, m_subject_layer);
|
||||
db::Box rbox = db::box_convert<TI> () (ref);
|
||||
|
||||
// @@@ make member of receiver?
|
||||
db::shape_reference_translator_with_trans<TI, db::ICplxTrans> rt (mp_subject_layout);
|
||||
|
||||
for (db::CellInstArray::iterator n = inst->begin_touching (safe_box_enlarged (rbox, dist - 1, dist - 1), inst_bc); ! n.at_end (); ++n) {
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ check_local_operation<TS, TI>::do_compute_local (db::Layout *layout, const shape
|
|||
|
||||
size_t n = 0;
|
||||
|
||||
if (m_is_merged) {
|
||||
if (m_is_merged || (interactions.size () == 1 && interactions.subject_shape (interactions.begin ()->first).is_box ())) {
|
||||
|
||||
for (typename shape_interactions<TS, TI>::iterator i = interactions.begin (); i != interactions.end (); ++i) {
|
||||
const TS &subject = interactions.subject_shape (i->first);
|
||||
|
|
@ -355,7 +355,7 @@ check_local_operation<TS, TI>::do_compute_local (db::Layout *layout, const shape
|
|||
|
||||
size_t n = 0;
|
||||
|
||||
if (m_is_merged) {
|
||||
if (m_is_merged || (interactions.size () == 1 && ids.empty () && interactions.subject_shape (interactions.begin ()->first).is_box ())) {
|
||||
|
||||
for (typename shape_interactions<TS, TI>::iterator i = interactions.begin (); i != interactions.end (); ++i) {
|
||||
// we can't directly insert because TS may be != TI
|
||||
|
|
|
|||
Loading…
Reference in New Issue