public void TestAutopilotHeadingAbove360() { AutopilotModel ap = new AutopilotModel(); ap.setTargetHeading(400f); Assert.AreEqual(40f, ap.getTargetHeading()); }
public void TestAutopilotHeadingLessThanZero() { AutopilotModel ap = new AutopilotModel(); ap.setTargetHeading(-10f); Assert.AreEqual(350f, ap.getTargetHeading()); }
private float GetDistanceAndSetDirection(float currentHeading) { float leftDistance = 0, rightDistance = 0; if (currentHeading > autopilot.getTargetHeading()) { leftDistance = currentHeading - autopilot.getTargetHeading(); rightDistance = autopilot.getTargetHeading() - (currentHeading - 360f); } else { rightDistance = autopilot.getTargetHeading() - currentHeading; leftDistance = (currentHeading + 360f) - autopilot.getTargetHeading(); } turnRight = rightDistance < leftDistance; return(Mathf.Min(leftDistance, rightDistance)); }