public static string AvidDirectionToString(AvidDirection direction) { switch (direction) { case AvidDirection.AB: return("A/B"); case AvidDirection.BC: return("B/C"); case AvidDirection.CD: return("C/D"); case AvidDirection.DE: return("D/E"); case AvidDirection.EF: return("E/F"); case AvidDirection.FA: return("F/A"); case AvidDirection.Undefined: return(string.Empty); default: return(direction.ToString()); } }
public AvidModelWindow(AvidDirection direction, AvidRing ring, bool abovePlane) : base(direction, ring, abovePlane) { AdjacentWindows = new List <AvidModelLink>(); DiagonalWindows = new List <AvidModelLink>(); ClearOperationalData(); }
public AvidOrientation GetOrientationWithoutRoll(AvidWindow nose, AvidDirection referenceDirection) { Vector3 vectorX = WindowToVector3(nose); var axis = _vectorLibrary.GetLocalAxis(vectorX, 0d, DirectionToAngle(referenceDirection)); var result = new AvidOrientation { Nose = Vector3ToAvid(axis[0]), Starboard = Vector3ToAvid(axis[1]), Top = Vector3ToAvid(axis[2]), }; result.Aft = GetOppositeWindow(result.Nose); result.Port = GetOppositeWindow(result.Starboard); result.Bottom = GetOppositeWindow(result.Top); return(result); }
public void UpdateDirections(AvidWindow launchWindow, AvidDirection referenceDirection) { if (AvidWindow.IsNullOrZero(launchWindow) || (launchWindow.Ring == AvidRing.Magenta && referenceDirection == AvidDirection.Undefined)) { ResetEvasionInfo(); return; } var impactWindow = _avidCalculator.GetOppositeWindow(launchWindow); var axis = _avidCalculator.GetOrientationWithoutRoll(impactWindow, referenceDirection); ImpactWindow = axis.Nose; EvasionUp = axis.Top; EvasionDown = axis.Bottom; EvasionLeft = axis.Port; EvasionRight = axis.Starboard; OnEvasionChanged(); }
public static string AvidDirectionToString(AvidDirection direction) { switch (direction) { case AvidDirection.AB: return "A/B"; case AvidDirection.BC: return "B/C"; case AvidDirection.CD: return "C/D"; case AvidDirection.DE: return "D/E"; case AvidDirection.EF: return "E/F"; case AvidDirection.FA: return "F/A"; case AvidDirection.Undefined: return string.Empty; default: return direction.ToString(); } }
public double DirectionToAngle(AvidDirection direction) { return(Math.PI * ((16 - (byte)direction) % 12) / 6d); }
public EvasionInfoModel(AvidWindow impactWindow, AvidDirection referenceDirection) { _avidCalculator = ServiceFactory.Library.AvidCalculator; UpdateDirections(_avidCalculator.GetOppositeWindow(impactWindow), referenceDirection); }
public double DirectionToAngle(AvidDirection direction) { return Math.PI * ((16 - (byte)direction) % 12) / 6d; }
private void CheckDistance(HexGridCoordinate posA, HexGridCoordinate posB, int distance, AvidRing ring, AvidDirection direction, bool isAbovePlane) { var result = _calculator.GetDistance(posA, posB); result.Magnitude.Should().Be(distance); result.Ring.Should().Be(ring); result.Direction.Should().Be(direction); result.AbovePlane.Should().Be(isAbovePlane); }
public static void CheckAvidWindow(AvidWindow window, AvidDirection expectedDirection, AvidRing expectedRing, bool abovePlane) { window.Direction.Should().Be(expectedDirection); window.Ring.Should().Be(expectedRing); window.AbovePlane.Should().Be(abovePlane); }
public AvidWindow(AvidDirection direction, AvidRing ring, bool abovePlane) { Direction = direction; Ring = ring; AbovePlane = abovePlane || (ring == AvidRing.Ember); //Ember ring is above plane by default. }
public AvidVector(AvidDirection direction, AvidRing ring, bool abovePlane, int magnitude) : base(direction, ring, abovePlane) { Magnitude = magnitude; }
public AvidOrientation GetOrientationWithoutRoll(AvidWindow nose, AvidDirection referenceDirection) { Vector3 vectorX = WindowToVector3(nose); var axis = _vectorLibrary.GetLocalAxis(vectorX, 0d, DirectionToAngle(referenceDirection)); var result = new AvidOrientation { Nose = Vector3ToAvid(axis[0]), Starboard = Vector3ToAvid(axis[1]), Top = Vector3ToAvid(axis[2]), }; result.Aft = GetOppositeWindow(result.Nose); result.Port = GetOppositeWindow(result.Starboard); result.Bottom = GetOppositeWindow(result.Top); return result; }