//Constructors /// <summary> /// Creates an initialized instance /// </summary> /// <param name="feedingCfg">Input feeding settings</param> /// <param name="varyingFieldsCfg">Varying input fields settings</param> /// <param name="coordinatesCfg">Input placement in 3D space</param> public InputEncoderSettings(IFeedingSettings feedingCfg, VaryingFieldsSettings varyingFieldsCfg, CoordinatesSettings coordinatesCfg = null ) { FeedingCfg = (IFeedingSettings)feedingCfg.DeepClone(); VaryingFieldsCfg = (VaryingFieldsSettings)varyingFieldsCfg.DeepClone(); CoordinatesCfg = coordinatesCfg == null ? new CoordinatesSettings() : (CoordinatesSettings)coordinatesCfg.DeepClone(); Check(); return; }
//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">Xml element containing the initialization settings.</param> public InputEncoderSettings(XElement elem) { //Validation XElement settingsElem = Validate(elem, XsdTypeName); //Parsing XElement feedingElem = settingsElem.Elements().First(); FeedingCfg = feedingElem.Name.LocalName == "feedingContinuous" ? (IFeedingSettings) new FeedingContinuousSettings(feedingElem) : new FeedingPatternedSettings(feedingElem); VaryingFieldsCfg = new VaryingFieldsSettings(settingsElem.Elements("varyingFields").First()); XElement coordinatesElem = settingsElem.Elements("coordinates").FirstOrDefault(); CoordinatesCfg = coordinatesElem == null ? new CoordinatesSettings() : new CoordinatesSettings(coordinatesElem); Check(); return; }