internal CChannels(CFlowMatrix aFlowMatrix) { var aChannels = new CChannel[aFlowMatrix.IoCount]; for (var aRow = 0; aRow < aFlowMatrix.IoCount; ++aRow) { var aOutputs = new List <int>(); for (var aCol = 0; aCol < aFlowMatrix.IoCount; ++aCol) { if (aFlowMatrix.Coerced[aFlowMatrix.GetCellIdx(aCol, aRow)]) { aOutputs.Add(aCol); } } var aChannel = CChannel.New(this, aRow, aOutputs); aChannels[aRow] = aChannel; } var aMainOut = new CMainOut(this); this.Channels = aChannels; this.MainOut = aMainOut; this.FlowMatrix = aFlowMatrix; }
public abstract void Visit(CMainOut aMainOut);