Fixed DRC update

This commit is contained in:
Matthias Koefferlein 2024-08-04 19:23:31 +02:00
parent c63e41e732
commit 29f82854fb
3 changed files with 68 additions and 18 deletions

View File

@ -2558,6 +2558,12 @@ template class DB_PUBLIC local_processor_cell_context<db::Polygon, db::Polygon,
template class DB_PUBLIC local_processor_cell_context<db::Edge, db::Edge, db::Edge>;
template class DB_PUBLIC local_processor_cell_context<db::Edge, db::Polygon, db::Edge>;
template class DB_PUBLIC local_processor_cell_context<db::Edge, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_processor_cell_context<db::EdgePair, db::Polygon, db::EdgePair>;
template class DB_PUBLIC local_processor_cell_context<db::EdgePair, db::PolygonRef, db::EdgePair>;
template class DB_PUBLIC local_processor_cell_context<db::EdgePair, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_processor_cell_context<db::EdgePair, db::Polygon, db::Polygon>;
template class DB_PUBLIC local_processor_cell_context<db::EdgePair, db::PolygonRef, db::PolygonRef>;
template class DB_PUBLIC local_processor_cell_context<db::EdgePair, db::Edge, db::Edge>;
// explicit instantiations
template class DB_PUBLIC local_processor_cell_contexts<db::Polygon, db::Polygon, db::Polygon>;
@ -2581,6 +2587,12 @@ template class DB_PUBLIC local_processor_cell_contexts<db::Edge, db::PolygonRef,
template class DB_PUBLIC local_processor_cell_contexts<db::Edge, db::Polygon, db::Edge>;
template class DB_PUBLIC local_processor_cell_contexts<db::Edge, db::Edge, db::Edge>;
template class DB_PUBLIC local_processor_cell_contexts<db::Edge, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_processor_cell_contexts<db::EdgePair, db::Polygon, db::EdgePair>;
template class DB_PUBLIC local_processor_cell_contexts<db::EdgePair, db::PolygonRef, db::EdgePair>;
template class DB_PUBLIC local_processor_cell_contexts<db::EdgePair, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_processor_cell_contexts<db::EdgePair, db::Polygon, db::Polygon>;
template class DB_PUBLIC local_processor_cell_contexts<db::EdgePair, db::PolygonRef, db::PolygonRef>;
template class DB_PUBLIC local_processor_cell_contexts<db::EdgePair, db::Edge, db::Edge>;
// explicit instantiations
template class DB_PUBLIC shape_interactions<db::Polygon, db::Polygon>;
@ -2598,6 +2610,9 @@ 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>;
template class DB_PUBLIC shape_interactions<db::TextRef, db::PolygonRef>;
template class DB_PUBLIC shape_interactions<db::EdgePair, db::Polygon>;
template class DB_PUBLIC shape_interactions<db::EdgePair, db::PolygonRef>;
template class DB_PUBLIC shape_interactions<db::EdgePair, db::Edge>;
// explicit instantiations
template class DB_PUBLIC local_processor_context_computation_task<db::Polygon, db::Polygon, db::Polygon>;
@ -2629,6 +2644,12 @@ template class DB_PUBLIC local_processor_context_computation_task<db::Edge, db::
template class DB_PUBLIC local_processor_context_computation_task<db::Edge, db::Polygon, db::Edge>;
template class DB_PUBLIC local_processor_context_computation_task<db::Edge, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_processor_context_computation_task<db::Edge, db::PolygonRef, db::PolygonRef>;
template class DB_PUBLIC local_processor_context_computation_task<db::EdgePair, db::Polygon, db::EdgePair>;
template class DB_PUBLIC local_processor_context_computation_task<db::EdgePair, db::PolygonRef, db::EdgePair>;
template class DB_PUBLIC local_processor_context_computation_task<db::EdgePair, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_processor_context_computation_task<db::EdgePair, db::Polygon, db::Polygon>;
template class DB_PUBLIC local_processor_context_computation_task<db::EdgePair, db::PolygonRef, db::PolygonRef>;
template class DB_PUBLIC local_processor_context_computation_task<db::EdgePair, db::Edge, db::Edge>;
// explicit instantiations
template class DB_PUBLIC local_processor_result_computation_task<db::Polygon, db::Polygon, db::Polygon>;
@ -2652,6 +2673,12 @@ template class DB_PUBLIC local_processor_result_computation_task<db::Edge, db::E
template class DB_PUBLIC local_processor_result_computation_task<db::Edge, db::PolygonRef, db::Edge>;
template class DB_PUBLIC local_processor_result_computation_task<db::Edge, db::Polygon, db::Edge>;
template class DB_PUBLIC local_processor_result_computation_task<db::Edge, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_processor_result_computation_task<db::EdgePair, db::Polygon, db::EdgePair>;
template class DB_PUBLIC local_processor_result_computation_task<db::EdgePair, db::PolygonRef, db::EdgePair>;
template class DB_PUBLIC local_processor_result_computation_task<db::EdgePair, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_processor_result_computation_task<db::EdgePair, db::Polygon, db::Polygon>;
template class DB_PUBLIC local_processor_result_computation_task<db::EdgePair, db::PolygonRef, db::PolygonRef>;
template class DB_PUBLIC local_processor_result_computation_task<db::EdgePair, db::Edge, db::Edge>;
// explicit instantiations
template class DB_PUBLIC local_processor<db::Polygon, db::Polygon, db::Polygon>;
@ -2683,6 +2710,12 @@ template class DB_PUBLIC local_processor<db::Edge, db::PolygonRef, db::PolygonRe
template class DB_PUBLIC local_processor<db::Edge, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_processor<db::TextRef, db::PolygonRef, db::TextRef>;
template class DB_PUBLIC local_processor<db::TextRef, db::PolygonRef, db::PolygonRef>;
template class DB_PUBLIC local_processor<db::EdgePair, db::Polygon, db::EdgePair>;
template class DB_PUBLIC local_processor<db::EdgePair, db::PolygonRef, db::EdgePair>;
template class DB_PUBLIC local_processor<db::EdgePair, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_processor<db::EdgePair, db::Polygon, db::Polygon>;
template class DB_PUBLIC local_processor<db::EdgePair, db::PolygonRef, db::PolygonRef>;
template class DB_PUBLIC local_processor<db::EdgePair, db::Edge, db::Edge>;
}

