Пример #1
0
        public override object ConvertTo(ITypeDescriptorContext context,
                               CultureInfo culture,
                               object value,
                               System.Type destinationType)
        {
            if (destinationType == typeof(System.String) &&
                 value is CG_Transform)
            {

                CG_Transform Trans = (CG_Transform)value;

                return ToCleanString(Trans.Scl.X) + "," + ToCleanString(Trans.Scl.Y) + "," + ToCleanString(Trans.Scl.Z) + ";" +
                       ToCleanString(Trans.Pos.X) + "," + ToCleanString(Trans.Pos.Y) + "," + ToCleanString(Trans.Pos.Z) + ";" +
                       ToCleanString(Trans.Rot.X) + "," + ToCleanString(Trans.Rot.Y) + "," + ToCleanString(Trans.Rot.Z);
            }
            return base.ConvertTo(context, culture, value, destinationType);
        }
Пример #2
0
        public override object ConvertFrom(ITypeDescriptorContext context,
                              CultureInfo culture, object value)
        {
            if (value is string)
            {
                try
                {
                    string s = (string)value;

                    string[] split = s.Split(";".ToCharArray());

                    if (split.Length == 3)
                    {
                        string[] Scl = split[0].Split(",".ToCharArray());
                        string[] Pos = split[1].Split(",".ToCharArray());
                        string[] Rot = split[2].Split(",".ToCharArray());

                        if (Scl.Length == 3 && Pos.Length == 3 && Rot.Length == 3)
                        {
                            CG_Transform Trans = new CG_Transform();

                            Trans.Scl.X = DoubleHelper.DoubleParse(Scl[0]);
                            Trans.Scl.Y = DoubleHelper.DoubleParse(Scl[1]);
                            Trans.Scl.Z = DoubleHelper.DoubleParse(Scl[2]);

                            Trans.Pos.X = DoubleHelper.DoubleParse(Pos[0]);
                            Trans.Pos.Y = DoubleHelper.DoubleParse(Pos[1]);
                            Trans.Pos.Z = DoubleHelper.DoubleParse(Pos[2]);

                            Trans.Rot.X = DoubleHelper.DoubleParse(Rot[0]);
                            Trans.Rot.Y = DoubleHelper.DoubleParse(Rot[1]);
                            Trans.Rot.Z = DoubleHelper.DoubleParse(Rot[2]);

                            return Trans;
                        }
                    }
                }
                catch
                {
                    throw new ArgumentException(
                        "Can not convert '" + (string)value +
                                           "' to type SpellingOptions");
                }
            }
            return base.ConvertFrom(context, culture, value);
        }
Пример #3
0
        public CG_Transform Copy()
        {
            CG_Transform Trans = new CG_Transform();

            Trans.Scl.X = Scl.X;
            Trans.Scl.Y = Scl.Y;
            Trans.Scl.Z = Scl.Z;

            Trans.Pos.X = Pos.X;
            Trans.Pos.Y = Pos.Y;
            Trans.Pos.Z = Pos.Z;

            Trans.Rot.X = Rot.X;
            Trans.Rot.Y = Rot.Y;
            Trans.Rot.Z = Rot.Z;

            return Trans;
        }