From f14a4c6220936fcf70ad91f40aec404c31b4c8a4 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Wed, 2 Dec 2020 00:13:41 +0100 Subject: [PATCH] WIP: made compile. --- src/db/db/dbCompoundOperation.cc | 11 +++++++++++ src/db/db/dbCompoundOperation.h | 6 +++--- src/db/db/dbEdgeProcessor.cc | 10 +++++++++- src/db/db/dbEdgeProcessor.h | 7 ++++++- src/db/db/dbHierProcessor.cc | 2 ++ src/db/db/dbRegionLocalOperations.cc | 13 ++++--------- 6 files changed, 35 insertions(+), 14 deletions(-) diff --git a/src/db/db/dbCompoundOperation.cc b/src/db/db/dbCompoundOperation.cc index 72797ddc7..5eef64ddb 100644 --- a/src/db/db/dbCompoundOperation.cc +++ b/src/db/db/dbCompoundOperation.cc @@ -72,6 +72,12 @@ CompoundRegionOperationNode::set_description (const std::string &d) m_description = d; } +std::string +CompoundRegionOperationNode::generated_description () const +{ + return std::string (); +} + // --------------------------------------------------------------------------------------------- static void translate (db::Layout *layout, const std::vector > &in, std::vector > &out) @@ -845,6 +851,11 @@ void compound_region_generic_operation_node::implement_compute_local adaptor.finish (layout); } +// explicit instantiations +template void compound_region_generic_operation_node::implement_compute_local (db::Layout *, const shape_interactions &, std::vector > &, size_t, double) const; +template void compound_region_generic_operation_node::implement_compute_local (db::Layout *, const shape_interactions &, std::vector > &, size_t, double) const; +template void compound_region_generic_operation_node::implement_compute_local (db::Layout *, const shape_interactions &, std::vector > &, size_t, double) const; +template void compound_region_generic_operation_node::implement_compute_local (db::Layout *, const shape_interactions &, std::vector > &, size_t, double) const; // --------------------------------------------------------------------------------------------- diff --git a/src/db/db/dbCompoundOperation.h b/src/db/db/dbCompoundOperation.h index d61c5550a..11488f7f6 100644 --- a/src/db/db/dbCompoundOperation.h +++ b/src/db/db/dbCompoundOperation.h @@ -989,9 +989,9 @@ protected: } } - virtual db::Coord dist () const; - virtual typename local_operation::on_empty_intruder_mode on_empty_intruder_hint () const; - virtual std::string description () const; + virtual db::Coord dist () const { return mp_node->dist (); } + // @@@ TODO: virtual typename local_operation::on_empty_intruder_mode on_empty_intruder_hint () const { return mp_node->on_empty_intruder_hint (); } + virtual std::string description () const { return mp_node->description (); } const TransformationReducer *vars () const { return mp_node->vars (); } bool wants_variants () const { return mp_node->wants_variants (); } diff --git a/src/db/db/dbEdgeProcessor.cc b/src/db/db/dbEdgeProcessor.cc index 64015ca41..8e5836351 100644 --- a/src/db/db/dbEdgeProcessor.cc +++ b/src/db/db/dbEdgeProcessor.cc @@ -1034,7 +1034,15 @@ EdgeProcessor::insert (const db::Polygon &q, EdgeProcessor::property_type p) } } -void +void +EdgeProcessor::insert (const db::PolygonRef &q, EdgeProcessor::property_type p) +{ + for (db::PolygonRef::polygon_edge_iterator e = q.begin_edge (); ! e.at_end (); ++e) { + insert (*e, p); + } +} + +void EdgeProcessor::clear () { mp_work_edges->clear (); diff --git a/src/db/db/dbEdgeProcessor.h b/src/db/db/dbEdgeProcessor.h index 836aa48d0..d1d000638 100644 --- a/src/db/db/dbEdgeProcessor.h +++ b/src/db/db/dbEdgeProcessor.h @@ -628,10 +628,15 @@ public: void insert (const db::Edge &e, property_type p = 0); /** - * @brief Insert an polygon + * @brief Insert a polygon */ void insert (const db::Polygon &q, property_type p = 0); + /** + * @brief Insert a polygon reference + */ + void insert (const db::PolygonRef &q, property_type p = 0); + /** * @brief Insert a sequence of edges * diff --git a/src/db/db/dbHierProcessor.cc b/src/db/db/dbHierProcessor.cc index 736f7e4bd..f07b33df3 100644 --- a/src/db/db/dbHierProcessor.cc +++ b/src/db/db/dbHierProcessor.cc @@ -2069,7 +2069,9 @@ template class DB_PUBLIC local_processor; template class DB_PUBLIC local_processor; template class DB_PUBLIC local_processor; template class DB_PUBLIC local_processor; +template class DB_PUBLIC local_processor; template class DB_PUBLIC local_processor; +template class DB_PUBLIC local_processor; template class DB_PUBLIC local_processor; template class DB_PUBLIC local_processor; template class DB_PUBLIC local_processor; diff --git a/src/db/db/dbRegionLocalOperations.cc b/src/db/db/dbRegionLocalOperations.cc index 74d4a8add..b3a08620d 100644 --- a/src/db/db/dbRegionLocalOperations.cc +++ b/src/db/db/dbRegionLocalOperations.cc @@ -290,9 +290,7 @@ void interacting_local_operation::compute_local (db::Layout * /*layo if (m_min_count == size_t (1) && m_max_count == std::numeric_limits::max ()) { for (typename std::set::const_iterator o = others.begin (); o != others.end (); ++o) { - for (typename TI::polygon_edge_iterator e = o->begin_edge (); ! e.at_end(); ++e) { - ep.insert (*e, nstart); - } + ep.insert (*o, nstart); } nstart++; @@ -301,9 +299,7 @@ void interacting_local_operation::compute_local (db::Layout * /*layo tl_assert (m_mode == 0); for (typename std::set::const_iterator o = others.begin (); o != others.end (); ++o) { - for (typename TI::polygon_edge_iterator e = o->begin_edge (); ! e.at_end(); ++e) { - ep.insert (*e, nstart); - } + ep.insert (*o, nstart); nstart++; } @@ -312,9 +308,7 @@ void interacting_local_operation::compute_local (db::Layout * /*layo size_t n = nstart; for (typename shape_interactions::iterator i = interactions.begin (); i != interactions.end (); ++i, ++n) { const TS &subject = interactions.subject_shape (i->first); - for (typename TS::polygon_edge_iterator e = subject.begin_edge (); ! e.at_end(); ++e) { - ep.insert (*e, n); - } + ep.insert (subject, n); } db::InteractionDetector id (m_mode, 0); @@ -364,6 +358,7 @@ std::string interacting_local_operation::description () const // explicit instantiations template class interacting_local_operation; template class interacting_local_operation; +template class interacting_local_operation; // ---------------------------------------------------------------------------------------------------------------