Further refined the layers used in hierarchical GDS generation to

exclude layers created using the "boundary" or "bbox" operators,
since they only exist in specific levels of the hierarchy.  Pretty
much by definition they should not be used in a way that requires
additional geometry to be added to the parent cell.  This greatly
reduces parent-vs.-child disagreements (and the corresponding error
messages), but does not entirely eliminate them.
This commit is contained in:
Tim Edwards 2020-06-17 12:14:41 -04:00
parent bf4364da44
commit b39a45a700
1 changed files with 21 additions and 0 deletions

View File

@ -1960,6 +1960,27 @@ CIFTechFinal()
TTMaskSetType(&style->cs_hierLayers, i);
}
/* Added by Tim, 6/17/20: Do not set dependencies of BOUNDARY */
/* or BBOX because these are unable to be represented in a */
/* hierarchy without producing conflicting parent/child mask */
/* geometry. Generally, BOUNDARY and BBOX operations are */
/* intended to be restricted to the child cell and should not */
/* interact hierarchically. Possibly it would be useful to */
/* provide some method to preserve the bounding box information */
/* when flattening? */
for (i = 0; i < style->cs_nLayers; i++)
{
for (op = style->cs_layers[i]->cl_ops; op != NULL; op = op->co_next)
{
if (op->co_opcode == CIFOP_BOUNDARY || op->co_opcode == CIFOP_BBOX)
{
TTMaskClearType(&style->cs_hierLayers, i);
break;
}
}
}
/* Added by Tim, 10/18/04 */
/* Go through the layer operators looking for those that */