View File

@ -106,6 +106,12 @@ template class DB_PUBLIC local_operation<db::Edge, db::PolygonRef, db::PolygonRe
template class DB_PUBLIC local_operation<db::Edge, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_operation<db::TextRef, db::PolygonRef, db::PolygonRef>;
template class DB_PUBLIC local_operation<db::TextRef, db::PolygonRef, db::TextRef>;
template class DB_PUBLIC local_operation<db::EdgePair, db::Polygon, db::EdgePair>;
template class DB_PUBLIC local_operation<db::EdgePair, db::PolygonRef, db::EdgePair>;
template class DB_PUBLIC local_operation<db::EdgePair, db::Edge, db::EdgePair>;
template class DB_PUBLIC local_operation<db::EdgePair, db::Polygon, db::Polygon>;
template class DB_PUBLIC local_operation<db::EdgePair, db::PolygonRef, db::PolygonRef>;
template class DB_PUBLIC local_operation<db::EdgePair, db::Edge, db::Edge>;
}

View File

@ -2813,13 +2813,14 @@ CODE
requires_region
other.requires_region
else
requires_edges_texts_or_region
if self.data.is_a?(RBA::Text)
if self.data.is_a?(RBA::Texts)
other.requires_region
elsif self.data.is_a?(RBA::Region)
other.requires_edges_texts_or_region
else
elsif self.data.is_a?(RBA::Edges) || self.data.is_a?(RBA::EdgePairs)
other.requires_edges_or_region
else
raise("Invalid data type of primary layer")
end
end
@ -2837,11 +2838,13 @@ CODE
@engine._context("#{f}") do
requires_edges_or_region
check_is_layer(other)
if self.data.is_a?(RBA::Edges)
other.requires_edges_or_region
else
elsif self.data.is_a?(RBA::Region) || self.data.is_a?(RBA::EdgePairs)
other.requires_region
else
raise("Invalid data type of primary layer")
end
DRCLayer::new(@engine, @engine._tcmd(self.data, 0, self.data.class, :#{f}, other.data))
@ -2913,12 +2916,14 @@ CODE
@engine._context("#{f}") do
check_is_layer(other)
if self.data.is_a?(RBA::Text)
if self.data.is_a?(RBA::Texts)
other.requires_region
elsif self.data.is_a?(RBA::Region)
other.requires_edges_texts_or_region
else
elsif self.data.is_a?(RBA::Edges) || self.data.is_a?(RBA::EdgePairs)
other.requires_edges_or_region
else
raise("Invalid data type of primary layer")
end
DRCLayer::new(@engine, @engine._tcmd(self.data, 0, self.data.class, :#{f}, other.data, *minmax_count(*args)))
@ -2938,13 +2943,14 @@ CODE
@engine._context("#{f}") do
check_is_layer(other)
requires_edges_texts_or_region
if self.data.is_a?(RBA::Text)
if self.data.is_a?(RBA::Texts)
other.requires_region
elsif self.data.is_a?(RBA::Region)
other.requires_edges_texts_or_region
else
elsif self.data.is_a?(RBA::Edges) || self.data.is_a?(RBA::EdgePairs)
other.requires_edges_or_region
else
raise("Invalid data type of primary layer")
end
if @engine.is_tiled?
@ -2985,11 +2991,13 @@ CODE
@engine._context("#{f}") do
check_is_layer(other)
requires_edges_or_region
if self.data.is_a?(RBA::Edges)
other.requires_edges_or_region
elsif self.data.is_a?(RBA::Region)
if self.data.is_a?(RBA::Region)
other.requires_edges_texts_or_region
elsif self.data.is_a?(RBA::Edges) || self.data.is_a?(RBA::EdgePairs)
other.requires_edges_or_region
else
# Note: there is no "split" for Texts yet.
raise("Invalid data type of primary layer")
end
res = @engine._tcmd_a2(self.data, 0, self.data.class, self.data.class, :#{f}, other.data, *minmax_count(*args))
@ -3088,11 +3096,13 @@ CODE
@engine._context("#{f}") do
requires_edges_or_region
check_is_layer(other)
if self.data.is_a?(RBA::Edges)
other.requires_edges_or_region
else
elsif self.data.is_a?(RBA::Region) || self.data.is_a?(RBA::EdgePairs)
other.requires_region
else
raise("Invalid data type of primary layer")
end
if @engine.is_tiled?
@ -3115,11 +3125,12 @@ CODE
@engine._context("#{f}") do
check_is_layer(other)
requires_edges_or_region
if self.data.is_a?(RBA::Edges)
other.requires_edges_or_region
elsif self.data.is_a?(RBA::Region)
elsif self.data.is_a?(RBA::Region) || self.data.is_a?(RBA::EdgePairs)
other.requires_region
else
raise("Invalid data type of primary layer")
end
res = @engine._tcmd_a2(self.data, 0, self.data.class, self.data.class, :#{f}, other.data, *minmax_count(*args))