//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; }
/// <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; }
/// <summary> /// The deep copy constructor /// </summary> /// <param name="source">The source instance.</param> public VaryingFieldsSettings(VaryingFieldsSettings source) : this(source.InputSpikesCoderCfg, source.ExternalFieldsCfg, source.TransformedFieldsCfg, source.GeneratedFieldsCfg, source.RouteToReadout) { return; }