Corrected a long-standing error, which caused "getcell child <point>"

to place a cell in a meaningless position for any rotation and flip
combination other than zero.  The issue was that the reference point
was not rotated along with the cell.
This commit is contained in:
Tim Edwards 2024-01-21 15:54:49 -05:00
parent 5f6ba3be69
commit 7f5571768f
1 changed files with 6 additions and 4 deletions

View File

@ -4814,7 +4814,7 @@ cmdDumpParseArgs(cmdName, w, cmd, dummy, scx)
* cell itself.
*/
{
Point childPoint, editPoint, rootPoint;
Point childPoint, editPoint, rootPoint, refpoint;
CellDef *def, *rootDef, *editDef;
bool hasChild, hasRoot, hasTrans;
Rect rootBox, bbox;
@ -5253,9 +5253,11 @@ box_error:
scx->scx_use = dummy;
GeoTranslateTrans(&trans_cell, rootPoint.p_x - childPoint.p_x,
rootPoint.p_y - childPoint.p_y,
&scx->scx_trans);
/* Transform childPoint by trans_cell */
GeoTransPoint(&trans_cell, &childPoint, &refpoint);
GeoTranslateTrans(&trans_cell, rootPoint.p_x - refpoint.p_x,
rootPoint.p_y - refpoint.p_y, &scx->scx_trans);
scx->scx_area = bbox;
return TRUE;