private void WriteRaioMaker(IRatioMaker ratiomaker, RatioType type, XmlWriter writer) { writer.WriteStartElement("RatioMaker"); writer.WriteStartAttribute("Type"); writer.WriteString(type.ToString()); writer.WriteEndAttribute(); writer.WriteStartAttribute("MakerType"); switch (ratiomaker.GetType().Name) { case "ConstantRatioMaker": writer.WriteString("ConstantRatioMaker"); break; case "BezierRatioMaker": var brm = ratiomaker as BezierRatioMaker; writer.WriteString("BezierRatioMaker"); writer.WriteEndAttribute(); writer.WriteStartAttribute("P1"); writer.WriteString(brm.Analyzer.BCPS[0].Serialize()); writer.WriteEndAttribute(); writer.WriteStartAttribute("P2"); writer.WriteString(brm.Analyzer.BCPS[1].Serialize()); break; case "LinearRatioMaker": writer.WriteString("LinearRatioMaker"); break; default: writer.WriteString(""); break; } writer.WriteEndAttribute(); writer.WriteEndElement(); }
public SetRatioMakerChangeCommand(EffectManager manager, string exp, SelectedManager SManager, RatioType type, IRatioMaker maker) : base(manager, exp) { this.SManager = SManager; this.maker = maker; this.type = type; }
public void ChangeRatioMaker(RatioType type, IRatioMaker maker) { try { var srmcc = new SetRatioMakerChangeCommand(canvasDock.EffectManager, changeratio, canvasDock.SelectedManager, type, maker); srmcc.Execute(); historyDock.CommandManager.AddCommand(srmcc); } catch (Exception e) { MessageBox.Show(e.Message); } }
private static void ReadXMLRatioMakers(XmlReader reader, EffectStateRatioSet set) { while (reader.Read()) { if (reader.Name == "RatioMaker") { RatioType type = RatioType.X; switch (reader.GetAttribute("Type")) { case "X": type = RatioType.X; break; case "Y": type = RatioType.Y; break; case "Alpha": type = RatioType.Alpha; break; case "Rotation": type = RatioType.Rotation; break; case "ScaleX": type = RatioType.ScaleX; break; case "ScaleY": type = RatioType.ScaleY; break; case "BezierPosition": type = RatioType.BezierPosition; break; } IRatioMaker maker = null; switch (reader.GetAttribute("MakerType")) { case "LinearRatioMaker": maker = new LinearRatioMaker(); break; case "ConstantRatioMaker": maker = new ConstantRatioMaker(); break; case "BezierRatioMaker": var p1 = BezierControlPoint.Deserialize(reader.GetAttribute("P1")); var p2 = BezierControlPoint.Deserialize(reader.GetAttribute("P2")); maker = new BezierRatioMaker(p1, p2); break; } maker.Set = set; set[type] = maker; } } reader.Close(); set.SetDefaultToNullMaker(); }
public override void Execute() { previousmaker = SManager.Set[type]; SManager.Set[type] = maker; }