Further bug fixes in generic DRC domain

This commit is contained in:
Matthias Koefferlein 2023-11-18 12:35:34 +01:00
parent 37334d40b9
commit c368710253
5 changed files with 10 additions and 9 deletions

View File

@ -245,7 +245,7 @@ CompoundTransformationReducer::reduce_trans (const db::Trans &trans) const
{ {
db::Trans t = trans; db::Trans t = trans;
for (std::vector<const db::TransformationReducer *>::const_iterator v = m_vars.begin (); v != m_vars.end (); ++v) { for (std::vector<const db::TransformationReducer *>::const_iterator v = m_vars.begin (); v != m_vars.end (); ++v) {
(*v)->reduce_trans (t); t = (*v)->reduce_trans (t);
} }
return t; return t;
} }
@ -255,7 +255,7 @@ CompoundTransformationReducer::reduce_trans (const db::ICplxTrans &trans) const
{ {
db::ICplxTrans t = trans; db::ICplxTrans t = trans;
for (std::vector<const db::TransformationReducer *>::const_iterator v = m_vars.begin (); v != m_vars.end (); ++v) { for (std::vector<const db::TransformationReducer *>::const_iterator v = m_vars.begin (); v != m_vars.end (); ++v) {
(*v)->reduce_trans (t); t = (*v)->reduce_trans (t);
} }
return t; return t;
} }
@ -265,7 +265,7 @@ CompoundTransformationReducer::reduce (const db::Trans &trans) const
{ {
db::Trans t = trans; db::Trans t = trans;
for (std::vector<const db::TransformationReducer *>::const_iterator v = m_vars.begin (); v != m_vars.end (); ++v) { for (std::vector<const db::TransformationReducer *>::const_iterator v = m_vars.begin (); v != m_vars.end (); ++v) {
(*v)->reduce (t); t = (*v)->reduce (t);
} }
return t; return t;
} }
@ -275,7 +275,7 @@ CompoundTransformationReducer::reduce (const db::ICplxTrans &trans) const
{ {
db::ICplxTrans t = trans; db::ICplxTrans t = trans;
for (std::vector<const db::TransformationReducer *>::const_iterator v = m_vars.begin (); v != m_vars.end (); ++v) { for (std::vector<const db::TransformationReducer *>::const_iterator v = m_vars.begin (); v != m_vars.end (); ++v) {
(*v)->reduce (t); t = (*v)->reduce (t);
} }
return t; return t;
} }
@ -403,7 +403,7 @@ CompoundRegionMultiInputOperationNode::child (unsigned int index) const
const TransformationReducer * const TransformationReducer *
CompoundRegionMultiInputOperationNode::vars () const CompoundRegionMultiInputOperationNode::vars () const
{ {
return (m_vars.is_empty () ? &m_vars : 0); return (m_vars.is_empty () ? 0 : &m_vars);
} }
bool bool

View File

@ -1801,8 +1801,9 @@ Output *region_cop_impl (DeepRegion *region, db::CompoundRegionOperationNode &no
compound_local_operation<db::PolygonRef, db::PolygonRef, TR> op (&node); compound_local_operation<db::PolygonRef, db::PolygonRef, TR> op (&node);
// Prepare cell variants if needed // Prepare cell variants if needed
db::VariantsCollectorBase vc (op.vars ()); auto op_vars = op.vars ();
if (op.wants_variants ()) { db::VariantsCollectorBase vc (op_vars);
if (op.wants_variants () && op_vars) {
vc.collect (polygons.layout (), polygons.initial_cell ()); vc.collect (polygons.layout (), polygons.initial_cell ());
// NOTE: m_merged_polygons is mutable, so why is the const_cast needed? // NOTE: m_merged_polygons is mutable, so why is the const_cast needed?
const_cast<db::DeepLayer &> (polygons).separate_variants (vc); const_cast<db::DeepLayer &> (polygons).separate_variants (vc);

View File

@ -402,7 +402,7 @@ private:
bool m_inverse; bool m_inverse;
parameter_type m_parameter; parameter_type m_parameter;
db::MagnificationReducer m_isotropic_vars; db::MagnificationReducer m_isotropic_vars;
db::MagnificationAndOrientationReducer m_anisotropic_vars; db::XYAnisotropyAndMagnificationReducer m_anisotropic_vars;
bool check (const db::Box &box) const; bool check (const db::Box &box) const;
}; };
@ -472,7 +472,7 @@ private:
bool m_inverse; bool m_inverse;
parameter_type m_parameter; parameter_type m_parameter;
db::MagnificationReducer m_isotropic_vars; db::MagnificationReducer m_isotropic_vars;
db::MagnificationAndOrientationReducer m_anisotropic_vars; db::XYAnisotropyAndMagnificationReducer m_anisotropic_vars;
}; };
/** /**

Binary file not shown.

Binary file not shown.