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; 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) 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); 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 db::Coord dist () const { return mp_node->dist (); }
virtual typename local_operation<TS, TI, TR>::on_empty_intruder_mode on_empty_intruder_hint () const; // @@@ 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; virtual std::string description () const { return mp_node->description (); }
const TransformationReducer *vars () const { return mp_node->vars (); } const TransformationReducer *vars () const { return mp_node->vars (); }
bool wants_variants () const { return mp_node->wants_variants (); } bool wants_variants () const { return mp_node->wants_variants (); }

View File

@ -1034,6 +1034,14 @@ EdgeProcessor::insert (const db::Polygon &q, EdgeProcessor::property_type p)
} }
} }
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 void
EdgeProcessor::clear () EdgeProcessor::clear ()
{ {

View File

@ -628,10 +628,15 @@ public:
void insert (const db::Edge &e, property_type p = 0); 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); 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 * @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::PolygonRef>;
template class DB_PUBLIC local_processor<db::PolygonRef, db::TextRef, db::TextRef>; 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::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::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::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::Edge>;
template class DB_PUBLIC local_processor<db::Edge, db::PolygonRef, db::PolygonRef>; 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 ()) { 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 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 (*o, nstart);
ep.insert (*e, nstart);
}
} }
nstart++; nstart++;
@ -301,9 +299,7 @@ void interacting_local_operation<TS, TI, TR>::compute_local (db::Layout * /*layo
tl_assert (m_mode == 0); tl_assert (m_mode == 0);
for (typename std::set<TI>::const_iterator o = others.begin (); o != others.end (); ++o) { 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 (*o, nstart);
ep.insert (*e, nstart);
}
nstart++; nstart++;
} }
@ -312,9 +308,7 @@ void interacting_local_operation<TS, TI, TR>::compute_local (db::Layout * /*layo
size_t n = nstart; size_t n = nstart;
for (typename shape_interactions<TS, TI>::iterator i = interactions.begin (); i != interactions.end (); ++i, ++n) { for (typename shape_interactions<TS, TI>::iterator i = interactions.begin (); i != interactions.end (); ++i, ++n) {
const TS &subject = interactions.subject_shape (i->first); const TS &subject = interactions.subject_shape (i->first);
for (typename TS::polygon_edge_iterator e = subject.begin_edge (); ! e.at_end(); ++e) { ep.insert (subject, n);
ep.insert (*e, n);
}
} }
db::InteractionDetector id (m_mode, 0); db::InteractionDetector id (m_mode, 0);
@ -364,6 +358,7 @@ std::string interacting_local_operation<TS, TI, TR>::description () const
// explicit instantiations // explicit instantiations
template class interacting_local_operation<db::PolygonRef, db::PolygonRef, db::PolygonRef>; 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::Polygon, db::Polygon>;
template class interacting_local_operation<db::Polygon, db::Edge, db::Polygon>;
// --------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------