```1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 ``` ```﻿// //     Kerbal Engineer Redux // //     Copyright (C) 2014 CYBUTEK // //     This program is free software: you can redistribute it and/or modify //     it under the terms of the GNU General Public License as published by //     the Free Software Foundation, either version 3 of the License, or //     (at your option) any later version. // //     This program is distributed in the hope that it will be useful, //     but WITHOUT ANY WARRANTY; without even the implied warranty of //     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the //     GNU General Public License for more details. // //     You should have received a copy of the GNU General Public License //     along with this program.  If not, see . //   namespace KerbalEngineer.Helpers {     using UnityEngine;       public static class AngleHelper     {         public static double Clamp180(double angle)         {             angle = Clamp360(angle);             if (angle > 180.0)             {                 angle = angle - 360.0;             }             return angle;         }           public static double Clamp360(double angle)         {             angle = angle % 360.0;             if (angle < 0.0)             {                 angle = angle + 360.0;             }             return angle;         }           public static double ClampBetween(double value, double minimum, double maximum)         {             while (value < minimum)             {                 value += maximum;             }               while (value > maximum)             {                 value -= maximum;             }               return value;         }           public static double GetAngleBetweenVectors(Vector3d left, Vector3d right)         {             double angle = Vector3d.Angle(left, right);             Vector3d rotated = QuaternionD.AngleAxis(90.0, Vector3d.forward) * right;               if (Vector3d.Angle(rotated, left) > 90.0)             {                 return 360.0 - angle;             }             return angle;         }     } }```