private void SiliconIntercellular(ILayerCell cell, bool isVertical, SiliconLink siliconLink, Rectangle cellBounds) { if (siliconLink == SiliconLink.None) { return; } Pen pen; if (cell.HasN()) { pen = NPen; } else if (cell.HasP()) { pen = PPen; } else if (siliconLink != SiliconLink.Slave ^ cell.HasPGate()) { pen = NPen; } else { pen = PPen; } GenericIntercellular(cellBounds, pen, isVertical); }
static SiliconLink InvertIfNeeded(SiliconLink x, bool invert) { if (!invert) { return(x); } if (x == SiliconLink.Slave) { return(SiliconLink.Master); } if (x == SiliconLink.Master) { return(SiliconLink.Slave); } return(x); }
public LinkContent(SiliconLink siliconLink, bool hasMetalLink) { SiliconLink = siliconLink; HasMetalLink = hasMetalLink; }