private IEnergy CreateUniaxialAnisotropy(IMifEnergy energy, IColor color) { var anisotropy = energy as UniaxialAnisotropy; int energiesAmount = 0; if ((energy as UniaxialAnisotropy).Axis.Atlas != null) { energiesAmount = (energy as UniaxialAnisotropy).Axis.RegionsValue.Count; } List <IEnergyPart> energies = new List <IEnergyPart>(); energies.Add(_creator.Create(Enums.EnergyType.UniaxialAnisotropy, anisotropy.Axis.DefaultValue.X, anisotropy.Axis.DefaultValue.Y, anisotropy.Axis.DefaultValue.Z, color, anisotropy.K1.DefaultValue, "default")); for (int i = 0; i < energiesAmount; i++) { var energyPart = _creator.Create(Enums.EnergyType.UniaxialAnisotropy, anisotropy.Axis.RegionsValue[i].Item2.X, anisotropy.Axis.RegionsValue[i].Item2.Y, anisotropy.Axis.RegionsValue[i].Item2.Z, color, anisotropy.K1.RegionsValue[i].Item2, anisotropy.K1.RegionsValue[i].Item1); energies.Add(energyPart); } if (energiesAmount != 0) { // Positioning(anisotropy, energies); } //else : Get max of all atlases x,y,z and select it as point<-how can I get atlases from here? return(new SpintronicsAnisotropy(energy, energies)); }
public IEnergy CreateEnergy(IMifEnergy energy, IColor color) { if (energy != null) { return(_energyCreator.CreateEnergy(energy, color)); } throw new NullReferenceException(); }
public IEnergy CreateZeeman(IMifEnergy energy, IColor color) { switch (energy.GetType()) { case Type T when T == typeof(UZeeman): return(CreateUZeeman(energy, color)); default: throw new NotImplementedException(); } }
public IEnergy CreateAnisotropy(IMifEnergy energy, IColor color) { switch (energy.GetType()) { case Type T when T == typeof(UniaxialAnisotropy): return(CreateUniaxialAnisotropy(energy, color)); default: throw new NotImplementedException(); } }
private IEnergy CreateUZeeman(IMifEnergy energy, IColor color) { var zeeman = energy as UZeeman; List <(IEnergyPart, IEnergyPart)> energies = new List <(IEnergyPart, IEnergyPart)>(); zeeman.PositionDestinationStepsList.ForEach(e => { var part1 = _creator.Create(Enums.EnergyType.UZeeman, e.Item1.X, e.Item1.Y, e.Item1.Z, color, e.Item3, null); var part2 = _creator.Create(Enums.EnergyType.UZeeman, e.Item2.X, e.Item2.Y, e.Item2.Z, color, 0, null); energies.Add((part1, part2)); }); return(new SpintronicsZeeman(energy, energies)); }
private IEnergy CreateAnisotropy(IMifEnergy energy, IColor color) { return(_anisotropyCreator.CreateAnisotropy(energy, color)); }
private IEnergy CreateZeeman(IMifEnergy energy, IColor color) { return(_zeemanCreator.CreateZeeman(energy, color)); }
public SpintronicsExchange(IMifEnergy energy, IGraphicsObject graphic) { _energy = energy; _graphic = graphic; }