WIP: made compile.

This commit is contained in:
Matthias Koefferlein 2020-12-02 00:13:41 +01:00
parent db6b3d280e
commit f14a4c6220
6 changed files with 35 additions and 14 deletions

View File

@ -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<std::unordered_set<db::Polygon> > &in, std::vector<std::unordered_set<db::PolygonRef> > &out)
@ -845,6 +851,11 @@ void compound_region_generic_operation_node<TS, TI, TR>::implement_compute_local
adaptor.finish (layout);
}
// explicit instantiations
template void compound_region_generic_operation_node<db::Polygon, db::Polygon, db::Polygon>::implement_compute_local (db::Layout *, const shape_interactions<db::PolygonRef, db::PolygonRef> &, std::vector<std::unordered_set<db::PolygonRef> > &, size_t, double) const;
template void compound_region_generic_operation_node<db::Polygon, db::Polygon, db::Polygon>::implement_compute_local (db::Layout *, const shape_interactions<db::Polygon, db::Polygon> &, std::vector<std::unordered_set<db::Polygon> > &, size_t, double) const;
template void compound_region_generic_operation_node<db::Polygon, db::Edge, db::Polygon>::implement_compute_local (db::Layout *, const shape_interactions<db::Polygon, db::Edge> &, std::vector<std::unordered_set<db::Polygon> > &, size_t, double) const;
template void compound_region_generic_operation_node<db::Polygon, db::Edge, db::Polygon>::implement_compute_local (db::Layout *, const shape_interactions<db::PolygonRef, db::Edge> &, std::vector<std::unordered_set<db::PolygonRef> > &, size_t, double) const;
// ---------------------------------------------------------------------------------------------

View File

@ -989,9 +989,9 @@ protected:
}
}
virtual db::Coord dist () const;
virtual typename local_operation<TS, TI, TR>::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<TS, TI, TR>::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 (); }

View File

@ -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 ();

View File

@ -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
*

View File

@ -2069,7 +2069,9 @@ template class DB_PUBLIC local_processor<db::PolygonRef, db::Edge, db::Edge>;
template class DB_PUBLIC local_processor<db::PolygonRef, db::TextRef, db::PolygonRef>;
template class DB_PUBLIC local_processor<db::PolygonRef, db::TextRef, db::TextRef>;
template class DB_PUBLIC local_processor<db::PolygonRef, db::PolygonRef, db::EdgePair>;
template class DB_PUBLIC local_processor<db::PolygonRef, db::PolygonRef, db::Edge>;
template class DB_PUBLIC local_processor<db::Polygon, db::Polygon, db::EdgePair>;
template class DB_PUBLIC local_processor<db::Polygon, db::Polygon, db::Edge>;
template class DB_PUBLIC local_processor<db::Edge, db::Edge, db::Edge>;
template class DB_PUBLIC local_processor<db::Edge, db::PolygonRef, db::Edge>;
template class DB_PUBLIC local_processor<db::Edge, db::PolygonRef, db::PolygonRef>;

View File

@ -290,9 +290,7 @@ void interacting_local_operation<TS, TI, TR>::compute_local (db::Layout * /*layo
if (m_min_count == size_t (1) && m_max_count == std::numeric_limits<size_t>::max ()) {
for (typename std::set<TI>::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<TS, TI, TR>::compute_local (db::Layout * /*layo
tl_assert (m_mode == 0);
for (typename std::set<TI>::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<TS, TI, TR>::compute_local (db::Layout * /*layo
size_t n = nstart;
for (typename shape_interactions<TS, TI>::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<TS, TI, TR>::description () const
// explicit instantiations
template class interacting_local_operation<db::PolygonRef, db::PolygonRef, db::PolygonRef>;
template class interacting_local_operation<db::Polygon, db::Polygon, db::Polygon>;
template class interacting_local_operation<db::Polygon, db::Edge, db::Polygon>;
// ---------------------------------------------------------------------------------------------------------------