void defiNonDefault::print(FILE* f) const { int i; fprintf(f, "nondefaultrule %s\n", name()); fprintf(f, "%d layers %d vias %d viarules %d mincuts\n", numLayers(), numVias(), numViaRules(), numMinCuts()); for (i = 0; i < numLayers(); i++) { fprintf(f, " Layer %s\n", layerName(i)); fprintf(f, " WIDTH %g\n", layerWidth(i)); if (hasLayerDiagWidth(i)) fprintf(f, " DIAGWIDTH %g\n", layerDiagWidth(i)); if (hasLayerSpacing(i)) fprintf(f, " SPACING %g\n", layerSpacing(i)); if (hasLayerWireExt(i)) fprintf(f, " WIREEXT %g\n", layerWireExt(i)); } for (i = 0; i < numVias(); i++) { fprintf(f, " VIA %s\n", viaName(i)); } for (i = 0; i < numViaRules(); i++) { fprintf(f, " VIARULE %s\n", viaRuleName(i)); } for (i = 0; i < numMinCuts(); i++) { fprintf(f, " MINCUTS %s %d\n", cutLayerName(i), numCuts(i)); } }
void defiFill::print(FILE* f) const { int i, j; struct defiPoints points; if (hasLayer()) fprintf(f, "- LAYER %s", layerName()); if (layerMask()) fprintf(f, " + Mask %d", layerMask()); if (hasLayerOpc()) fprintf(f, " + OPC"); fprintf(f, "\n"); for (i = 0; i < numRectangles(); i++) { fprintf(f, " RECT %d %d %d %d\n", xl(i), yl(i), xh(i), yh(i)); } for (i = 0; i < numPolygons(); i++) { fprintf(f, " POLYGON "); points = getPolygon(i); for (j = 0; j < points.numPoints; j++) fprintf(f, "%d %d ", points.x[j], points.y[j]); fprintf(f, "\n"); } fprintf(f,"\n"); if (hasVia()) fprintf(f, "- VIA %s", viaName()); if (viaTopMask() || viaCutMask() || viaBottomMask()) { fprintf(f, " + MASK %d", viaTopMask(), viaCutMask(), viaBottomMask()); } if (hasViaOpc()) fprintf(f, " + OPC"); fprintf(f, "\n"); for (i = 0; i < numViaPts(); i++) { fprintf(f, " "); points = getViaPts(i); for (j = 0; j < points.numPoints; j++) fprintf(f, "%d %d ", points.x[j], points.y[j]); fprintf(f, "\n"); } fprintf(f,"\n"); }