This commit is contained in:
Matthias Koefferlein 2024-06-23 17:20:32 +02:00
parent 55fc4a8728
commit d2479c7159
2 changed files with 26 additions and 4 deletions

View File

@ -1390,8 +1390,26 @@ AsIfFlatRegion::sized_inside (const Region &inside, coord_type dx, coord_type dy
return clone ();
}
return 0; // @@@
std::unique_ptr<FlatRegion> output (new FlatRegion ());
std::vector<db::Shapes *> results;
results.push_back (&output->raw_polygons ());
db::sized_inside_local_operation<db::Polygon, db::Polygon, db::Polygon> op (dx, dy, steps, mode);
db::local_processor<db::Polygon, db::Polygon, db::Polygon> proc;
proc.set_base_verbosity (base_verbosity ());
proc.set_description (progress_desc ());
proc.set_report_progress (report_progress ());
std::vector<db::generic_shape_iterator<db::Polygon> > others;
others.push_back (inside.begin ());
if (stop_at) {
others.push_back (stop_at->begin ());
}
proc.run_flat (begin_merged (), others, std::vector<bool> (), &op, results);
return output.release ();
}
RegionDelegate *

View File

@ -1982,9 +1982,13 @@ sized_inside_local_operation<TS, TI, TR>::do_compute_local (db::Layout *layout,
tl_assert (results.size () == 1);
std::unordered_set<TR> &result = results.front ();
const db::ICplxTrans &tr = proc->vars ()->single_variant_transformation (subject_cell->cell_index ());
double mag = tr.mag ();
double angle = tr.angle ();
double mag = 1.0;
double angle = 1.0;
if (proc->vars ()) {
const db::ICplxTrans &tr = proc->vars ()->single_variant_transformation (subject_cell->cell_index ());
mag = tr.mag ();
angle = tr.angle ();
}
double dx_with_mag = m_dx / mag;
double dy_with_mag = m_dy / mag;