mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-10-06 01:43:00 +02:00
Corrected an error with the bloat-all CIF operator in which
bloat-all would fail to operate from the top layer of a contact type due to the use of DBplane(type) instead of counting all planes of the contact.
This commit is contained in:
+11
-3
@@ -1327,9 +1327,17 @@ cifBloatAllFunc(tile, bls)
|
||||
}
|
||||
else
|
||||
{
|
||||
int pNum = DBPlane(type);
|
||||
pmask = (bloats->bl_plane < 0) ? 0 :
|
||||
CoincidentPlanes(connect, PlaneNumToMaskBit(pNum));
|
||||
if (DBIsContact(type))
|
||||
{
|
||||
pmask = (bloats->bl_plane < 0) ? 0 :
|
||||
CoincidentPlanes(connect, DBLayerPlanes(type));
|
||||
}
|
||||
else
|
||||
{
|
||||
int pNum = DBPlane(type);
|
||||
pmask = (bloats->bl_plane < 0) ? 0 :
|
||||
CoincidentPlanes(connect, PlaneNumToMaskBit(pNum));
|
||||
}
|
||||
if (pmask == 0) TiToRect(tile, &area);
|
||||
if (bloats->bl_plane < 0)
|
||||
{
|
||||
|
||||
@@ -895,6 +895,24 @@ DBIsContact(type)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
* DBLayerPlanes --
|
||||
*
|
||||
* Like LayerPlaneMask(), except as a subroutine, not a macro. For export
|
||||
* to other routines.
|
||||
*
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
PlaneMask
|
||||
DBLayerPlanes(type)
|
||||
TileType type;
|
||||
{
|
||||
return LayerPlaneMask(type);
|
||||
}
|
||||
|
||||
/*
|
||||
* ----------------------------------------------------------------------------
|
||||
*
|
||||
|
||||
@@ -829,7 +829,6 @@ extern void DBTechInitContact();
|
||||
extern void DBTechFinalContact();
|
||||
extern void DBTechFinalConnect();
|
||||
extern void DBTechInitConnect();
|
||||
extern bool DBIsContact();
|
||||
|
||||
/* Cell symbol table */
|
||||
extern void DBCellInit();
|
||||
@@ -899,6 +898,8 @@ extern Plane *DBCellGenerateSimpleSubstrate();
|
||||
extern TileType DBPlaneToResidue();
|
||||
extern TileType DBTechFindStacking();
|
||||
extern bool DBIsContact();
|
||||
extern PlaneMask DBLayerPlanes();
|
||||
|
||||
extern TileTypeBitMask *DBResidueMask();
|
||||
extern void DBFullResidueMask();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user