/// <summary>
		/// Initializes a new range from two given values.
		/// </summary>
		/// <param name="value0">The first value in the range.</param>
		/// <param name="value1">The second value in the range.</param>
		InputRange( float value0, float value1, InputRangeType type )
		{
			Value0 = value0;
			Value1 = value1;
			Type = type;
		}
		/// <summary>
		/// Initializes a new range from a predefined type.
		/// </summary>
		public InputRange( InputRangeType type )
		{
			Value0 = TypeToRange[(int) type].Value0;
			Value1 = TypeToRange[(int) type].Value1;
			Type = type;
		}
		internal static float Remap( float value, InputRangeType sourceRangeType, InputRangeType targetRangeType )
		{
			var sourceRange = InputRange.TypeToRange[(int) sourceRangeType];
			var targetRange = InputRange.TypeToRange[(int) targetRangeType];
			return Remap( value, sourceRange, targetRange );
		}