Changed the behavior of searches for labels in the basic extraction
such that it looks for material connecting to the label at the center point of the label and not the lower left corner. This keeps the behavior of looking for tiles on the corners of a degenerate label line or point between layers, but avoids problems with sticky labels that are not quite aligned with the rectangle (due to certain commercial EDA tools that have a sloppier notion of labeling).
This commit is contained in:
parent
0a1cb9ca99
commit
3755661196
|
|
@ -218,13 +218,14 @@ ExtLabelRegions(def, connTo, nodeList, clipArea)
|
|||
for (quad = 0; quad < 4; quad++)
|
||||
{
|
||||
/*
|
||||
* Visit each of the four quadrants surrounding
|
||||
* the lower-left corner of the label, searching
|
||||
* for a tile whose type matches that of the label
|
||||
* or connects to it.
|
||||
* Visit each of the four quadrants surrounding the center
|
||||
* point of the label, searching for a tile whose type matches
|
||||
* that of the label or connects to it.
|
||||
*/
|
||||
p.p_x = lab->lab_rect.r_xbot + offsets[quad].p_x;
|
||||
p.p_y = lab->lab_rect.r_ybot + offsets[quad].p_y;
|
||||
p.p_x = ((lab->lab_rect.r_xbot + lab->lab_rect.r_xtop) >> 1)
|
||||
+ offsets[quad].p_x;
|
||||
p.p_y = ((lab->lab_rect.r_ybot + lab->lab_rect.r_ytop) >> 1)
|
||||
+ offsets[quad].p_y;
|
||||
tp = def->cd_planes[pNum]->pl_hint;
|
||||
GOTOPOINT(tp, &p);
|
||||
def->cd_planes[pNum]->pl_hint = tp;
|
||||
|
|
|
|||
Loading…
Reference in New Issue