//Constructors /// <summary> /// Creates an itialized instance. /// </summary> /// <param name="index">An index of this readout unit within the readout layer.</param> /// <param name="readoutUnitCfg">The configuration of the readout unit.</param> /// <param name="taskDefaultsCfg">The tasks defaults configuration.</param> public ReadoutUnit(int index, ReadoutUnitSettings readoutUnitCfg, TaskDefaultsSettings taskDefaultsCfg ) { Index = index; Name = readoutUnitCfg.Name; Task = readoutUnitCfg.TaskCfg.Type; if (readoutUnitCfg.TaskCfg.GetType() == typeof(ForecastTaskSettings)) { _clusterChainCfg = (ITNRNetClusterChainSettings)((ForecastTaskSettings)readoutUnitCfg.TaskCfg).ClusterChainCfg?.DeepClone(); if (_clusterChainCfg == null) { _clusterChainCfg = taskDefaultsCfg.ForecastClusterChainCfg; } } else { _clusterChainCfg = (ITNRNetClusterChainSettings)((ClassificationTaskSettings)readoutUnitCfg.TaskCfg).ClusterChainCfg?.DeepClone(); { if (_clusterChainCfg == null) { _clusterChainCfg = taskDefaultsCfg.ClassificationClusterChainCfg; } } } _clusterChain = null; return; }
//Constructor /// <summary> /// Creates an initialized instance. /// </summary> /// <param name="chainName">The name of the cluster chain.</param> /// <param name="clusterChainCfg">The configuration of the cluster chain.</param> /// <param name="rand">The random generator to be used (optional).</param> /// <param name="controller">The network build process controller (optional).</param> public TNRNetClusterChainBuilder(string chainName, ITNRNetClusterChainSettings clusterChainCfg, Random rand = null, TNRNetBuilder.BuildControllerDelegate controller = null ) { _chainName = chainName; _clusterChainCfg = clusterChainCfg; _rand = rand ?? new Random(0); _controller = controller; ResetProgressTracking(); return; }