Ejemplo n.º 1
0
 /// <summary>
 /// Converts the given object to the type of this converter, using the specified context and culture information.
 /// </summary>
 /// <param name="context">A <see cref="T:System.ComponentModel.ITypeDescriptorContext" /> that provides a format context.</param>
 /// <param name="culture">A <see cref="T:System.Globalization.CultureInfo" />. If <c>null</c> is passed, the current culture is assumed.</param>
 /// <param name="value">The <see cref="T:System.Object" /> to convert.</param>
 /// <returns>An <see cref="T:System.Object" /> that represents the converted value.</returns>
 public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
 {
     if (culture == null)
     {
         culture = CultureInfo.CurrentCulture;
     }
     string @string = value as string;
     if (@string == null)
     {
         return base.ConvertFrom(context, culture, value);
     }
     @string = @string.Trim();
     char[] separator = new char[] { culture.TextInfo.ListSeparator[0] };
     string[] stringArray = @string.Split(separator);
     if (stringArray.Length != 1)
     {
         throw new ArgumentException("Invalid half format.");
     }
     float H = (float) TypeDescriptor.GetConverter(typeof(float)).ConvertFromString(context, culture, stringArray[0]);
     Half type = new Half(H);
     return type;
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Determines whether the specified object instances are considered equal.
 /// </summary>
 /// <param name = "value1" />
 /// <param name = "value2" />
 /// <returns>
 /// <c>true</c> if <paramref name = "value1" /> is the same instance as <paramref name = "value2" /> or 
 /// if both are <c>null</c> references or if <c>value1.Equals(value2)</c> returns <c>true</c>; otherwise, <c>false</c>.</returns>
 public static bool Equals(ref Half value1, ref Half value2)
 {
     return value1.value == value2.value;
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Returns a value that indicates whether the current instance is equal to the specified object.
 /// </summary>
 /// <param name = "other">Object to make the comparison with.</param>
 /// <returns>
 /// <c>true</c> if the current instance is equal to the specified object; <c>false</c> otherwise.</returns>
 public bool Equals(Half other)
 {
     return other.value == value;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Converts an array of half precision values into full precision values.
 /// </summary>
 /// <param name = "values">The values to be converted.</param>
 /// <returns>An array of converted values.</returns>
 public static float[] ConvertToFloat(Half[] values)
 {            
     float[] results = new float[values.Length];
     for(int i = 0; i < results.Length; i++)
         results[i] = HalfUtils.Unpack(values[i].RawValue);
     return results;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Converts an array of full precision values into half precision values.
 /// </summary>
 /// <param name = "values">The values to be converted.</param>
 /// <returns>An array of converted values.</returns>
 public static Half[] ConvertToHalf(float[] values)
 {
     Half[] results = new Half[values.Length];
     for(int i = 0; i < results.Length; i++)
         results[i] = new Half(values[i]);
     return results;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Half2" /> structure.
 /// </summary>
 /// <param name="value">Value to initialize X and Y components with.</param>
 public Half2(float value)
 {
     this.X = new Half(value);
     this.Y = new Half(value);
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Half2" /> structure.
 /// </summary>
 /// <param name="value">The value to set for both the X and Y components.</param>
 public Half2(Half value)
 {
     this.X = value;
     this.Y = value;
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Half2" /> structure.
 /// </summary>
 /// <param name="x">The X component.</param>
 /// <param name="y">The Y component.</param>
 public Half2(ushort x, ushort y)
 {
     this.X = new Half(x);
     this.Y = new Half(y);
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Half2" /> structure.
 /// </summary>
 /// <param name="x">The X component.</param>
 /// <param name="y">The Y component.</param>
 public Half2(float x, float y)
 {
     this.X = new Half(x);
     this.Y = new Half(y);
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Half2" /> structure.
 /// </summary>
 /// <param name="x">The X component.</param>
 /// <param name="y">The Y component.</param>
 public Half2(Half x, Half y)
 {
     this.X = x;
     this.Y = y;
 }