mirror of https://github.com/KLayout/klayout.git
Fixing compile issues
This commit is contained in:
parent
8eb181c05f
commit
941c0fff90
|
|
@ -1005,29 +1005,6 @@ private:
|
|||
bool m_owns_filter;
|
||||
bool m_sum_of_set;
|
||||
|
||||
/* @@@
|
||||
template <class T>
|
||||
void implement_compute_local (db::CompoundRegionOperationCache *cache, db::Layout *layout, db::Cell *cell, const shape_interactions<T, T> &interactions, std::vector<std::unordered_set<T> > &results, const db::LocalProcessorBase *proc) const
|
||||
{
|
||||
std::vector<std::unordered_set<T> > one;
|
||||
one.push_back (std::unordered_set<T> ());
|
||||
|
||||
child (0)->compute_local (cache, layout, cell, interactions, one, proc);
|
||||
|
||||
if (m_sum_of_set) {
|
||||
if (mp_filter->selected_set (one.front ())) {
|
||||
results.front ().insert (one.front ().begin (), one.front ().end ());
|
||||
}
|
||||
} else {
|
||||
for (typename std::unordered_set<T>::const_iterator p = one.front ().begin (); p != one.front ().end (); ++p) {
|
||||
if (mp_filter->selected (*p)) {
|
||||
results.front ().insert (*p);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@@ */
|
||||
|
||||
template <class T>
|
||||
void implement_compute_local (db::CompoundRegionOperationCache *cache, db::Layout *layout, db::Cell *cell, const shape_interactions<db::object_with_properties<T>, db::object_with_properties<T> > &interactions, std::vector<std::unordered_set<db::object_with_properties<T> > > &results, const db::LocalProcessorBase *proc) const
|
||||
{
|
||||
|
|
@ -1079,29 +1056,6 @@ private:
|
|||
bool m_owns_filter;
|
||||
bool m_sum_of;
|
||||
|
||||
/* @@@
|
||||
template <class T>
|
||||
void implement_compute_local (db::CompoundRegionOperationCache *cache, db::Layout *layout, db::Cell *cell, const shape_interactions<T, T> &interactions, std::vector<std::unordered_set<db::Edge> > &results, const db::LocalProcessorBase *proc) const
|
||||
{
|
||||
std::vector<std::unordered_set<db::Edge> > one;
|
||||
one.push_back (std::unordered_set<Edge> ());
|
||||
|
||||
child (0)->compute_local (cache, layout, cell, interactions, one, proc);
|
||||
|
||||
if (m_sum_of) {
|
||||
if (mp_filter->selected (one.front ())) {
|
||||
results.front ().insert (one.front ().begin (), one.front ().end ());
|
||||
}
|
||||
} else {
|
||||
for (typename std::unordered_set<db::Edge>::const_iterator p = one.front ().begin (); p != one.front ().end (); ++p) {
|
||||
if (mp_filter->selected (*p)) {
|
||||
results.front ().insert (*p);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@@ */
|
||||
|
||||
template <class T>
|
||||
void implement_compute_local (db::CompoundRegionOperationCache *cache, db::Layout *layout, db::Cell *cell, const shape_interactions<db::object_with_properties<T>, db::object_with_properties<T> > &interactions, std::vector<std::unordered_set<db::EdgeWithProperties> > &results, const db::LocalProcessorBase *proc) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -217,13 +217,20 @@ private:
|
|||
db::SimplePolygon per_edge_clip_box (db::Box (xmin, -m_din - 1, xmax, m_dout + 1));
|
||||
|
||||
// compute the merged neighbors
|
||||
// NOTE: we first separate by layer and properties ID before we merge. Hence
|
||||
// shapes with different properties IDs are kept separate.
|
||||
|
||||
std::map<unsigned int, std::vector<db::PolygonWithProperties> > merged_neighbors;
|
||||
|
||||
db::EdgeProcessor ep;
|
||||
std::map<std::pair<unsigned int, db::properties_id_type>, std::vector<const db::Polygon *> > neighbors_by_prop_ids;
|
||||
for (auto n = neighbors.begin (); n != neighbors.end (); ++n) {
|
||||
for (auto p = n->second.begin (); p != n->second.end (); ++p) {
|
||||
neighbors_by_prop_ids [std::make_pair (n->first, (*p)->properties_id ())].push_back (*p);
|
||||
}
|
||||
}
|
||||
|
||||
// @@@ TODO: separate by properties ID and feed individually ...
|
||||
db::properties_id_type prop_id = 0;
|
||||
db::EdgeProcessor ep;
|
||||
for (auto n = neighbors_by_prop_ids.begin (); n != neighbors_by_prop_ids.end (); ++n) {
|
||||
|
||||
ep.clear ();
|
||||
|
||||
|
|
@ -238,7 +245,7 @@ private:
|
|||
ep.insert (per_edge_clip_box, size_t (1));
|
||||
|
||||
db::BooleanOp and_op (db::BooleanOp::And);
|
||||
db::PolygonContainerWithProperties pc (merged_neighbors [n->first], prop_id);
|
||||
db::PolygonContainerWithProperties pc (merged_neighbors [n->first.first], n->first.second);
|
||||
db::PolygonGenerator pg (pc, false);
|
||||
ep.process (pg, and_op);
|
||||
|
||||
|
|
|
|||
|
|
@ -218,6 +218,11 @@ template DB_PUBLIC void Edges::insert (const db::SimplePolygon &);
|
|||
template DB_PUBLIC void Edges::insert (const db::Polygon &);
|
||||
template DB_PUBLIC void Edges::insert (const db::Path &);
|
||||
template DB_PUBLIC void Edges::insert (const db::Edge &);
|
||||
template DB_PUBLIC void Edges::insert (const db::BoxWithProperties &);
|
||||
template DB_PUBLIC void Edges::insert (const db::SimplePolygonWithProperties &);
|
||||
template DB_PUBLIC void Edges::insert (const db::PolygonWithProperties &);
|
||||
template DB_PUBLIC void Edges::insert (const db::PathWithProperties &);
|
||||
template DB_PUBLIC void Edges::insert (const db::EdgeWithProperties &);
|
||||
|
||||
void Edges::insert (const db::Shape &shape)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1812,11 +1812,16 @@ template class DB_PUBLIC shape_interactions<db::Polygon, db::TextRef>;
|
|||
template class DB_PUBLIC shape_interactions<db::Polygon, db::Edge>;
|
||||
template class DB_PUBLIC shape_interactions<db::PolygonRefWithProperties, db::PolygonRefWithProperties>;
|
||||
template class DB_PUBLIC shape_interactions<db::PolygonWithProperties, db::PolygonWithProperties>;
|
||||
template class DB_PUBLIC shape_interactions<db::PolygonWithProperties, db::TextWithProperties>;
|
||||
template class DB_PUBLIC shape_interactions<db::PolygonWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC shape_interactions<db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC shape_interactions<db::PolygonRef, db::TextRef>;
|
||||
template class DB_PUBLIC shape_interactions<db::PolygonRefWithProperties, db::TextRefWithProperties>;
|
||||
template class DB_PUBLIC shape_interactions<db::PolygonRef, db::Text>;
|
||||
template class DB_PUBLIC shape_interactions<db::PolygonRef, db::Edge>;
|
||||
template class DB_PUBLIC shape_interactions<db::PolygonRefWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC shape_interactions<db::Edge, db::Edge>;
|
||||
template class DB_PUBLIC shape_interactions<db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC shape_interactions<db::Edge, db::PolygonRef>;
|
||||
template class DB_PUBLIC shape_interactions<db::Edge, db::Polygon>;
|
||||
template class DB_PUBLIC shape_interactions<db::TextRef, db::TextRef>;
|
||||
|
|
@ -1839,6 +1844,8 @@ template class DB_PUBLIC local_processor_context_computation_task<db::PolygonWit
|
|||
template class DB_PUBLIC local_processor_context_computation_task<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_processor_context_computation_task<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePairWithProperties>;
|
||||
template class DB_PUBLIC local_processor_context_computation_task<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePair>;
|
||||
template class DB_PUBLIC local_processor_context_computation_task<db::PolygonWithProperties, db::EdgeWithProperties, db::PolygonWithProperties>;
|
||||
template class DB_PUBLIC local_processor_context_computation_task<db::PolygonWithProperties, db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_processor_context_computation_task<db::PolygonRef, db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC local_processor_context_computation_task<db::PolygonRef, db::TextRef, db::TextRef>;
|
||||
template class DB_PUBLIC local_processor_context_computation_task<db::PolygonRef, db::TextRef, db::PolygonRef>;
|
||||
|
|
@ -1876,6 +1883,8 @@ template class DB_PUBLIC local_processor_result_computation_task<db::PolygonWith
|
|||
template class DB_PUBLIC local_processor_result_computation_task<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_processor_result_computation_task<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePairWithProperties>;
|
||||
template class DB_PUBLIC local_processor_result_computation_task<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePair>;
|
||||
template class DB_PUBLIC local_processor_result_computation_task<db::PolygonWithProperties, db::EdgeWithProperties, db::PolygonWithProperties>;
|
||||
template class DB_PUBLIC local_processor_result_computation_task<db::PolygonWithProperties, db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_processor_result_computation_task<db::PolygonRef, db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC local_processor_result_computation_task<db::PolygonRef, db::Edge, db::PolygonRef>;
|
||||
template class DB_PUBLIC local_processor_result_computation_task<db::PolygonRef, db::PolygonRef, db::EdgePair>;
|
||||
|
|
@ -1905,6 +1914,8 @@ template class DB_PUBLIC local_processor<db::PolygonWithProperties, db::PolygonW
|
|||
template class DB_PUBLIC local_processor<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_processor<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePair>;
|
||||
template class DB_PUBLIC local_processor<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePairWithProperties>;
|
||||
template class DB_PUBLIC local_processor<db::PolygonWithProperties, db::EdgeWithProperties, db::PolygonWithProperties>;
|
||||
template class DB_PUBLIC local_processor<db::PolygonWithProperties, db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_processor<db::PolygonRef, db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC local_processor<db::PolygonRef, db::Edge, db::PolygonRef>;
|
||||
template class DB_PUBLIC local_processor<db::PolygonRef, db::Edge, db::Edge>;
|
||||
|
|
|
|||
|
|
@ -544,6 +544,8 @@ template class DB_PUBLIC local_processor_cell_context<db::PolygonWithProperties,
|
|||
template class DB_PUBLIC local_processor_cell_context<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_processor_cell_context<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePairWithProperties>;
|
||||
template class DB_PUBLIC local_processor_cell_context<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePair>;
|
||||
template class DB_PUBLIC local_processor_cell_context<db::PolygonWithProperties, db::EdgeWithProperties, db::PolygonWithProperties>;
|
||||
template class DB_PUBLIC local_processor_cell_context<db::PolygonWithProperties, db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_processor_cell_context<db::PolygonRef, db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC local_processor_cell_context<db::PolygonRef, db::Edge, db::PolygonRef>;
|
||||
template class DB_PUBLIC local_processor_cell_context<db::PolygonRef, db::PolygonRef, db::EdgePair>;
|
||||
|
|
@ -581,6 +583,8 @@ template class DB_PUBLIC local_processor_cell_contexts<db::PolygonWithProperties
|
|||
template class DB_PUBLIC local_processor_cell_contexts<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_processor_cell_contexts<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePairWithProperties>;
|
||||
template class DB_PUBLIC local_processor_cell_contexts<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePair>;
|
||||
template class DB_PUBLIC local_processor_cell_contexts<db::PolygonWithProperties, db::EdgeWithProperties, db::PolygonWithProperties>;
|
||||
template class DB_PUBLIC local_processor_cell_contexts<db::PolygonWithProperties, db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_processor_cell_contexts<db::PolygonRef, db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC local_processor_cell_contexts<db::PolygonRef, db::Edge, db::PolygonRef>;
|
||||
template class DB_PUBLIC local_processor_cell_contexts<db::PolygonRef, db::PolygonRef, db::EdgePair>;
|
||||
|
|
|
|||
|
|
@ -89,6 +89,8 @@ template class DB_PUBLIC local_operation<db::PolygonWithProperties, db::PolygonW
|
|||
template class DB_PUBLIC local_operation<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_operation<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePairWithProperties>;
|
||||
template class DB_PUBLIC local_operation<db::PolygonWithProperties, db::PolygonWithProperties, db::EdgePair>;
|
||||
template class DB_PUBLIC local_operation<db::PolygonWithProperties, db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC local_operation<db::PolygonWithProperties, db::EdgeWithProperties, db::PolygonWithProperties>;
|
||||
template class DB_PUBLIC local_operation<db::PolygonRef, db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC local_operation<db::PolygonRef, db::Text, db::PolygonRef>;
|
||||
template class DB_PUBLIC local_operation<db::PolygonRef, db::TextRef, db::PolygonRef>;
|
||||
|
|
|
|||
|
|
@ -97,6 +97,34 @@ private:
|
|||
std::unordered_set<db::PolygonRef> *mp_polyrefs;
|
||||
};
|
||||
|
||||
template <>
|
||||
class DB_PUBLIC polygon_ref_generator<db::PolygonRefWithProperties>
|
||||
: public PolygonSink
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* @brief Constructor
|
||||
*/
|
||||
polygon_ref_generator (db::Layout *layout, std::unordered_set<db::PolygonRefWithProperties> &polyrefs)
|
||||
: PolygonSink (), mp_layout (layout), mp_polyrefs (&polyrefs)
|
||||
{
|
||||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Implementation of the PolygonSink interface
|
||||
*/
|
||||
void put (const db::Polygon &polygon)
|
||||
{
|
||||
tl::MutexLocker locker (&mp_layout->lock ());
|
||||
mp_polyrefs->insert (db::PolygonRefWithProperties (db::PolygonRef (polygon, mp_layout->shape_repository ()), db::properties_id_type (0)));
|
||||
}
|
||||
|
||||
private:
|
||||
db::Layout *mp_layout;
|
||||
std::unordered_set<db::PolygonRefWithProperties> *mp_polyrefs;
|
||||
};
|
||||
|
||||
template <>
|
||||
class DB_PUBLIC polygon_ref_generator<db::Polygon>
|
||||
: public PolygonSink
|
||||
|
|
@ -123,6 +151,32 @@ private:
|
|||
std::unordered_set<db::Polygon> *mp_polygons;
|
||||
};
|
||||
|
||||
template <>
|
||||
class DB_PUBLIC polygon_ref_generator<db::PolygonWithProperties>
|
||||
: public PolygonSink
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* @brief Constructor
|
||||
*/
|
||||
polygon_ref_generator (db::Layout *, std::unordered_set<db::PolygonWithProperties> &polygons)
|
||||
: mp_polygons (&polygons)
|
||||
{
|
||||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Implementation of the PolygonSink interface
|
||||
*/
|
||||
virtual void put (const db::Polygon &polygon)
|
||||
{
|
||||
mp_polygons->insert (db::PolygonWithProperties (polygon, db::properties_id_type (0)));
|
||||
}
|
||||
|
||||
private:
|
||||
std::unordered_set<db::PolygonWithProperties> *mp_polygons;
|
||||
};
|
||||
|
||||
typedef polygon_ref_generator<db::PolygonRef> PolygonRefGenerator;
|
||||
|
||||
template <class T>
|
||||
|
|
|
|||
|
|
@ -79,6 +79,16 @@ public:
|
|||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Create myself from a object
|
||||
* The properties ID is initialized with zero (= no properties)
|
||||
*/
|
||||
object_with_properties (const Obj &obj)
|
||||
: Obj (obj), m_id (0)
|
||||
{
|
||||
// .. nothing yet ..
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Create myself from a object and an id
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -657,6 +657,10 @@ template DB_PUBLIC bool suggest_split_polygon<> (const db::Polygon &polygon, siz
|
|||
template DB_PUBLIC bool suggest_split_polygon<> (const db::SimplePolygon &polygon, size_t max_vertex_count, double max_area_ratio);
|
||||
template DB_PUBLIC bool suggest_split_polygon<> (const db::DPolygon &polygon, size_t max_vertex_count, double max_area_ratio);
|
||||
template DB_PUBLIC bool suggest_split_polygon<> (const db::DSimplePolygon &polygon, size_t max_vertex_count, double max_area_ratio);
|
||||
template DB_PUBLIC bool suggest_split_polygon<> (const db::PolygonWithProperties &polygon, size_t max_vertex_count, double max_area_ratio);
|
||||
template DB_PUBLIC bool suggest_split_polygon<> (const db::SimplePolygonWithProperties &polygon, size_t max_vertex_count, double max_area_ratio);
|
||||
template DB_PUBLIC bool suggest_split_polygon<> (const db::DPolygonWithProperties &polygon, size_t max_vertex_count, double max_area_ratio);
|
||||
template DB_PUBLIC bool suggest_split_polygon<> (const db::DSimplePolygonWithProperties &polygon, size_t max_vertex_count, double max_area_ratio);
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Implementation of split_polygon
|
||||
|
|
|
|||
|
|
@ -525,6 +525,8 @@ poly2poly_check<PolygonType>::process ()
|
|||
// explicit instantiations
|
||||
template class poly2poly_check<db::Polygon>;
|
||||
template class poly2poly_check<db::PolygonRef>;
|
||||
template class poly2poly_check<db::PolygonWithProperties>;
|
||||
template class poly2poly_check<db::PolygonRefWithProperties>;
|
||||
|
||||
// -------------------------------------------------------------------------------------
|
||||
// RegionToEdgeInteractionFilterBase implementation
|
||||
|
|
@ -593,6 +595,10 @@ template class region_to_edge_interaction_filter_base<db::Polygon, db::Edge, db:
|
|||
template class region_to_edge_interaction_filter_base<db::PolygonRef, db::Edge, db::PolygonRef>;
|
||||
template class region_to_edge_interaction_filter_base<db::Polygon, db::Edge, db::Edge>;
|
||||
template class region_to_edge_interaction_filter_base<db::PolygonRef, db::Edge, db::Edge>;
|
||||
template class region_to_edge_interaction_filter_base<db::PolygonWithProperties, db::EdgeWithProperties, db::PolygonWithProperties>;
|
||||
template class region_to_edge_interaction_filter_base<db::PolygonRefWithProperties, db::EdgeWithProperties, db::PolygonRefWithProperties>;
|
||||
template class region_to_edge_interaction_filter_base<db::PolygonWithProperties, db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
template class region_to_edge_interaction_filter_base<db::PolygonRefWithProperties, db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
|
||||
// -------------------------------------------------------------------------------------
|
||||
// RegionToTextInteractionFilterBase implementation
|
||||
|
|
@ -652,5 +658,10 @@ template class region_to_text_interaction_filter_base<db::Polygon, db::Text, db:
|
|||
template class region_to_text_interaction_filter_base<db::Polygon, db::Text, db::Text>;
|
||||
template class region_to_text_interaction_filter_base<db::Polygon, db::TextRef, db::TextRef>;
|
||||
template class region_to_text_interaction_filter_base<db::PolygonRef, db::TextRef, db::TextRef>;
|
||||
template class region_to_text_interaction_filter_base<db::PolygonRefWithProperties, db::TextRefWithProperties, db::PolygonRefWithProperties>;
|
||||
template class region_to_text_interaction_filter_base<db::PolygonWithProperties, db::TextWithProperties, db::PolygonWithProperties>;
|
||||
template class region_to_text_interaction_filter_base<db::PolygonWithProperties, db::TextWithProperties, db::TextWithProperties>;
|
||||
template class region_to_text_interaction_filter_base<db::PolygonWithProperties, db::TextRefWithProperties, db::TextRefWithProperties>;
|
||||
template class region_to_text_interaction_filter_base<db::PolygonRefWithProperties, db::TextRefWithProperties, db::TextRefWithProperties>;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,6 +40,11 @@ static inline const db::Polygon *push_polygon_to_heap (db::Layout *, const db::P
|
|||
return &p;
|
||||
}
|
||||
|
||||
static inline const db::PolygonWithProperties *push_polygon_to_heap (db::Layout *, const db::PolygonWithProperties &p, std::list<db::PolygonWithProperties> &)
|
||||
{
|
||||
return &p;
|
||||
}
|
||||
|
||||
static inline const db::PolygonRef *push_polygon_to_heap (db::Layout *layout, const db::PolygonRef &p, std::list<db::PolygonRef> &heap)
|
||||
{
|
||||
db::PolygonRef ref = db::PolygonRef (p, layout->shape_repository ());
|
||||
|
|
@ -47,6 +52,13 @@ static inline const db::PolygonRef *push_polygon_to_heap (db::Layout *layout, co
|
|||
return &heap.back ();
|
||||
}
|
||||
|
||||
static inline const db::PolygonRefWithProperties *push_polygon_to_heap (db::Layout *layout, const db::PolygonRefWithProperties &p, std::list<db::PolygonRefWithProperties> &heap)
|
||||
{
|
||||
db::PolygonRefWithProperties ref = db::PolygonRefWithProperties (db::PolygonRef (p, layout->shape_repository ()), p.properties_id ());
|
||||
heap.push_back (ref);
|
||||
return &heap.back ();
|
||||
}
|
||||
|
||||
template <class TR>
|
||||
struct result_counting_inserter
|
||||
{
|
||||
|
|
@ -758,6 +770,8 @@ check_local_operation<TS, TI>::description () const
|
|||
// explicit instantiations
|
||||
template class DB_PUBLIC check_local_operation<db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC check_local_operation<db::Polygon, db::Polygon>;
|
||||
template class DB_PUBLIC check_local_operation<db::PolygonRefWithProperties, db::PolygonRefWithProperties>;
|
||||
template class DB_PUBLIC check_local_operation<db::PolygonWithProperties, db::PolygonWithProperties>;
|
||||
|
||||
// ---------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -831,6 +845,8 @@ check_local_operation_with_properties<TS, TI>::description () const
|
|||
// explicit instantiations
|
||||
template class DB_PUBLIC check_local_operation_with_properties<db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC check_local_operation_with_properties<db::Polygon, db::Polygon>;
|
||||
template class DB_PUBLIC check_local_operation_with_properties<db::PolygonRefWithProperties, db::PolygonRefWithProperties>;
|
||||
template class DB_PUBLIC check_local_operation_with_properties<db::PolygonWithProperties, db::PolygonWithProperties>;
|
||||
|
||||
// ---------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -1032,6 +1048,8 @@ std::string interacting_local_operation<TS, TI, TR>::description () const
|
|||
// explicit instantiations
|
||||
template class DB_PUBLIC interacting_local_operation<db::PolygonRef, db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC interacting_local_operation<db::Polygon, db::Polygon, db::Polygon>;
|
||||
template class DB_PUBLIC interacting_local_operation<db::PolygonRefWithProperties, db::PolygonRefWithProperties, db::PolygonRefWithProperties>;
|
||||
template class DB_PUBLIC interacting_local_operation<db::PolygonWithProperties, db::PolygonWithProperties, db::PolygonWithProperties>;
|
||||
|
||||
// ---------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -1107,6 +1125,9 @@ std::string contained_local_operation<TS, TI, TR>::description () const
|
|||
template class DB_PUBLIC contained_local_operation<db::PolygonRef, db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC contained_local_operation<db::Polygon, db::Polygon, db::Polygon>;
|
||||
template class DB_PUBLIC contained_local_operation<db::Edge, db::Edge, db::Edge>;
|
||||
template class DB_PUBLIC contained_local_operation<db::PolygonRefWithProperties, db::PolygonRefWithProperties, db::PolygonRefWithProperties>;
|
||||
template class DB_PUBLIC contained_local_operation<db::PolygonWithProperties, db::PolygonWithProperties, db::PolygonWithProperties>;
|
||||
template class DB_PUBLIC contained_local_operation<db::EdgeWithProperties, db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
|
||||
// ---------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -1186,6 +1207,8 @@ std::string pull_local_operation<TS, TI, TR>::description () const
|
|||
|
||||
template class DB_PUBLIC pull_local_operation<db::PolygonRef, db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC pull_local_operation<db::Polygon, db::Polygon, db::Polygon>;
|
||||
template class DB_PUBLIC pull_local_operation<db::PolygonRefWithProperties, db::PolygonRefWithProperties, db::PolygonRefWithProperties>;
|
||||
template class DB_PUBLIC pull_local_operation<db::PolygonWithProperties, db::PolygonWithProperties, db::PolygonWithProperties>;
|
||||
|
||||
// ---------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -1244,7 +1267,7 @@ void interacting_with_edge_local_operation<TS, TI, TR>::do_compute_local (db::La
|
|||
}
|
||||
}
|
||||
|
||||
merge_scanner.process (cluster_collector, 1, db::box_convert<db::Edge> ());
|
||||
merge_scanner.process (cluster_collector, 1, db::box_convert<TI> ());
|
||||
|
||||
for (typename std::unordered_set<TI>::const_iterator e = merged_heap.begin (); e != merged_heap.end (); ++e) {
|
||||
scanner.insert2 (e.operator-> (), 0);
|
||||
|
|
@ -1314,6 +1337,8 @@ std::string interacting_with_edge_local_operation<TS, TI, TR>::description () co
|
|||
|
||||
template class DB_PUBLIC interacting_with_edge_local_operation<db::PolygonRef, db::Edge, db::PolygonRef>;
|
||||
template class DB_PUBLIC interacting_with_edge_local_operation<db::Polygon, db::Edge, db::Polygon>;
|
||||
template class DB_PUBLIC interacting_with_edge_local_operation<db::PolygonRefWithProperties, db::EdgeWithProperties, db::PolygonRefWithProperties>;
|
||||
template class DB_PUBLIC interacting_with_edge_local_operation<db::PolygonWithProperties, db::EdgeWithProperties, db::PolygonWithProperties>;
|
||||
|
||||
// ---------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -1375,6 +1400,8 @@ std::string pull_with_edge_local_operation<TS, TI, TR>::description () const
|
|||
|
||||
template class DB_PUBLIC pull_with_edge_local_operation<db::PolygonRef, db::Edge, db::Edge>;
|
||||
template class DB_PUBLIC pull_with_edge_local_operation<db::Polygon, db::Edge, db::Edge>;
|
||||
template class DB_PUBLIC pull_with_edge_local_operation<db::PolygonRefWithProperties, db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
template class DB_PUBLIC pull_with_edge_local_operation<db::PolygonWithProperties, db::EdgeWithProperties, db::EdgeWithProperties>;
|
||||
|
||||
// ---------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -1442,6 +1469,8 @@ std::string pull_with_text_local_operation<TS, TI, TR>::description () const
|
|||
|
||||
template class DB_PUBLIC pull_with_text_local_operation<db::PolygonRef, db::TextRef, db::TextRef>;
|
||||
template class DB_PUBLIC pull_with_text_local_operation<db::Polygon, db::Text, db::Text>;
|
||||
template class DB_PUBLIC pull_with_text_local_operation<db::PolygonRefWithProperties, db::TextRefWithProperties, db::TextRefWithProperties>;
|
||||
template class DB_PUBLIC pull_with_text_local_operation<db::PolygonWithProperties, db::TextWithProperties, db::TextWithProperties>;
|
||||
|
||||
// ---------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
|
@ -1546,6 +1575,8 @@ std::string interacting_with_text_local_operation<TS, TI, TR>::description () co
|
|||
// explicit instantiations
|
||||
template class DB_PUBLIC interacting_with_text_local_operation<db::PolygonRef, db::TextRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC interacting_with_text_local_operation<db::Polygon, db::Text, db::Polygon>;
|
||||
template class DB_PUBLIC interacting_with_text_local_operation<db::PolygonRefWithProperties, db::TextRefWithProperties, db::PolygonRefWithProperties>;
|
||||
template class DB_PUBLIC interacting_with_text_local_operation<db::PolygonWithProperties, db::TextWithProperties, db::PolygonWithProperties>;
|
||||
|
||||
// ---------------------------------------------------------------------------------------------
|
||||
// BoolAndOrNotLocalOperation implementation
|
||||
|
|
@ -1631,6 +1662,8 @@ bool_and_or_not_local_operation<TS, TI, TR>::do_compute_local (db::Layout *layou
|
|||
|
||||
template class DB_PUBLIC bool_and_or_not_local_operation<db::PolygonRef, db::PolygonRef, db::PolygonRef>;
|
||||
template class DB_PUBLIC bool_and_or_not_local_operation<db::Polygon, db::Polygon, db::Polygon>;
|
||||
template class DB_PUBLIC bool_and_or_not_local_operation<db::PolygonRefWithProperties, db::PolygonRefWithProperties, db::PolygonRefWithProperties>;
|
||||
template class DB_PUBLIC bool_and_or_not_local_operation<db::PolygonWithProperties, db::PolygonWithProperties, db::PolygonWithProperties>;
|
||||
|
||||
// ---------------------------------------------------------------------------------------------
|
||||
// BoolAndOrNotLocalOperationWithProperties implementation
|
||||
|
|
|
|||
Loading…
Reference in New Issue