示例#1
0
 public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
 {
     if (value.GetType() == typeof(string) && supportStringConvert)
     {
         float[] values = MathTypeConverter.ConvertStringToValues(context, culture, (string)value);
         return(new Vector3(values[0], values[1], values[2]));
     }
     return(base.ConvertFrom(context, culture, value));
 }
示例#2
0
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            Vector3 vector = (Vector3)value;

            if (destinationType == typeof(string) && supportStringConvert)
            {
                float[] values = new float[] { vector.X, vector.Y, vector.Z };
                return(MathTypeConverter.ConvertValuesToString(context, culture, values));
            }
            else if (destinationType == typeof(InstanceDescriptor))
            {
                MemberInfo constructorInfo = typeof(Vector3).GetConstructor(new Type[] { typeof(float), typeof(float), typeof(float) });
                object[]   parameters      = new object[] { vector.X, vector.Y, vector.Z };
                return(new InstanceDescriptor(constructorInfo, parameters));
            }

            return(base.ConvertTo(context, culture, value, destinationType));
        }