//Constructors /// <summary> /// Creates an initialized instance. /// </summary> /// <param name="name">The name of the pool.</param> /// <param name="proportionsCfg">The configuration of the pool proportions.</param> /// <param name="neuronGroupsCfg">The configuration of neuron groups within the pool.</param> /// <param name="interconnectionCfg">The configuration of the pool's neurons interconnection.</param> /// <param name="coordinatesCfg">The configuration of the pool coordinates.</param> public PoolSettings(string name, ProportionsSettings proportionsCfg, NeuronGroupsSettings neuronGroupsCfg, InterconnSettings interconnectionCfg, CoordinatesSettings coordinatesCfg = null ) { Name = name; ProportionsCfg = (ProportionsSettings)proportionsCfg.DeepClone(); NeuronGroupsCfg = (NeuronGroupsSettings)neuronGroupsCfg.DeepClone(); InterconnectionCfg = (InterconnSettings)interconnectionCfg.DeepClone(); CoordinatesCfg = coordinatesCfg == null ? new CoordinatesSettings() : (CoordinatesSettings)coordinatesCfg.DeepClone(); Check(); return; }
/// <summary> /// Creates an initialized instance. /// </summary> /// <param name="elem">A xml element containing the configuration data.</param> public PoolSettings(XElement elem) { //Validation XElement poolSettingsElem = Validate(elem, XsdTypeName); //Parsing Name = poolSettingsElem.Attribute("name").Value; ProportionsCfg = new ProportionsSettings(poolSettingsElem.Elements("proportions").First()); NeuronGroupsCfg = new NeuronGroupsSettings(poolSettingsElem.Elements("neuronGroups").First()); InterconnectionCfg = new InterconnSettings(poolSettingsElem.Elements("interconnection").First()); //Coordinates XElement coordinatesElem = poolSettingsElem.Elements("coordinates").FirstOrDefault(); CoordinatesCfg = coordinatesElem == null ? new CoordinatesSettings() : new CoordinatesSettings(coordinatesElem); Check(); return; }