Beispiel #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();
            TypeConverter converter = TypeDescriptor.GetConverter(typeof(Half));

            char[]   separator   = new[] { culture.TextInfo.ListSeparator[0] };
            string[] stringArray = @string.Split(separator);
            if (stringArray.Length != 2)
            {
                throw new ArgumentException("Invalid half format.");
            }
            Half x = (Half)converter.ConvertFromString(context, culture, stringArray[0]);
            Half y = (Half)converter.ConvertFromString(context, culture, stringArray[1]);

            return(new Half2(x, y));
        }
Beispiel #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Half3"/> structure.
 /// </summary>
 /// <param name="value">The value to set for the X, Y, and Z components.</param>
 public Half3(Half value)
 {
     this.X = value;
     this.Y = value;
     this.Z = value;
 }
Beispiel #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Half3"/> structure.
 /// </summary>
 /// <param name="x">The X component.</param>
 /// <param name="y">The Y component.</param>
 /// <param name="z">The Z component.</param>
 public Half3(Half x, Half y, Half z)
 {
     this.X = x;
     this.Y = y;
     this.Z = z;
 }
Beispiel #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Half3"/> structure.
 /// </summary>
 /// <param name="value">The value to set for the X, Y, and Z components.</param>
 public Half3(float value)
 {
     this.X = (Half)value;
     this.Y = (Half)value;
     this.Z = (Half)value;
 }
Beispiel #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Half3"/> structure.
 /// </summary>
 /// <param name="x">The X component.</param>
 /// <param name="y">The Y component.</param>
 /// <param name="z">The Z component.</param>
 public Half3(float x, float y, float z)
 {
     this.X = (Half)x;
     this.Y = (Half)y;
     this.Z = (Half)z;
 }
Beispiel #6
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);
 }
Beispiel #7
0
 /// <summary>
 ///   Determines whether the specified object instances are considered equal.
 /// </summary>
 /// <param name = "value1">The first value.</param>
 /// <param name = "value2">The second value.</param>
 /// <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);
 }