/// <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)); }
/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <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); }
/// <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); }