コード例 #1
0
        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();
        }
コード例 #2
0
 public SetRatioMakerChangeCommand(EffectManager manager, string exp, SelectedManager SManager, RatioType type, IRatioMaker maker)
     : base(manager, exp)
 {
     this.SManager = SManager;
     this.maker    = maker;
     this.type     = type;
 }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
        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();
        }
コード例 #5
0
 public override void Execute()
 {
     previousmaker      = SManager.Set[type];
     SManager.Set[type] = maker;
 }