Corrected the generation of bounding box positions from a GDS
boundary layer, which was being saved in GDS coordinates, not magic database coordinates.
This commit is contained in:
parent
d839cc26e2
commit
d95d8ba2ef
|
|
@ -700,8 +700,31 @@ cifMakeBoundaryFunc(tile, clientdata)
|
||||||
|
|
||||||
Rect area;
|
Rect area;
|
||||||
char propertyvalue[128], *storedvalue;
|
char propertyvalue[128], *storedvalue;
|
||||||
|
int savescale;
|
||||||
|
|
||||||
TiToRect(tile, &area);
|
TiToRect(tile, &area);
|
||||||
|
area.r_xtop = CIFScaleCoord(area.r_xtop, COORD_EXACT);
|
||||||
|
savescale = cifCurReadStyle->crs_scaleFactor;
|
||||||
|
area.r_ytop = CIFScaleCoord(area.r_ytop, COORD_EXACT);
|
||||||
|
if (savescale != cifCurReadStyle->crs_scaleFactor)
|
||||||
|
{
|
||||||
|
area.r_xtop *= (savescale / cifCurReadStyle->crs_scaleFactor);
|
||||||
|
savescale = cifCurReadStyle->crs_scaleFactor;
|
||||||
|
}
|
||||||
|
area.r_xbot = CIFScaleCoord(area.r_xbot, COORD_EXACT);
|
||||||
|
if (savescale != cifCurReadStyle->crs_scaleFactor)
|
||||||
|
{
|
||||||
|
area.r_xtop *= (savescale / cifCurReadStyle->crs_scaleFactor);
|
||||||
|
area.r_ytop *= (savescale / cifCurReadStyle->crs_scaleFactor);
|
||||||
|
savescale = cifCurReadStyle->crs_scaleFactor;
|
||||||
|
}
|
||||||
|
area.r_ybot = CIFScaleCoord(area.r_ybot, COORD_EXACT);
|
||||||
|
if (savescale != cifCurReadStyle->crs_scaleFactor)
|
||||||
|
{
|
||||||
|
area.r_xtop *= (savescale / cifCurReadStyle->crs_scaleFactor);
|
||||||
|
area.r_ytop *= (savescale / cifCurReadStyle->crs_scaleFactor);
|
||||||
|
area.r_xbot *= (savescale / cifCurReadStyle->crs_scaleFactor);
|
||||||
|
}
|
||||||
|
|
||||||
if (cifReadCellDef->cd_flags & CDFIXEDBBOX)
|
if (cifReadCellDef->cd_flags & CDFIXEDBBOX)
|
||||||
CIFReadError("Warning: Cell %s boundary was redefined.\n",
|
CIFReadError("Warning: Cell %s boundary was redefined.\n",
|
||||||
|
|
@ -712,6 +735,7 @@ cifMakeBoundaryFunc(tile, clientdata)
|
||||||
storedvalue = StrDup((char **)NULL, propertyvalue);
|
storedvalue = StrDup((char **)NULL, propertyvalue);
|
||||||
DBPropPut(cifReadCellDef, "FIXED_BBOX", storedvalue);
|
DBPropPut(cifReadCellDef, "FIXED_BBOX", storedvalue);
|
||||||
cifReadCellDef->cd_flags |= CDFIXEDBBOX;
|
cifReadCellDef->cd_flags |= CDFIXEDBBOX;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Paint CIF layer geometry into the current cell def as magic layer "type" */
|
/* Paint CIF layer geometry into the current cell def as magic layer "type" */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue