Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit a163cbbf authored by Michael KRISPER's avatar Michael KRISPER
Browse files

GearshiftPosition: reformatting and simplifying check for HasPredecessor and HasSucessor

parent 83b70aa3
No related branches found
No related tags found
No related merge requests found
...@@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ...@@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
return false; return false;
} }
return p2.TorqueConverterLocked.Value && !p1.TorqueConverterLocked.Value; return p2.TorqueConverterLocked.Value && !p1.TorqueConverterLocked.Value;
} }
...@@ -82,79 +82,51 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ...@@ -82,79 +82,51 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
} }
} }
public class GearList :IEnumerable<GearshiftPosition> public class GearList : IEnumerable<GearshiftPosition>
{ {
protected GearshiftPosition[] Entries; protected GearshiftPosition[] Entries;
public GearList(GearshiftPosition[] gearList) public GearList(GearshiftPosition[] gearList) => Entries = gearList;
{
Entries = gearList;
}
public bool HasPredecessor(GearshiftPosition cur)
{
var idx = Array.IndexOf(Entries, cur);
return idx > 0;
}
public bool HasPredecessor(GearshiftPosition cur) => cur != Entries[0];
public GearshiftPosition Predecessor(GearshiftPosition cur) public GearshiftPosition Predecessor(GearshiftPosition cur)
{ {
var idx = Array.IndexOf(Entries, cur); var idx = Array.IndexOf(Entries, cur);
return idx <= 0 ? null : Entries[idx - 1]; return idx <= 0 ? null : Entries[idx - 1];
} }
public bool HasSuccessor(GearshiftPosition cur) public bool HasSuccessor(GearshiftPosition cur) => cur != Entries[Entries.Length-1];
{
var idx = Array.IndexOf(Entries, cur);
return idx < Entries.Length - 1;
}
public GearshiftPosition Successor(GearshiftPosition cur) public GearshiftPosition Successor(GearshiftPosition cur)
{ {
var idx = Array.IndexOf(Entries, cur); var idx = Array.IndexOf(Entries, cur);
return idx < 0 || idx >= Entries.Length - 1 ? null : Entries[idx + 1]; return idx < 0 || idx >= Entries.Length - 1 ? null : Entries[idx + 1];
} }
public GearshiftPosition Successor(GearshiftPosition cur, uint numUp) public GearshiftPosition Successor(GearshiftPosition cur, uint numUp)
{ {
var idx = Array.IndexOf(Entries, cur); var idx = Array.IndexOf(Entries, cur);
if (idx < 0) { if (idx < 0) {
return null; return null;
} }
var next = idx + numUp; var next = idx + numUp;
return next >= Entries.Length ? Entries.Last() : Entries[next]; return next >= Entries.Length ? Entries.Last() : Entries[next];
} }
public GearshiftPosition Predecessor(GearshiftPosition cur, uint numDown) public GearshiftPosition Predecessor(GearshiftPosition cur, uint numDown)
{ {
var idx = Array.IndexOf(Entries, cur); var idx = Array.IndexOf(Entries, cur);
if (idx < 0) { if (idx < 0) {
return null; return null;
} }
var next = idx - numDown; var next = idx - numDown;
return next < 0 ? Entries.First() : Entries[next]; return next < 0 ? Entries.First() : Entries[next];
} }
public IEnumerator<GearshiftPosition> GetEnumerator() public IEnumerator<GearshiftPosition> GetEnumerator() => Entries.AsEnumerable().GetEnumerator();
{
foreach (var entry in Entries) { IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
yield return entry;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public int Distance(GearshiftPosition from, GearshiftPosition to) public int Distance(GearshiftPosition from, GearshiftPosition to)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment