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